From 14533da6460db772154f3ad4d20328e83b417828 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 16 Jun 2017 18:11:36 -0400 Subject: [PATCH] Merge branch 'master' into feature/sane_source Signed-off-by: Roberto Rosario --- .gitignore | 41 +- .gitlab-ci.yml | 6 +- .travis.yml | 10 +- .tx/config | 18 +- CONTRIBUTING.md | 21 +- DCO | 36 + HISTORY.rst | 68 +- MANIFEST.in | 4 +- Makefile | 66 +- README.md | 89 + README.rst | 108 +- contrib/scripts/process_messages.py | 4 +- docs/releases/2.1.10.rst | 75 + docs/releases/2.1.11.rst | 94 + docs/releases/2.1.8.rst | 83 + docs/releases/2.1.9.rst | 74 + docs/releases/2.2.rst | 184 +- docs/releases/2.3.rst | 101 + docs/releases/index.rst | 5 + docs/topics/deploying.rst | 18 +- docs/topics/development.rst | 27 +- docs/topics/faq.rst | 7 + docs/topics/features.rst | 4 +- docs/topics/installation.rst | 101 +- docs/topics/transformations.rst | 29 +- mayan/__init__.py | 4 +- mayan/apps/acls/api_views.py | 250 + mayan/apps/acls/apps.py | 5 +- mayan/apps/acls/classes.py | 12 +- .../apps/acls/locale/ar/LC_MESSAGES/django.mo | Bin 863 -> 863 bytes .../apps/acls/locale/ar/LC_MESSAGES/django.po | 91 +- .../apps/acls/locale/bg/LC_MESSAGES/django.mo | Bin 1093 -> 1093 bytes .../apps/acls/locale/bg/LC_MESSAGES/django.po | 88 +- .../acls/locale/bs_BA/LC_MESSAGES/django.mo | Bin 891 -> 891 bytes .../acls/locale/bs_BA/LC_MESSAGES/django.po | 91 +- .../apps/acls/locale/da/LC_MESSAGES/django.mo | Bin 515 -> 515 bytes .../apps/acls/locale/da/LC_MESSAGES/django.po | 88 +- .../acls/locale/de_DE/LC_MESSAGES/django.mo | Bin 1906 -> 2930 bytes .../acls/locale/de_DE/LC_MESSAGES/django.po | 101 +- .../apps/acls/locale/en/LC_MESSAGES/django.mo | Bin 703 -> 703 bytes .../apps/acls/locale/en/LC_MESSAGES/django.po | 70 +- .../apps/acls/locale/es/LC_MESSAGES/django.mo | Bin 1756 -> 2923 bytes .../apps/acls/locale/es/LC_MESSAGES/django.po | 74 +- .../apps/acls/locale/fa/LC_MESSAGES/django.mo | Bin 1125 -> 1125 bytes .../apps/acls/locale/fa/LC_MESSAGES/django.po | 88 +- .../apps/acls/locale/fr/LC_MESSAGES/django.mo | Bin 1676 -> 1826 bytes .../apps/acls/locale/fr/LC_MESSAGES/django.po | 90 +- .../apps/acls/locale/hu/LC_MESSAGES/django.mo | Bin 520 -> 520 bytes .../apps/acls/locale/hu/LC_MESSAGES/django.po | 88 +- .../apps/acls/locale/id/LC_MESSAGES/django.mo | Bin 451 -> 451 bytes .../apps/acls/locale/id/LC_MESSAGES/django.po | 88 +- .../apps/acls/locale/it/LC_MESSAGES/django.mo | Bin 1802 -> 1773 bytes .../apps/acls/locale/it/LC_MESSAGES/django.po | 90 +- .../acls/locale/nl_NL/LC_MESSAGES/django.mo | Bin 1898 -> 1869 bytes .../acls/locale/nl_NL/LC_MESSAGES/django.po | 94 +- .../apps/acls/locale/pl/LC_MESSAGES/django.mo | Bin 1667 -> 1756 bytes .../apps/acls/locale/pl/LC_MESSAGES/django.po | 92 +- .../apps/acls/locale/pt/LC_MESSAGES/django.mo | Bin 824 -> 824 bytes .../apps/acls/locale/pt/LC_MESSAGES/django.po | 88 +- .../acls/locale/pt_BR/LC_MESSAGES/django.mo | Bin 1828 -> 1802 bytes .../acls/locale/pt_BR/LC_MESSAGES/django.po | 93 +- .../acls/locale/ro_RO/LC_MESSAGES/django.mo | Bin 883 -> 883 bytes .../acls/locale/ro_RO/LC_MESSAGES/django.po | 91 +- .../apps/acls/locale/ru/LC_MESSAGES/django.mo | Bin 1967 -> 1967 bytes .../apps/acls/locale/ru/LC_MESSAGES/django.po | 92 +- .../acls/locale/sl_SI/LC_MESSAGES/django.mo | Bin 1049 -> 1049 bytes .../acls/locale/sl_SI/LC_MESSAGES/django.po | 91 +- .../acls/locale/vi_VN/LC_MESSAGES/django.mo | Bin 528 -> 528 bytes .../acls/locale/vi_VN/LC_MESSAGES/django.po | 88 +- .../acls/locale/zh_CN/LC_MESSAGES/django.mo | Bin 902 -> 902 bytes .../acls/locale/zh_CN/LC_MESSAGES/django.po | 88 +- mayan/apps/acls/managers.py | 23 + mayan/apps/acls/models.py | 16 +- mayan/apps/acls/serializers.py | 204 + mayan/apps/acls/tests/test_api.py | 254 + mayan/apps/acls/urls.py | 23 + mayan/apps/acls/views.py | 3 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 2487 -> 2412 bytes .../locale/ar/LC_MESSAGES/django.po | 108 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 2240 -> 2150 bytes .../locale/bg/LC_MESSAGES/django.po | 104 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2409 -> 2344 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 107 +- .../locale/da/LC_MESSAGES/django.mo | Bin 688 -> 643 bytes .../locale/da/LC_MESSAGES/django.po | 97 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 4501 -> 4382 bytes .../locale/de_DE/LC_MESSAGES/django.po | 124 +- .../locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../locale/en/LC_MESSAGES/django.po | 84 +- .../locale/es/LC_MESSAGES/django.mo | Bin 4274 -> 4544 bytes .../locale/es/LC_MESSAGES/django.po | 94 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 2975 -> 2793 bytes .../locale/fa/LC_MESSAGES/django.po | 105 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 4586 -> 4388 bytes .../locale/fr/LC_MESSAGES/django.po | 131 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 754 -> 702 bytes .../locale/hu/LC_MESSAGES/django.po | 97 +- .../locale/id/LC_MESSAGES/django.mo | Bin 542 -> 489 bytes .../locale/id/LC_MESSAGES/django.po | 97 +- .../locale/it/LC_MESSAGES/django.mo | Bin 4341 -> 4170 bytes .../locale/it/LC_MESSAGES/django.po | 119 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 4451 -> 4264 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 128 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 4489 -> 4389 bytes .../locale/pl/LC_MESSAGES/django.po | 123 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 2104 -> 2007 bytes .../locale/pt/LC_MESSAGES/django.po | 103 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 4467 -> 4289 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 122 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 3028 -> 2935 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 115 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 5549 -> 5342 bytes .../locale/ru/LC_MESSAGES/django.po | 130 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 560 -> 560 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 100 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 1841 -> 1786 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 105 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2393 -> 2343 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 97 +- .../appearance/static/appearance/css/base.css | 8 +- .../bootswatch.com/cerulean/bootstrap.min.css | 11 - .../bootswatch.com/cosmo/bootstrap.min.css | 11 - .../bootswatch.com/cyborg/bootstrap.min.css | 11 - .../bootswatch.com/darkly/bootstrap.min.css | 11 - .../bootswatch.com/flatly/bootstrap.css | 4 +- .../bootswatch.com/journal/bootstrap.min.css | 11 - .../bootswatch.com/lumen/bootstrap.min.css | 11 - .../bootswatch.com/paper/bootstrap.min.css | 11 - .../bootswatch.com/readable/bootstrap.min.css | 11 - .../sandstone/bootstrap.min.css | 11 - .../bootswatch.com/simplex/bootstrap.min.css | 11 - .../bootswatch.com/slate/bootstrap.min.css | 11 - .../bootswatch.com/spacelab/bootstrap.min.css | 11 - .../superhero/bootstrap.min.css | 11 - .../bootswatch.com/united/bootstrap.min.css | 11 - .../bootswatch.com/yeti/bootstrap.min.css | 11 - .../css/font-awesome.min.css | 4 - .../font-awesome-4.3.0/fonts/FontAwesome.otf | Bin 93888 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 60767 -> 0 bytes .../fonts/fontawesome-webfont.svg | 565 -- .../fonts/fontawesome-webfont.woff | Bin 71508 -> 0 bytes .../fonts/fontawesome-webfont.woff2 | Bin 56780 -> 0 bytes .../font-awesome-4.3.0/less/mixins.less | 27 - .../font-awesome-4.3.0/scss/_mixins.scss | 27 - .../font-awesome-4.7.0/HELP-US-OUT.txt | 7 + .../css/font-awesome.css | 558 +- .../css/font-awesome.min.css | 4 + .../font-awesome-4.7.0/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../fonts/fontawesome-webfont.svg | 2671 ++++++ .../fonts/fontawesome-webfont.ttf | Bin 122092 -> 165548 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../less/animated.less | 0 .../less/bordered-pulled.less | 9 + .../less/core.less | 3 +- .../less/fixed-width.less | 0 .../less/font-awesome.less | 3 +- .../less/icons.less | 197 +- .../less/larger.less | 0 .../less/list.less | 0 .../font-awesome-4.7.0/less/mixins.less | 60 + .../less/path.less | 2 +- .../less/rotated-flipped.less | 0 .../less/screen-reader.less | 5 + .../less/stacked.less | 0 .../less/variables.less | 202 +- .../scss/_animated.scss | 0 .../scss/_bordered-pulled.scss | 9 + .../scss/_core.scss | 3 +- .../scss/_fixed-width.scss | 0 .../scss/_icons.scss | 197 +- .../scss/_larger.scss | 0 .../scss/_list.scss | 0 .../font-awesome-4.7.0/scss/_mixins.scss | 60 + .../scss/_path.scss | 0 .../scss/_rotated-flipped.scss | 0 .../scss/_screen-reader.scss | 5 + .../scss/_stacked.scss | 0 .../scss/_variables.scss | 202 +- .../scss/font-awesome.scss | 3 +- .../appearance/templates/appearance/base.html | 31 +- .../appearance/dashboard_widget.html | 4 +- .../appearance/generic_list_subtemplate.html | 8 +- .../generic_multiform_subtemplate.html | 3 +- mayan/apps/authentication/apps.py | 2 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 977 -> 977 bytes .../locale/ar/LC_MESSAGES/django.po | 12 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 808 -> 808 bytes .../locale/bg/LC_MESSAGES/django.po | 9 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 901 -> 901 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 12 +- .../locale/da/LC_MESSAGES/django.mo | Bin 502 -> 502 bytes .../locale/da/LC_MESSAGES/django.po | 9 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1421 -> 1421 bytes .../locale/de_DE/LC_MESSAGES/django.po | 17 +- .../locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../locale/en/LC_MESSAGES/django.po | 2 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1446 -> 1446 bytes .../locale/es/LC_MESSAGES/django.po | 17 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 1201 -> 1201 bytes .../locale/fa/LC_MESSAGES/django.po | 13 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1434 -> 1434 bytes .../locale/fr/LC_MESSAGES/django.po | 17 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 513 -> 513 bytes .../locale/hu/LC_MESSAGES/django.po | 9 +- .../locale/id/LC_MESSAGES/django.mo | Bin 879 -> 879 bytes .../locale/id/LC_MESSAGES/django.po | 12 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1384 -> 1384 bytes .../locale/it/LC_MESSAGES/django.po | 17 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1426 -> 1426 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 17 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1386 -> 1386 bytes .../locale/pl/LC_MESSAGES/django.po | 16 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 932 -> 932 bytes .../locale/pt/LC_MESSAGES/django.po | 9 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1404 -> 1404 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 17 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 875 -> 875 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 12 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1768 -> 1768 bytes .../locale/ru/LC_MESSAGES/django.po | 21 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 536 -> 536 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 12 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 754 -> 754 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 9 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1010 -> 1010 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 9 +- mayan/apps/cabinets/__init__.py | 3 + mayan/apps/cabinets/admin.py | 13 + mayan/apps/cabinets/api_views.py | 220 + mayan/apps/cabinets/apps.py | 106 + mayan/apps/cabinets/forms.py | 33 + mayan/apps/cabinets/links.py | 76 + .../cabinets/locale/ar/LC_MESSAGES/django.mo | Bin 0 -> 772 bytes .../cabinets/locale/ar/LC_MESSAGES/django.po | 251 + .../cabinets/locale/bg/LC_MESSAGES/django.mo | Bin 0 -> 731 bytes .../cabinets/locale/bg/LC_MESSAGES/django.po | 243 + .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 0 -> 764 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 245 + .../cabinets/locale/da/LC_MESSAGES/django.mo | Bin 0 -> 561 bytes .../cabinets/locale/da/LC_MESSAGES/django.po | 243 + .../locale/de_DE/LC_MESSAGES/django.mo | Bin 0 -> 3265 bytes .../locale/de_DE/LC_MESSAGES/django.po | 243 + .../cabinets/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 421 bytes .../cabinets/locale/en/LC_MESSAGES/django.po | 242 + .../cabinets/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 4603 bytes .../cabinets/locale/es/LC_MESSAGES/django.po | 250 + .../cabinets/locale/fa/LC_MESSAGES/django.mo | Bin 0 -> 755 bytes .../cabinets/locale/fa/LC_MESSAGES/django.po | 241 + .../cabinets/locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 747 bytes .../cabinets/locale/fr/LC_MESSAGES/django.po | 243 + .../cabinets/locale/hu/LC_MESSAGES/django.mo | Bin 0 -> 561 bytes .../cabinets/locale/hu/LC_MESSAGES/django.po | 243 + .../cabinets/locale/id/LC_MESSAGES/django.mo | Bin 0 -> 602 bytes .../cabinets/locale/id/LC_MESSAGES/django.po | 241 + .../cabinets/locale/it/LC_MESSAGES/django.mo | Bin 0 -> 777 bytes .../cabinets/locale/it/LC_MESSAGES/django.po | 243 + .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 0 -> 824 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 243 + .../cabinets/locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 883 bytes .../cabinets/locale/pl/LC_MESSAGES/django.po | 247 + .../cabinets/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 740 bytes .../cabinets/locale/pt/LC_MESSAGES/django.po | 243 + .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 5032 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 250 + .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 0 -> 788 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 245 + .../cabinets/locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 919 bytes .../cabinets/locale/ru/LC_MESSAGES/django.po | 247 + .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 0 -> 657 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 247 + .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 0 -> 680 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 241 + .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 0 -> 621 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 241 + mayan/apps/cabinets/menus.py | 9 + .../apps/cabinets/migrations/0001_initial.py | 88 + mayan/apps/cabinets/migrations/__init__.py | 0 mayan/apps/cabinets/models.py | 87 + mayan/apps/cabinets/permissions.py | 28 + mayan/apps/cabinets/serializers.py | 194 + .../cabinets/packages/jstree/.gitignore | 13 + .../cabinets/packages/jstree/LICENSE-MIT | 22 + .../static/cabinets/packages/jstree/README.md | 658 ++ .../cabinets/packages/jstree/bower.json | 32 + .../cabinets/packages/jstree/component.json | 28 + .../cabinets/packages/jstree/composer.json | 46 + .../packages/jstree/demo/basic/index.html | 146 + .../packages/jstree/demo/basic/root.json | 1 + .../jstree/demo/filebrowser/data/.htaccess | 1 + .../jstree/demo/filebrowser/file_sprite.png | Bin 0 -> 19360 bytes .../jstree/demo/filebrowser/index.php | 450 + .../jstree/demo/sitebrowser/class.db.php | 1082 +++ .../jstree/demo/sitebrowser/class.tree.php | 986 ++ .../packages/jstree/demo/sitebrowser/data.sql | 91 + .../jstree/demo/sitebrowser/index.php | 172 + .../cabinets/packages/jstree/dist/jstree.js | 8305 +++++++++++++++++ .../packages/jstree/dist/jstree.min.js | 6 + .../jstree/dist/themes/default-dark/32px.png | Bin 0 -> 1562 bytes .../jstree/dist/themes/default-dark/40px.png | Bin 0 -> 5717 bytes .../jstree/dist/themes/default-dark/style.css | 1146 +++ .../dist/themes/default-dark/style.min.css | 1 + .../dist/themes/default-dark/throbber.gif | Bin 0 -> 1720 bytes .../jstree/dist/themes/default/32px.png | Bin 0 -> 3121 bytes .../jstree/dist/themes/default/40px.png | Bin 0 -> 1880 bytes .../jstree/dist/themes/default/style.css | 1102 +++ .../jstree/dist/themes/default/style.min.css | 1 + .../jstree/dist/themes/default/throbber.gif | Bin 0 -> 1720 bytes .../cabinets/packages/jstree/gruntfile.js | 241 + .../packages/jstree/jstree.jquery.json | 28 + .../cabinets/packages/jstree/package.json | 58 + .../cabinets/packages/jstree/src/intro.js | 14 + .../packages/jstree/src/jstree.changed.js | 69 + .../packages/jstree/src/jstree.checkbox.js | 871 ++ .../jstree/src/jstree.conditionalselect.js | 38 + .../packages/jstree/src/jstree.contextmenu.js | 653 ++ .../packages/jstree/src/jstree.dnd.js | 653 ++ .../cabinets/packages/jstree/src/jstree.js | 4810 ++++++++++ .../packages/jstree/src/jstree.massload.js | 137 + .../packages/jstree/src/jstree.search.js | 421 + .../packages/jstree/src/jstree.sort.js | 74 + .../packages/jstree/src/jstree.state.js | 125 + .../packages/jstree/src/jstree.types.js | 372 + .../packages/jstree/src/jstree.unique.js | 121 + .../packages/jstree/src/jstree.wholerow.js | 122 + .../cabinets/packages/jstree/src/misc.js | 601 ++ .../cabinets/packages/jstree/src/outro.js | 1 + .../cabinets/packages/jstree/src/sample.js | 93 + .../packages/jstree/src/themes/base.less | 88 + .../jstree/src/themes/default-dark/32px.png | Bin 0 -> 1525 bytes .../jstree/src/themes/default-dark/40px.png | Bin 0 -> 11488 bytes .../jstree/src/themes/default-dark/style.css | 1146 +++ .../jstree/src/themes/default-dark/style.less | 50 + .../src/themes/default-dark/throbber.gif | Bin 0 -> 1849 bytes .../jstree/src/themes/default/32px.png | Bin 0 -> 8740 bytes .../jstree/src/themes/default/40px.png | Bin 0 -> 6055 bytes .../jstree/src/themes/default/style.css | 1102 +++ .../jstree/src/themes/default/style.less | 22 + .../jstree/src/themes/default/throbber.gif | Bin 0 -> 1849 bytes .../packages/jstree/src/themes/main.less | 77 + .../packages/jstree/src/themes/mixins.less | 105 + .../jstree/src/themes/responsive.less | 67 + .../packages/jstree/src/vakata-jstree.js | 38 + .../packages/jstree/test/unit/index.html | 16 + .../packages/jstree/test/unit/libs/qunit.css | 244 + .../packages/jstree/test/unit/libs/qunit.js | 2212 +++++ .../packages/jstree/test/unit/test.js | 11 + .../jstree/test/visual/desktop/index.html | 44 + .../jstree/test/visual/mobile/index.html | 42 + .../test/visual/screenshots/desktop/.png | Bin 0 -> 10643 bytes .../visual/screenshots/desktop/desktop.png | Bin 0 -> 19310 bytes .../test/visual/screenshots/desktop/home.png | Bin 0 -> 10643 bytes .../test/visual/screenshots/mobile/.png | Bin 0 -> 6373 bytes .../test/visual/screenshots/mobile/home.png | Bin 0 -> 6373 bytes .../test/visual/screenshots/mobile/mobile.png | Bin 0 -> 16220 bytes .../templates/cabinets/cabinet_details.html | 57 + mayan/apps/cabinets/tests/__init__.py | 0 mayan/apps/cabinets/tests/literals.py | 4 + mayan/apps/cabinets/tests/test_api.py | 241 + mayan/apps/cabinets/tests/test_models.py | 82 + mayan/apps/cabinets/tests/test_views.py | 207 + mayan/apps/cabinets/urls.py | 73 + mayan/apps/cabinets/views.py | 348 + mayan/apps/cabinets/widgets.py | 28 + mayan/apps/checkouts/apps.py | 2 +- .../checkouts/locale/ar/LC_MESSAGES/django.mo | Bin 2288 -> 2288 bytes .../checkouts/locale/ar/LC_MESSAGES/django.po | 77 +- .../checkouts/locale/bg/LC_MESSAGES/django.mo | Bin 2699 -> 2699 bytes .../checkouts/locale/bg/LC_MESSAGES/django.po | 74 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2261 -> 2261 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 77 +- .../checkouts/locale/da/LC_MESSAGES/django.mo | Bin 490 -> 490 bytes .../checkouts/locale/da/LC_MESSAGES/django.po | 74 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 3688 -> 3882 bytes .../locale/de_DE/LC_MESSAGES/django.po | 81 +- .../checkouts/locale/en/LC_MESSAGES/django.mo | Bin 2125 -> 2125 bytes .../checkouts/locale/en/LC_MESSAGES/django.po | 55 +- .../checkouts/locale/es/LC_MESSAGES/django.mo | Bin 3821 -> 3963 bytes .../checkouts/locale/es/LC_MESSAGES/django.po | 78 +- .../checkouts/locale/fa/LC_MESSAGES/django.mo | Bin 3462 -> 3462 bytes .../checkouts/locale/fa/LC_MESSAGES/django.po | 74 +- .../checkouts/locale/fr/LC_MESSAGES/django.mo | Bin 4028 -> 4148 bytes .../checkouts/locale/fr/LC_MESSAGES/django.po | 83 +- .../checkouts/locale/hu/LC_MESSAGES/django.mo | Bin 500 -> 500 bytes .../checkouts/locale/hu/LC_MESSAGES/django.po | 74 +- .../checkouts/locale/id/LC_MESSAGES/django.mo | Bin 489 -> 489 bytes .../checkouts/locale/id/LC_MESSAGES/django.po | 74 +- .../checkouts/locale/it/LC_MESSAGES/django.mo | Bin 3784 -> 3893 bytes .../checkouts/locale/it/LC_MESSAGES/django.po | 80 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1944 -> 1915 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 76 +- .../checkouts/locale/pl/LC_MESSAGES/django.mo | Bin 3494 -> 3583 bytes .../checkouts/locale/pl/LC_MESSAGES/django.po | 85 +- .../checkouts/locale/pt/LC_MESSAGES/django.mo | Bin 546 -> 546 bytes .../checkouts/locale/pt/LC_MESSAGES/django.po | 74 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 3798 -> 3916 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 80 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2272 -> 2272 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 80 +- .../checkouts/locale/ru/LC_MESSAGES/django.mo | Bin 4779 -> 5009 bytes .../checkouts/locale/ru/LC_MESSAGES/django.po | 80 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 526 -> 1313 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 101 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 512 -> 512 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 74 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1986 -> 1986 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 74 +- mayan/apps/common/apps.py | 13 +- mayan/apps/common/classes.py | 27 +- mayan/apps/common/exceptions.py | 16 + mayan/apps/common/generics.py | 91 +- mayan/apps/common/links.py | 4 + mayan/apps/common/literals.py | 3 +- .../common/locale/ar/LC_MESSAGES/django.mo | Bin 1240 -> 1240 bytes .../common/locale/ar/LC_MESSAGES/django.po | 151 +- .../common/locale/bg/LC_MESSAGES/django.mo | Bin 1062 -> 1062 bytes .../common/locale/bg/LC_MESSAGES/django.po | 151 +- .../common/locale/bs_BA/LC_MESSAGES/django.mo | Bin 1209 -> 1209 bytes .../common/locale/bs_BA/LC_MESSAGES/django.po | 151 +- .../common/locale/da/LC_MESSAGES/django.mo | Bin 674 -> 674 bytes .../common/locale/da/LC_MESSAGES/django.po | 151 +- .../common/locale/de_DE/LC_MESSAGES/django.mo | Bin 4242 -> 4643 bytes .../common/locale/de_DE/LC_MESSAGES/django.po | 160 +- .../common/locale/en/LC_MESSAGES/django.mo | Bin 771 -> 771 bytes .../common/locale/en/LC_MESSAGES/django.po | 148 +- .../common/locale/es/LC_MESSAGES/django.mo | Bin 4347 -> 4923 bytes .../common/locale/es/LC_MESSAGES/django.po | 159 +- .../common/locale/fa/LC_MESSAGES/django.mo | Bin 2702 -> 2702 bytes .../common/locale/fa/LC_MESSAGES/django.po | 153 +- .../common/locale/fr/LC_MESSAGES/django.mo | Bin 4247 -> 4454 bytes .../common/locale/fr/LC_MESSAGES/django.po | 158 +- .../common/locale/hu/LC_MESSAGES/django.mo | Bin 622 -> 622 bytes .../common/locale/hu/LC_MESSAGES/django.po | 151 +- .../common/locale/id/LC_MESSAGES/django.mo | Bin 1394 -> 1394 bytes .../common/locale/id/LC_MESSAGES/django.po | 153 +- .../common/locale/it/LC_MESSAGES/django.mo | Bin 4188 -> 4592 bytes .../common/locale/it/LC_MESSAGES/django.po | 161 +- .../common/locale/nl_NL/LC_MESSAGES/django.mo | Bin 2179 -> 4115 bytes .../common/locale/nl_NL/LC_MESSAGES/django.po | 198 +- .../common/locale/pl/LC_MESSAGES/django.mo | Bin 3399 -> 3488 bytes .../common/locale/pl/LC_MESSAGES/django.po | 159 +- .../common/locale/pt/LC_MESSAGES/django.mo | Bin 1152 -> 1152 bytes .../common/locale/pt/LC_MESSAGES/django.po | 151 +- .../common/locale/pt_BR/LC_MESSAGES/django.mo | Bin 4327 -> 4723 bytes .../common/locale/pt_BR/LC_MESSAGES/django.po | 160 +- .../common/locale/ro_RO/LC_MESSAGES/django.mo | Bin 1266 -> 1266 bytes .../common/locale/ro_RO/LC_MESSAGES/django.po | 153 +- .../common/locale/ru/LC_MESSAGES/django.mo | Bin 5199 -> 5199 bytes .../common/locale/ru/LC_MESSAGES/django.po | 157 +- .../common/locale/sl_SI/LC_MESSAGES/django.mo | Bin 598 -> 598 bytes .../common/locale/sl_SI/LC_MESSAGES/django.po | 151 +- .../common/locale/vi_VN/LC_MESSAGES/django.mo | Bin 1037 -> 1037 bytes .../common/locale/vi_VN/LC_MESSAGES/django.po | 151 +- .../common/locale/zh_CN/LC_MESSAGES/django.mo | Bin 1069 -> 1069 bytes .../common/locale/zh_CN/LC_MESSAGES/django.po | 151 +- .../common/management/commands/runtests.py | 34 - mayan/apps/common/mixins.py | 32 +- mayan/apps/common/settings.py | 40 +- mayan/apps/common/tests/mixins.py | 97 +- mayan/apps/common/tests/runner.py | 31 + mayan/apps/common/tests/test_api.py | 4 +- mayan/apps/common/tests/test_views.py | 2 - mayan/apps/common/urls.py | 18 +- mayan/apps/common/utils.py | 22 + mayan/apps/common/validators.py | 32 + mayan/apps/common/views.py | 44 +- mayan/apps/converter/apps.py | 2 +- mayan/apps/converter/classes.py | 4 + .../converter/locale/ar/LC_MESSAGES/django.mo | Bin 835 -> 835 bytes .../converter/locale/ar/LC_MESSAGES/django.po | 125 +- .../converter/locale/bg/LC_MESSAGES/django.mo | Bin 701 -> 701 bytes .../converter/locale/bg/LC_MESSAGES/django.po | 122 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 828 -> 828 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 125 +- .../converter/locale/da/LC_MESSAGES/django.mo | Bin 488 -> 488 bytes .../converter/locale/da/LC_MESSAGES/django.po | 122 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 2949 -> 3314 bytes .../locale/de_DE/LC_MESSAGES/django.po | 140 +- .../converter/locale/en/LC_MESSAGES/django.mo | Bin 641 -> 641 bytes .../converter/locale/en/LC_MESSAGES/django.po | 95 +- .../converter/locale/es/LC_MESSAGES/django.mo | Bin 2925 -> 3291 bytes .../converter/locale/es/LC_MESSAGES/django.po | 96 +- .../converter/locale/fa/LC_MESSAGES/django.mo | Bin 1250 -> 1250 bytes .../converter/locale/fa/LC_MESSAGES/django.po | 122 +- .../converter/locale/fr/LC_MESSAGES/django.mo | Bin 3092 -> 3057 bytes .../converter/locale/fr/LC_MESSAGES/django.po | 142 +- .../converter/locale/hu/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../converter/locale/hu/LC_MESSAGES/django.po | 122 +- .../converter/locale/id/LC_MESSAGES/django.mo | Bin 451 -> 451 bytes .../converter/locale/id/LC_MESSAGES/django.po | 122 +- .../converter/locale/it/LC_MESSAGES/django.mo | Bin 2937 -> 2908 bytes .../converter/locale/it/LC_MESSAGES/django.po | 138 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1496 -> 2994 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 146 +- .../converter/locale/pl/LC_MESSAGES/django.mo | Bin 3019 -> 3077 bytes .../converter/locale/pl/LC_MESSAGES/django.po | 136 +- .../converter/locale/pt/LC_MESSAGES/django.mo | Bin 753 -> 753 bytes .../converter/locale/pt/LC_MESSAGES/django.po | 122 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 2986 -> 2960 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 132 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 811 -> 811 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 125 +- .../converter/locale/ru/LC_MESSAGES/django.mo | Bin 3784 -> 3789 bytes .../converter/locale/ru/LC_MESSAGES/django.po | 140 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 559 -> 559 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 125 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 529 -> 529 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 122 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 686 -> 686 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 122 +- mayan/apps/converter/models.py | 8 +- mayan/apps/django_gpg/api_views.py | 59 + mayan/apps/django_gpg/apps.py | 4 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 2167 -> 2167 bytes .../locale/ar/LC_MESSAGES/django.po | 62 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 2670 -> 2670 bytes .../locale/bg/LC_MESSAGES/django.po | 59 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2230 -> 2230 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 66 +- .../locale/da/LC_MESSAGES/django.mo | Bin 552 -> 552 bytes .../locale/da/LC_MESSAGES/django.po | 59 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 4268 -> 4268 bytes .../locale/de_DE/LC_MESSAGES/django.po | 67 +- .../locale/en/LC_MESSAGES/django.mo | Bin 1919 -> 1919 bytes .../locale/en/LC_MESSAGES/django.po | 34 +- .../locale/es/LC_MESSAGES/django.mo | Bin 4125 -> 4125 bytes .../locale/es/LC_MESSAGES/django.po | 71 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 3015 -> 3015 bytes .../locale/fa/LC_MESSAGES/django.po | 59 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 4171 -> 4171 bytes .../locale/fr/LC_MESSAGES/django.po | 67 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 603 -> 603 bytes .../locale/hu/LC_MESSAGES/django.po | 59 +- .../locale/id/LC_MESSAGES/django.mo | Bin 521 -> 521 bytes .../locale/id/LC_MESSAGES/django.po | 59 +- .../locale/it/LC_MESSAGES/django.mo | Bin 4102 -> 4102 bytes .../locale/it/LC_MESSAGES/django.po | 67 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 2352 -> 2352 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 59 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 2635 -> 2635 bytes .../locale/pl/LC_MESSAGES/django.po | 69 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 2312 -> 2312 bytes .../locale/pt/LC_MESSAGES/django.po | 63 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 4121 -> 4121 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 63 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2324 -> 2324 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 70 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 4886 -> 4886 bytes .../locale/ru/LC_MESSAGES/django.po | 67 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 628 -> 628 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 62 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 2096 -> 2096 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 59 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2038 -> 2038 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 59 +- mayan/apps/django_gpg/models.py | 5 + mayan/apps/django_gpg/serializers.py | 17 + mayan/apps/django_gpg/tests/test_api.py | 59 + mayan/apps/django_gpg/urls.py | 9 + mayan/apps/document_comments/api_views.py | 120 + mayan/apps/document_comments/apps.py | 14 + .../locale/ar/LC_MESSAGES/django.mo | Bin 995 -> 995 bytes .../locale/ar/LC_MESSAGES/django.po | 38 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 998 -> 998 bytes .../locale/bg/LC_MESSAGES/django.po | 35 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 958 -> 958 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 38 +- .../locale/da/LC_MESSAGES/django.mo | Bin 850 -> 850 bytes .../locale/da/LC_MESSAGES/django.po | 35 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1434 -> 1434 bytes .../locale/de_DE/LC_MESSAGES/django.po | 35 +- .../locale/en/LC_MESSAGES/django.mo | Bin 743 -> 743 bytes .../locale/en/LC_MESSAGES/django.po | 24 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1438 -> 1438 bytes .../locale/es/LC_MESSAGES/django.po | 35 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 1181 -> 1181 bytes .../locale/fa/LC_MESSAGES/django.po | 35 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1528 -> 1528 bytes .../locale/fr/LC_MESSAGES/django.po | 35 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 855 -> 855 bytes .../locale/hu/LC_MESSAGES/django.po | 35 +- .../locale/id/LC_MESSAGES/django.mo | Bin 840 -> 840 bytes .../locale/id/LC_MESSAGES/django.po | 35 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1439 -> 1439 bytes .../locale/it/LC_MESSAGES/django.po | 35 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1260 -> 1260 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 35 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1525 -> 1525 bytes .../locale/pl/LC_MESSAGES/django.po | 38 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 906 -> 906 bytes .../locale/pt/LC_MESSAGES/django.po | 35 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1489 -> 1489 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 35 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 953 -> 953 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 38 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1872 -> 1872 bytes .../locale/ru/LC_MESSAGES/django.po | 39 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 860 -> 894 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 42 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 881 -> 881 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 35 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 829 -> 829 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 35 +- mayan/apps/document_comments/serializers.py | 71 + .../apps/document_comments/tests/__init__.py | 0 .../apps/document_comments/tests/literals.py | 3 + .../apps/document_comments/tests/test_api.py | 97 + mayan/apps/document_comments/urls.py | 12 + mayan/apps/document_indexing/api_views.py | 2 +- mayan/apps/document_indexing/apps.py | 38 +- mayan/apps/document_indexing/forms.py | 17 +- mayan/apps/document_indexing/handlers.py | 26 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 2042 -> 1872 bytes .../locale/ar/LC_MESSAGES/django.po | 223 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 1487 -> 1242 bytes .../locale/bg/LC_MESSAGES/django.po | 219 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2100 -> 1925 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 226 +- .../locale/da/LC_MESSAGES/django.mo | Bin 727 -> 572 bytes .../locale/da/LC_MESSAGES/django.po | 217 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 5187 -> 4965 bytes .../locale/de_DE/LC_MESSAGES/django.po | 233 +- .../locale/en/LC_MESSAGES/django.mo | Bin 1731 -> 1585 bytes .../locale/en/LC_MESSAGES/django.po | 216 +- .../locale/es/LC_MESSAGES/django.mo | Bin 5238 -> 5276 bytes .../locale/es/LC_MESSAGES/django.po | 204 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 4102 -> 3911 bytes .../locale/fa/LC_MESSAGES/django.po | 172 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 5428 -> 5196 bytes .../locale/fr/LC_MESSAGES/django.po | 236 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 727 -> 577 bytes .../locale/hu/LC_MESSAGES/django.po | 217 +- .../locale/id/LC_MESSAGES/django.mo | Bin 714 -> 539 bytes .../locale/id/LC_MESSAGES/django.po | 217 +- .../locale/it/LC_MESSAGES/django.mo | Bin 5358 -> 5098 bytes .../locale/it/LC_MESSAGES/django.po | 234 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 2783 -> 2910 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 185 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 3045 -> 2979 bytes .../locale/pl/LC_MESSAGES/django.po | 229 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 2152 -> 2005 bytes .../locale/pt/LC_MESSAGES/django.po | 223 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 5378 -> 5123 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 235 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2236 -> 2075 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 226 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 4086 -> 3771 bytes .../locale/ru/LC_MESSAGES/django.po | 226 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 851 -> 679 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 220 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 670 -> 670 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 217 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1791 -> 1661 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 217 +- mayan/apps/document_indexing/managers.py | 119 +- .../migrations/0011_auto_20170524_0456.py | 25 + .../migrations/0012_auto_20170530_0728.py | 31 + mayan/apps/document_indexing/models.py | 196 +- mayan/apps/document_indexing/tasks.py | 102 +- .../document_indexing/tests/test_models.py | 4 +- .../document_indexing/tests/test_views.py | 4 +- mayan/apps/document_indexing/urls.py | 8 +- mayan/apps/document_indexing/views.py | 28 +- mayan/apps/document_signatures/apps.py | 2 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 1061 -> 1061 bytes .../locale/ar/LC_MESSAGES/django.po | 106 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 1319 -> 1319 bytes .../locale/bg/LC_MESSAGES/django.po | 107 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 1081 -> 1081 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 106 +- .../locale/da/LC_MESSAGES/django.mo | Bin 749 -> 749 bytes .../locale/da/LC_MESSAGES/django.po | 103 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 5013 -> 5013 bytes .../locale/de_DE/LC_MESSAGES/django.po | 106 +- .../locale/en/LC_MESSAGES/django.mo | Bin 637 -> 637 bytes .../locale/en/LC_MESSAGES/django.po | 84 +- .../locale/es/LC_MESSAGES/django.mo | Bin 4720 -> 4720 bytes .../locale/es/LC_MESSAGES/django.po | 107 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 1628 -> 1628 bytes .../locale/fa/LC_MESSAGES/django.po | 103 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 5026 -> 5026 bytes .../locale/fr/LC_MESSAGES/django.po | 107 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 713 -> 713 bytes .../locale/hu/LC_MESSAGES/django.po | 103 +- .../locale/id/LC_MESSAGES/django.mo | Bin 696 -> 696 bytes .../locale/id/LC_MESSAGES/django.po | 107 +- .../locale/it/LC_MESSAGES/django.mo | Bin 4713 -> 4713 bytes .../locale/it/LC_MESSAGES/django.po | 107 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1831 -> 1831 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 103 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1134 -> 1134 bytes .../locale/pl/LC_MESSAGES/django.po | 106 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 1087 -> 1087 bytes .../locale/pt/LC_MESSAGES/django.po | 103 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 4934 -> 4934 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 106 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 1179 -> 1179 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 109 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 5994 -> 5994 bytes .../locale/ru/LC_MESSAGES/django.po | 111 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 792 -> 792 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 106 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 804 -> 804 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 103 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1016 -> 1016 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 103 +- mayan/apps/document_signatures/models.py | 10 + mayan/apps/document_states/admin.py | 2 +- mayan/apps/document_states/api_views.py | 603 ++ mayan/apps/document_states/apps.py | 118 +- mayan/apps/document_states/classes.py | 13 + mayan/apps/document_states/forms.py | 15 +- mayan/apps/document_states/handlers.py | 10 + mayan/apps/document_states/links.py | 28 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 737 -> 737 bytes .../locale/ar/LC_MESSAGES/django.po | 201 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 686 -> 686 bytes .../locale/bg/LC_MESSAGES/django.po | 198 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 746 -> 746 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 201 +- .../locale/da/LC_MESSAGES/django.mo | Bin 551 -> 551 bytes .../locale/da/LC_MESSAGES/django.po | 198 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 4181 -> 4245 bytes .../locale/de_DE/LC_MESSAGES/django.po | 209 +- .../locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../locale/en/LC_MESSAGES/django.po | 189 +- .../locale/es/LC_MESSAGES/django.mo | Bin 4557 -> 5760 bytes .../locale/es/LC_MESSAGES/django.po | 208 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 3882 -> 3882 bytes .../locale/fa/LC_MESSAGES/django.po | 202 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 4591 -> 4557 bytes .../locale/fr/LC_MESSAGES/django.po | 208 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 563 -> 563 bytes .../locale/hu/LC_MESSAGES/django.po | 198 +- .../locale/id/LC_MESSAGES/django.mo | Bin 522 -> 522 bytes .../locale/id/LC_MESSAGES/django.po | 198 +- .../locale/it/LC_MESSAGES/django.mo | Bin 4230 -> 4201 bytes .../locale/it/LC_MESSAGES/django.po | 208 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 2594 -> 2565 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 200 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 2483 -> 2572 bytes .../locale/pl/LC_MESSAGES/django.po | 202 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 705 -> 705 bytes .../locale/pt/LC_MESSAGES/django.po | 198 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 4398 -> 4373 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 210 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 771 -> 771 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 201 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1496 -> 1501 bytes .../locale/ru/LC_MESSAGES/django.po | 204 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 622 -> 664 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 203 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 609 -> 609 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 198 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 592 -> 592 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 198 +- .../migrations/0003_auto_20170325_0447.py | 49 + .../migrations/0004_workflow_internal_name.py | 72 + mayan/apps/document_states/models.py | 115 +- mayan/apps/document_states/permissions.py | 6 +- mayan/apps/document_states/serializers.py | 354 + mayan/apps/document_states/tasks.py | 24 + mayan/apps/document_states/tests/literals.py | 18 +- mayan/apps/document_states/tests/test_api.py | 812 ++ .../apps/document_states/tests/test_models.py | 125 + .../apps/document_states/tests/test_views.py | 305 +- mayan/apps/document_states/urls.py | 90 +- mayan/apps/document_states/views.py | 198 +- mayan/apps/documents/api_views.py | 214 +- mayan/apps/documents/apps.py | 38 +- mayan/apps/documents/links.py | 9 +- .../documents/locale/ar/LC_MESSAGES/django.mo | Bin 5721 -> 5496 bytes .../documents/locale/ar/LC_MESSAGES/django.po | 730 +- .../documents/locale/bg/LC_MESSAGES/django.mo | Bin 6745 -> 6485 bytes .../documents/locale/bg/LC_MESSAGES/django.po | 762 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 5160 -> 4986 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 752 +- .../documents/locale/da/LC_MESSAGES/django.mo | Bin 4944 -> 4725 bytes .../documents/locale/da/LC_MESSAGES/django.po | 747 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 16121 -> 14794 bytes .../locale/de_DE/LC_MESSAGES/django.po | 797 +- .../documents/locale/en/LC_MESSAGES/django.mo | Bin 4825 -> 4581 bytes .../documents/locale/en/LC_MESSAGES/django.po | 679 +- .../documents/locale/es/LC_MESSAGES/django.mo | Bin 14666 -> 13816 bytes .../documents/locale/es/LC_MESSAGES/django.po | 790 +- .../documents/locale/fa/LC_MESSAGES/django.mo | Bin 9226 -> 8875 bytes .../documents/locale/fa/LC_MESSAGES/django.po | 753 +- .../documents/locale/fr/LC_MESSAGES/django.mo | Bin 16909 -> 15457 bytes .../documents/locale/fr/LC_MESSAGES/django.po | 828 +- .../documents/locale/hu/LC_MESSAGES/django.mo | Bin 5183 -> 4964 bytes .../documents/locale/hu/LC_MESSAGES/django.po | 753 +- .../documents/locale/id/LC_MESSAGES/django.mo | Bin 4843 -> 4605 bytes .../documents/locale/id/LC_MESSAGES/django.po | 750 +- .../documents/locale/it/LC_MESSAGES/django.mo | Bin 16100 -> 14721 bytes .../documents/locale/it/LC_MESSAGES/django.po | 804 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 8077 -> 8839 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 799 +- .../documents/locale/pl/LC_MESSAGES/django.mo | Bin 7710 -> 7754 bytes .../documents/locale/pl/LC_MESSAGES/django.po | 763 +- .../documents/locale/pt/LC_MESSAGES/django.mo | Bin 5041 -> 4784 bytes .../documents/locale/pt/LC_MESSAGES/django.po | 751 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 16283 -> 14816 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 844 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 5672 -> 5480 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 760 +- .../documents/locale/ru/LC_MESSAGES/django.mo | Bin 20807 -> 18488 bytes .../documents/locale/ru/LC_MESSAGES/django.po | 801 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 5012 -> 4831 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 754 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 2980 -> 2916 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 727 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 4579 -> 4398 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 723 +- mayan/apps/documents/models.py | 25 +- mayan/apps/documents/serializers.py | 217 +- mayan/apps/documents/tests/test_api.py | 168 +- mayan/apps/documents/tests/test_models.py | 37 +- mayan/apps/documents/tests/test_views.py | 2 +- mayan/apps/documents/tests/test_widgets.py | 14 + mayan/apps/documents/urls.py | 51 +- .../documents/views/document_page_views.py | 5 +- mayan/apps/documents/widgets.py | 54 +- mayan/apps/dynamic_search/api_views.py | 24 +- mayan/apps/dynamic_search/apps.py | 2 +- mayan/apps/dynamic_search/classes.py | 4 + .../locale/ar/LC_MESSAGES/django.mo | Bin 1034 -> 756 bytes .../locale/ar/LC_MESSAGES/django.po | 101 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 1026 -> 726 bytes .../locale/bg/LC_MESSAGES/django.po | 98 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 1019 -> 772 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 101 +- .../locale/da/LC_MESSAGES/django.mo | Bin 490 -> 454 bytes .../locale/da/LC_MESSAGES/django.po | 92 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1353 -> 1424 bytes .../locale/de_DE/LC_MESSAGES/django.po | 102 +- .../locale/en/LC_MESSAGES/django.mo | Bin 847 -> 651 bytes .../locale/en/LC_MESSAGES/django.po | 94 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1374 -> 1483 bytes .../locale/es/LC_MESSAGES/django.po | 90 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 1385 -> 791 bytes .../locale/fa/LC_MESSAGES/django.po | 96 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1409 -> 851 bytes .../locale/fr/LC_MESSAGES/django.po | 98 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 937 -> 689 bytes .../locale/hu/LC_MESSAGES/django.po | 98 +- .../locale/id/LC_MESSAGES/django.mo | Bin 489 -> 451 bytes .../locale/id/LC_MESSAGES/django.po | 92 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1365 -> 828 bytes .../locale/it/LC_MESSAGES/django.po | 98 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1284 -> 819 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 99 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1446 -> 995 bytes .../locale/pl/LC_MESSAGES/django.po | 102 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 948 -> 719 bytes .../locale/pt/LC_MESSAGES/django.po | 98 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1393 -> 857 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 98 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 983 -> 719 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 99 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1280 -> 891 bytes .../locale/ru/LC_MESSAGES/django.po | 100 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 526 -> 526 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 95 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 747 -> 511 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 98 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 854 -> 641 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 98 +- mayan/apps/dynamic_search/serializers.py | 11 + mayan/apps/dynamic_search/tests/test_api.py | 23 +- mayan/apps/dynamic_search/urls.py | 8 +- mayan/apps/events/api_views.py | 18 +- mayan/apps/events/apps.py | 2 +- .../events/locale/ar/LC_MESSAGES/django.mo | Bin 621 -> 621 bytes .../events/locale/ar/LC_MESSAGES/django.po | 32 +- .../events/locale/bg/LC_MESSAGES/django.mo | Bin 561 -> 561 bytes .../events/locale/bg/LC_MESSAGES/django.po | 29 +- .../events/locale/bs_BA/LC_MESSAGES/django.mo | Bin 644 -> 644 bytes .../events/locale/bs_BA/LC_MESSAGES/django.po | 32 +- .../events/locale/da/LC_MESSAGES/django.mo | Bin 540 -> 540 bytes .../events/locale/da/LC_MESSAGES/django.po | 29 +- .../events/locale/de_DE/LC_MESSAGES/django.mo | Bin 1096 -> 1096 bytes .../events/locale/de_DE/LC_MESSAGES/django.po | 29 +- .../events/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../events/locale/en/LC_MESSAGES/django.po | 22 +- .../events/locale/es/LC_MESSAGES/django.mo | Bin 1066 -> 1066 bytes .../events/locale/es/LC_MESSAGES/django.po | 29 +- .../events/locale/fa/LC_MESSAGES/django.mo | Bin 1112 -> 1112 bytes .../events/locale/fa/LC_MESSAGES/django.po | 29 +- .../events/locale/fr/LC_MESSAGES/django.mo | Bin 1117 -> 1117 bytes .../events/locale/fr/LC_MESSAGES/django.po | 29 +- .../events/locale/hu/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../events/locale/hu/LC_MESSAGES/django.po | 29 +- .../events/locale/id/LC_MESSAGES/django.mo | Bin 461 -> 461 bytes .../events/locale/id/LC_MESSAGES/django.po | 29 +- .../events/locale/it/LC_MESSAGES/django.mo | Bin 1081 -> 1081 bytes .../events/locale/it/LC_MESSAGES/django.po | 29 +- .../events/locale/nl_NL/LC_MESSAGES/django.mo | Bin 1124 -> 1124 bytes .../events/locale/nl_NL/LC_MESSAGES/django.po | 29 +- .../events/locale/pl/LC_MESSAGES/django.mo | Bin 1118 -> 1118 bytes .../events/locale/pl/LC_MESSAGES/django.po | 32 +- .../events/locale/pt/LC_MESSAGES/django.mo | Bin 1031 -> 1031 bytes .../events/locale/pt/LC_MESSAGES/django.po | 29 +- .../events/locale/pt_BR/LC_MESSAGES/django.mo | Bin 1072 -> 1072 bytes .../events/locale/pt_BR/LC_MESSAGES/django.po | 29 +- .../events/locale/ro_RO/LC_MESSAGES/django.mo | Bin 598 -> 598 bytes .../events/locale/ro_RO/LC_MESSAGES/django.po | 32 +- .../events/locale/ru/LC_MESSAGES/django.mo | Bin 1334 -> 1334 bytes .../events/locale/ru/LC_MESSAGES/django.po | 33 +- .../events/locale/sl_SI/LC_MESSAGES/django.mo | Bin 569 -> 569 bytes .../events/locale/sl_SI/LC_MESSAGES/django.po | 32 +- .../events/locale/vi_VN/LC_MESSAGES/django.mo | Bin 558 -> 558 bytes .../events/locale/vi_VN/LC_MESSAGES/django.po | 29 +- .../events/locale/zh_CN/LC_MESSAGES/django.mo | Bin 548 -> 548 bytes .../events/locale/zh_CN/LC_MESSAGES/django.po | 29 +- mayan/apps/events/tests/test_api.py | 4 +- mayan/apps/folders/apps.py | 2 +- .../folders/locale/ar/LC_MESSAGES/django.mo | Bin 1598 -> 1197 bytes .../folders/locale/ar/LC_MESSAGES/django.po | 226 +- .../folders/locale/bg/LC_MESSAGES/django.mo | Bin 1617 -> 1154 bytes .../folders/locale/bg/LC_MESSAGES/django.po | 207 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 1472 -> 1132 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 214 +- .../folders/locale/da/LC_MESSAGES/django.mo | Bin 1326 -> 934 bytes .../folders/locale/da/LC_MESSAGES/django.po | 207 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 2994 -> 2291 bytes .../locale/de_DE/LC_MESSAGES/django.po | 212 +- .../folders/locale/en/LC_MESSAGES/django.mo | Bin 1297 -> 903 bytes .../folders/locale/en/LC_MESSAGES/django.po | 198 +- .../folders/locale/es/LC_MESSAGES/django.mo | Bin 3023 -> 2109 bytes .../folders/locale/es/LC_MESSAGES/django.po | 213 +- .../folders/locale/fa/LC_MESSAGES/django.mo | Bin 2305 -> 1614 bytes .../folders/locale/fa/LC_MESSAGES/django.po | 205 +- .../folders/locale/fr/LC_MESSAGES/django.mo | Bin 3146 -> 2126 bytes .../folders/locale/fr/LC_MESSAGES/django.po | 214 +- .../folders/locale/hu/LC_MESSAGES/django.mo | Bin 1400 -> 971 bytes .../folders/locale/hu/LC_MESSAGES/django.po | 207 +- .../folders/locale/id/LC_MESSAGES/django.mo | Bin 706 -> 549 bytes .../folders/locale/id/LC_MESSAGES/django.po | 193 +- .../folders/locale/it/LC_MESSAGES/django.mo | Bin 3058 -> 2118 bytes .../folders/locale/it/LC_MESSAGES/django.po | 214 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 2610 -> 2035 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 214 +- .../folders/locale/pl/LC_MESSAGES/django.mo | Bin 2955 -> 2075 bytes .../folders/locale/pl/LC_MESSAGES/django.po | 227 +- .../folders/locale/pt/LC_MESSAGES/django.mo | Bin 1466 -> 1118 bytes .../folders/locale/pt/LC_MESSAGES/django.po | 207 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 2985 -> 2083 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 213 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 1544 -> 1205 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 215 +- .../folders/locale/ru/LC_MESSAGES/django.mo | Bin 1863 -> 1409 bytes .../folders/locale/ru/LC_MESSAGES/django.po | 219 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 807 -> 599 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 206 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 1480 -> 1100 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 203 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1326 -> 1005 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 203 +- mayan/apps/folders/tests/test_api.py | 10 +- mayan/apps/linking/api_views.py | 334 + mayan/apps/linking/apps.py | 5 +- mayan/apps/linking/forms.py | 4 +- .../linking/locale/ar/LC_MESSAGES/django.mo | Bin 2695 -> 2695 bytes .../linking/locale/ar/LC_MESSAGES/django.po | 122 +- .../linking/locale/bg/LC_MESSAGES/django.mo | Bin 1692 -> 1692 bytes .../linking/locale/bg/LC_MESSAGES/django.po | 119 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2630 -> 2630 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 122 +- .../linking/locale/da/LC_MESSAGES/django.mo | Bin 499 -> 499 bytes .../linking/locale/da/LC_MESSAGES/django.po | 119 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 4921 -> 4921 bytes .../locale/de_DE/LC_MESSAGES/django.po | 127 +- .../linking/locale/en/LC_MESSAGES/django.mo | Bin 2371 -> 2371 bytes .../linking/locale/en/LC_MESSAGES/django.po | 81 +- .../linking/locale/es/LC_MESSAGES/django.mo | Bin 5055 -> 5055 bytes .../linking/locale/es/LC_MESSAGES/django.po | 132 +- .../linking/locale/fa/LC_MESSAGES/django.mo | Bin 4174 -> 4174 bytes .../linking/locale/fa/LC_MESSAGES/django.po | 119 +- .../linking/locale/fr/LC_MESSAGES/django.mo | Bin 5080 -> 5080 bytes .../linking/locale/fr/LC_MESSAGES/django.po | 131 +- .../linking/locale/hu/LC_MESSAGES/django.mo | Bin 504 -> 504 bytes .../linking/locale/hu/LC_MESSAGES/django.po | 119 +- .../linking/locale/id/LC_MESSAGES/django.mo | Bin 493 -> 493 bytes .../linking/locale/id/LC_MESSAGES/django.po | 119 +- .../linking/locale/it/LC_MESSAGES/django.mo | Bin 5008 -> 4979 bytes .../linking/locale/it/LC_MESSAGES/django.po | 133 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 3137 -> 3108 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 121 +- .../linking/locale/pl/LC_MESSAGES/django.mo | Bin 4878 -> 4967 bytes .../linking/locale/pl/LC_MESSAGES/django.po | 128 +- .../linking/locale/pt/LC_MESSAGES/django.mo | Bin 2762 -> 2762 bytes .../linking/locale/pt/LC_MESSAGES/django.po | 119 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 5042 -> 5016 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 133 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2808 -> 2808 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 122 +- .../linking/locale/ru/LC_MESSAGES/django.mo | Bin 3457 -> 3457 bytes .../linking/locale/ru/LC_MESSAGES/django.po | 123 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 599 -> 599 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 122 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 1916 -> 1916 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 119 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2299 -> 2299 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 119 +- mayan/apps/linking/managers.py | 8 + mayan/apps/linking/models.py | 3 + mayan/apps/linking/serializers.py | 147 + mayan/apps/linking/tests/literals.py | 6 +- mayan/apps/linking/tests/test_api.py | 344 + mayan/apps/linking/tests/test_views.py | 8 +- mayan/apps/linking/urls.py | 40 + mayan/apps/linking/views.py | 4 +- mayan/apps/lock_manager/apps.py | 2 +- mayan/apps/lock_manager/backends/file_lock.py | 16 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 583 -> 583 bytes .../locale/ar/LC_MESSAGES/django.po | 14 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 503 -> 503 bytes .../locale/bg/LC_MESSAGES/django.po | 11 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 603 -> 603 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 14 +- .../locale/da/LC_MESSAGES/django.mo | Bin 498 -> 498 bytes .../locale/da/LC_MESSAGES/django.po | 11 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 732 -> 732 bytes .../locale/de_DE/LC_MESSAGES/django.po | 11 +- .../locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../locale/en/LC_MESSAGES/django.po | 4 +- .../locale/es/LC_MESSAGES/django.mo | Bin 729 -> 729 bytes .../locale/es/LC_MESSAGES/django.po | 11 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 536 -> 536 bytes .../locale/fa/LC_MESSAGES/django.po | 11 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 767 -> 767 bytes .../locale/fr/LC_MESSAGES/django.po | 11 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../locale/hu/LC_MESSAGES/django.po | 11 +- .../locale/id/LC_MESSAGES/django.mo | Bin 461 -> 461 bytes .../locale/id/LC_MESSAGES/django.po | 11 +- .../locale/it/LC_MESSAGES/django.mo | Bin 732 -> 732 bytes .../locale/it/LC_MESSAGES/django.po | 11 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 591 -> 591 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 11 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 557 -> 557 bytes .../locale/pl/LC_MESSAGES/django.po | 14 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 502 -> 502 bytes .../locale/pt/LC_MESSAGES/django.po | 11 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 776 -> 776 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 11 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 557 -> 557 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 14 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 678 -> 678 bytes .../locale/ru/LC_MESSAGES/django.po | 15 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 569 -> 569 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 14 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 512 -> 512 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 11 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 508 -> 508 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 11 +- mayan/apps/mailer/apps.py | 2 +- .../mailer/locale/ar/LC_MESSAGES/django.mo | Bin 673 -> 537 bytes .../mailer/locale/ar/LC_MESSAGES/django.po | 68 +- .../mailer/locale/bg/LC_MESSAGES/django.mo | Bin 1492 -> 1221 bytes .../mailer/locale/bg/LC_MESSAGES/django.po | 63 +- .../mailer/locale/bs_BA/LC_MESSAGES/django.mo | Bin 662 -> 560 bytes .../mailer/locale/bs_BA/LC_MESSAGES/django.po | 68 +- .../mailer/locale/da/LC_MESSAGES/django.mo | Bin 557 -> 454 bytes .../mailer/locale/da/LC_MESSAGES/django.po | 65 +- .../mailer/locale/de_DE/LC_MESSAGES/django.mo | Bin 3231 -> 2728 bytes .../mailer/locale/de_DE/LC_MESSAGES/django.po | 95 +- .../mailer/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../mailer/locale/en/LC_MESSAGES/django.po | 50 +- .../mailer/locale/es/LC_MESSAGES/django.mo | Bin 3414 -> 3448 bytes .../mailer/locale/es/LC_MESSAGES/django.po | 62 +- .../mailer/locale/fa/LC_MESSAGES/django.mo | Bin 2490 -> 1930 bytes .../mailer/locale/fa/LC_MESSAGES/django.po | 67 +- .../mailer/locale/fr/LC_MESSAGES/django.mo | Bin 3296 -> 2727 bytes .../mailer/locale/fr/LC_MESSAGES/django.po | 81 +- .../mailer/locale/hu/LC_MESSAGES/django.mo | Bin 565 -> 457 bytes .../mailer/locale/hu/LC_MESSAGES/django.po | 65 +- .../mailer/locale/id/LC_MESSAGES/django.mo | Bin 603 -> 499 bytes .../mailer/locale/id/LC_MESSAGES/django.po | 65 +- .../mailer/locale/it/LC_MESSAGES/django.mo | Bin 3197 -> 2698 bytes .../mailer/locale/it/LC_MESSAGES/django.po | 89 +- .../mailer/locale/nl_NL/LC_MESSAGES/django.mo | Bin 1828 -> 1286 bytes .../mailer/locale/nl_NL/LC_MESSAGES/django.po | 69 +- .../mailer/locale/pl/LC_MESSAGES/django.mo | Bin 2311 -> 1872 bytes .../mailer/locale/pl/LC_MESSAGES/django.po | 73 +- .../mailer/locale/pt/LC_MESSAGES/django.mo | Bin 1400 -> 1299 bytes .../mailer/locale/pt/LC_MESSAGES/django.po | 69 +- .../mailer/locale/pt_BR/LC_MESSAGES/django.mo | Bin 3295 -> 2748 bytes .../mailer/locale/pt_BR/LC_MESSAGES/django.po | 86 +- .../mailer/locale/ro_RO/LC_MESSAGES/django.mo | Bin 663 -> 560 bytes .../mailer/locale/ro_RO/LC_MESSAGES/django.po | 68 +- .../mailer/locale/ru/LC_MESSAGES/django.mo | Bin 2165 -> 1849 bytes .../mailer/locale/ru/LC_MESSAGES/django.po | 69 +- .../mailer/locale/sl_SI/LC_MESSAGES/django.mo | Bin 632 -> 526 bytes .../mailer/locale/sl_SI/LC_MESSAGES/django.po | 68 +- .../mailer/locale/vi_VN/LC_MESSAGES/django.mo | Bin 585 -> 468 bytes .../mailer/locale/vi_VN/LC_MESSAGES/django.po | 65 +- .../mailer/locale/zh_CN/LC_MESSAGES/django.mo | Bin 557 -> 462 bytes .../mailer/locale/zh_CN/LC_MESSAGES/django.po | 65 +- mayan/apps/metadata/api_views.py | 409 +- mayan/apps/metadata/apps.py | 17 +- mayan/apps/metadata/classes.py | 21 +- mayan/apps/metadata/forms.py | 9 +- mayan/apps/metadata/handlers.py | 8 + .../metadata/locale/ar/LC_MESSAGES/django.mo | Bin 2824 -> 2853 bytes .../metadata/locale/ar/LC_MESSAGES/django.po | 342 +- .../metadata/locale/bg/LC_MESSAGES/django.mo | Bin 1049 -> 959 bytes .../metadata/locale/bg/LC_MESSAGES/django.po | 323 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2322 -> 2339 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 329 +- .../metadata/locale/da/LC_MESSAGES/django.mo | Bin 1091 -> 990 bytes .../metadata/locale/da/LC_MESSAGES/django.po | 321 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 8602 -> 7946 bytes .../locale/de_DE/LC_MESSAGES/django.po | 367 +- .../metadata/locale/en/LC_MESSAGES/django.mo | Bin 2011 -> 1923 bytes .../metadata/locale/en/LC_MESSAGES/django.po | 263 +- .../metadata/locale/es/LC_MESSAGES/django.mo | Bin 8785 -> 8036 bytes .../metadata/locale/es/LC_MESSAGES/django.po | 360 +- .../metadata/locale/fa/LC_MESSAGES/django.mo | Bin 6643 -> 6029 bytes .../metadata/locale/fa/LC_MESSAGES/django.po | 319 +- .../metadata/locale/fr/LC_MESSAGES/django.mo | Bin 8993 -> 8432 bytes .../metadata/locale/fr/LC_MESSAGES/django.po | 361 +- .../metadata/locale/hu/LC_MESSAGES/django.mo | Bin 705 -> 607 bytes .../metadata/locale/hu/LC_MESSAGES/django.po | 321 +- .../metadata/locale/id/LC_MESSAGES/django.mo | Bin 745 -> 678 bytes .../metadata/locale/id/LC_MESSAGES/django.po | 303 +- .../metadata/locale/it/LC_MESSAGES/django.mo | Bin 8599 -> 7843 bytes .../metadata/locale/it/LC_MESSAGES/django.po | 359 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 2040 -> 2576 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 342 +- .../metadata/locale/pl/LC_MESSAGES/django.mo | Bin 5606 -> 5355 bytes .../metadata/locale/pl/LC_MESSAGES/django.po | 360 +- .../metadata/locale/pt/LC_MESSAGES/django.mo | Bin 2391 -> 2414 bytes .../metadata/locale/pt/LC_MESSAGES/django.po | 330 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 8813 -> 8034 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 361 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2497 -> 2512 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 330 +- .../metadata/locale/ru/LC_MESSAGES/django.mo | Bin 7817 -> 6990 bytes .../metadata/locale/ru/LC_MESSAGES/django.po | 349 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 844 -> 790 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 328 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 1847 -> 1774 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 303 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2114 -> 2131 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 303 +- mayan/apps/metadata/serializers.py | 159 +- .../static/metadata/js/metadata_form.js | 11 + mayan/apps/metadata/tests/test_api.py | 266 +- mayan/apps/metadata/urls.py | 39 +- mayan/apps/metadata/views.py | 60 +- .../mirroring/locale/ar/LC_MESSAGES/django.mo | Bin 547 -> 547 bytes .../mirroring/locale/ar/LC_MESSAGES/django.po | 12 +- .../mirroring/locale/bg/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../mirroring/locale/bg/LC_MESSAGES/django.po | 9 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 570 -> 570 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 12 +- .../mirroring/locale/da/LC_MESSAGES/django.mo | Bin 464 -> 464 bytes .../mirroring/locale/da/LC_MESSAGES/django.po | 9 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 861 -> 861 bytes .../locale/de_DE/LC_MESSAGES/django.po | 17 +- .../mirroring/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../mirroring/locale/en/LC_MESSAGES/django.po | 2 +- .../mirroring/locale/es/LC_MESSAGES/django.mo | Bin 872 -> 872 bytes .../mirroring/locale/es/LC_MESSAGES/django.po | 17 +- .../mirroring/locale/fa/LC_MESSAGES/django.mo | Bin 458 -> 458 bytes .../mirroring/locale/fa/LC_MESSAGES/django.po | 9 +- .../mirroring/locale/fr/LC_MESSAGES/django.mo | Bin 837 -> 837 bytes .../mirroring/locale/fr/LC_MESSAGES/django.po | 15 +- .../mirroring/locale/hu/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../mirroring/locale/hu/LC_MESSAGES/django.po | 9 +- .../mirroring/locale/id/LC_MESSAGES/django.mo | Bin 461 -> 461 bytes .../mirroring/locale/id/LC_MESSAGES/django.po | 9 +- .../mirroring/locale/it/LC_MESSAGES/django.mo | Bin 831 -> 831 bytes .../mirroring/locale/it/LC_MESSAGES/django.po | 16 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 546 -> 546 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 9 +- .../mirroring/locale/pl/LC_MESSAGES/django.mo | Bin 522 -> 522 bytes .../mirroring/locale/pl/LC_MESSAGES/django.po | 12 +- .../mirroring/locale/pt/LC_MESSAGES/django.mo | Bin 468 -> 468 bytes .../mirroring/locale/pt/LC_MESSAGES/django.po | 9 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 895 -> 895 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 17 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 523 -> 523 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 12 +- .../mirroring/locale/ru/LC_MESSAGES/django.mo | Bin 993 -> 993 bytes .../mirroring/locale/ru/LC_MESSAGES/django.po | 13 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 536 -> 536 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 12 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 478 -> 478 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 9 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 472 -> 472 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 9 +- .../management/commands/mountindex.py | 31 +- mayan/apps/motd/api_views.py | 76 + mayan/apps/motd/apps.py | 5 +- .../apps/motd/locale/ar/LC_MESSAGES/django.mo | Bin 620 -> 620 bytes .../apps/motd/locale/ar/LC_MESSAGES/django.po | 22 +- .../apps/motd/locale/bg/LC_MESSAGES/django.mo | Bin 549 -> 549 bytes .../apps/motd/locale/bg/LC_MESSAGES/django.po | 19 +- .../motd/locale/bs_BA/LC_MESSAGES/django.mo | Bin 636 -> 636 bytes .../motd/locale/bs_BA/LC_MESSAGES/django.po | 22 +- .../apps/motd/locale/da/LC_MESSAGES/django.mo | Bin 499 -> 499 bytes .../apps/motd/locale/da/LC_MESSAGES/django.po | 19 +- .../motd/locale/de_DE/LC_MESSAGES/django.mo | Bin 1867 -> 1867 bytes .../motd/locale/de_DE/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../apps/motd/locale/en/LC_MESSAGES/django.po | 12 +- .../apps/motd/locale/es/LC_MESSAGES/django.mo | Bin 1806 -> 1806 bytes .../apps/motd/locale/es/LC_MESSAGES/django.po | 22 +- .../apps/motd/locale/fa/LC_MESSAGES/django.mo | Bin 664 -> 664 bytes .../apps/motd/locale/fa/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/fr/LC_MESSAGES/django.mo | Bin 1777 -> 1777 bytes .../apps/motd/locale/fr/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/hu/LC_MESSAGES/django.mo | Bin 502 -> 502 bytes .../apps/motd/locale/hu/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/id/LC_MESSAGES/django.mo | Bin 461 -> 461 bytes .../apps/motd/locale/id/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/it/LC_MESSAGES/django.mo | Bin 1827 -> 1827 bytes .../apps/motd/locale/it/LC_MESSAGES/django.po | 19 +- .../motd/locale/nl_NL/LC_MESSAGES/django.mo | Bin 1278 -> 1278 bytes .../motd/locale/nl_NL/LC_MESSAGES/django.po | 19 +- .../apps/motd/locale/pl/LC_MESSAGES/django.mo | Bin 703 -> 703 bytes .../apps/motd/locale/pl/LC_MESSAGES/django.po | 22 +- .../apps/motd/locale/pt/LC_MESSAGES/django.mo | Bin 599 -> 599 bytes .../apps/motd/locale/pt/LC_MESSAGES/django.po | 19 +- .../motd/locale/pt_BR/LC_MESSAGES/django.mo | Bin 1799 -> 1799 bytes .../motd/locale/pt_BR/LC_MESSAGES/django.po | 19 +- .../motd/locale/ro_RO/LC_MESSAGES/django.mo | Bin 664 -> 664 bytes .../motd/locale/ro_RO/LC_MESSAGES/django.po | 22 +- .../apps/motd/locale/ru/LC_MESSAGES/django.mo | Bin 2325 -> 2325 bytes .../apps/motd/locale/ru/LC_MESSAGES/django.po | 23 +- .../motd/locale/sl_SI/LC_MESSAGES/django.mo | Bin 599 -> 599 bytes .../motd/locale/sl_SI/LC_MESSAGES/django.po | 22 +- .../motd/locale/vi_VN/LC_MESSAGES/django.mo | Bin 539 -> 539 bytes .../motd/locale/vi_VN/LC_MESSAGES/django.po | 19 +- .../motd/locale/zh_CN/LC_MESSAGES/django.mo | Bin 505 -> 505 bytes .../motd/locale/zh_CN/LC_MESSAGES/django.po | 19 +- mayan/apps/motd/serializers.py | 17 + mayan/apps/motd/tests/literals.py | 6 + mayan/apps/motd/tests/test_api.py | 104 + mayan/apps/motd/tests/test_models.py | 3 +- mayan/apps/motd/urls.py | 9 + mayan/apps/navigation/apps.py | 2 +- mayan/apps/navigation/classes.py | 7 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 537 -> 537 bytes .../locale/ar/LC_MESSAGES/django.po | 2 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/bg/LC_MESSAGES/django.po | 2 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 560 -> 560 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 2 +- .../locale/da/LC_MESSAGES/django.mo | Bin 454 -> 454 bytes .../locale/da/LC_MESSAGES/django.po | 2 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 549 -> 549 bytes .../locale/de_DE/LC_MESSAGES/django.po | 2 +- .../locale/en/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/en/LC_MESSAGES/django.po | 2 +- .../locale/es/LC_MESSAGES/django.mo | Bin 535 -> 535 bytes .../locale/es/LC_MESSAGES/django.po | 2 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 493 -> 493 bytes .../locale/fa/LC_MESSAGES/django.po | 2 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 493 -> 493 bytes .../locale/fr/LC_MESSAGES/django.po | 2 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/hu/LC_MESSAGES/django.po | 2 +- .../locale/id/LC_MESSAGES/django.mo | Bin 451 -> 451 bytes .../locale/id/LC_MESSAGES/django.po | 2 +- .../locale/it/LC_MESSAGES/django.mo | Bin 455 -> 455 bytes .../locale/it/LC_MESSAGES/django.po | 2 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 473 -> 473 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 2 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 550 -> 550 bytes .../locale/pl/LC_MESSAGES/django.po | 2 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 458 -> 458 bytes .../locale/pt/LC_MESSAGES/django.po | 2 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 512 -> 512 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 2 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 513 -> 513 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 2 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 593 -> 593 bytes .../locale/ru/LC_MESSAGES/django.po | 2 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 526 -> 526 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 2 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 468 -> 468 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 2 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 462 -> 462 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 2 +- mayan/apps/ocr/apps.py | 2 +- mayan/apps/ocr/backends/pyocr.py | 7 +- .../apps/ocr/locale/ar/LC_MESSAGES/django.mo | Bin 1312 -> 1088 bytes .../apps/ocr/locale/ar/LC_MESSAGES/django.po | 111 +- .../apps/ocr/locale/bg/LC_MESSAGES/django.mo | Bin 992 -> 878 bytes .../apps/ocr/locale/bg/LC_MESSAGES/django.po | 105 +- .../ocr/locale/bs_BA/LC_MESSAGES/django.mo | Bin 1324 -> 1085 bytes .../ocr/locale/bs_BA/LC_MESSAGES/django.po | 111 +- .../apps/ocr/locale/da/LC_MESSAGES/django.mo | Bin 1218 -> 990 bytes .../apps/ocr/locale/da/LC_MESSAGES/django.po | 109 +- .../ocr/locale/de_DE/LC_MESSAGES/django.mo | Bin 4293 -> 3966 bytes .../ocr/locale/de_DE/LC_MESSAGES/django.po | 123 +- .../apps/ocr/locale/en/LC_MESSAGES/django.mo | Bin 857 -> 857 bytes .../apps/ocr/locale/en/LC_MESSAGES/django.po | 77 +- .../apps/ocr/locale/es/LC_MESSAGES/django.mo | Bin 4155 -> 3837 bytes .../apps/ocr/locale/es/LC_MESSAGES/django.po | 109 +- .../apps/ocr/locale/fa/LC_MESSAGES/django.mo | Bin 2075 -> 1810 bytes .../apps/ocr/locale/fa/LC_MESSAGES/django.po | 105 +- .../apps/ocr/locale/fr/LC_MESSAGES/django.mo | Bin 4346 -> 4001 bytes .../apps/ocr/locale/fr/LC_MESSAGES/django.po | 118 +- .../apps/ocr/locale/hu/LC_MESSAGES/django.mo | Bin 710 -> 710 bytes .../apps/ocr/locale/hu/LC_MESSAGES/django.po | 105 +- .../apps/ocr/locale/id/LC_MESSAGES/django.mo | Bin 690 -> 690 bytes .../apps/ocr/locale/id/LC_MESSAGES/django.po | 105 +- .../apps/ocr/locale/it/LC_MESSAGES/django.mo | Bin 4090 -> 3764 bytes .../apps/ocr/locale/it/LC_MESSAGES/django.po | 118 +- .../ocr/locale/nl_NL/LC_MESSAGES/django.mo | Bin 1487 -> 1396 bytes .../ocr/locale/nl_NL/LC_MESSAGES/django.po | 112 +- .../apps/ocr/locale/pl/LC_MESSAGES/django.mo | Bin 1744 -> 1678 bytes .../apps/ocr/locale/pl/LC_MESSAGES/django.po | 111 +- .../apps/ocr/locale/pt/LC_MESSAGES/django.mo | Bin 1182 -> 1007 bytes .../apps/ocr/locale/pt/LC_MESSAGES/django.po | 109 +- .../ocr/locale/pt_BR/LC_MESSAGES/django.mo | Bin 4193 -> 3849 bytes .../ocr/locale/pt_BR/LC_MESSAGES/django.po | 111 +- .../ocr/locale/ro_RO/LC_MESSAGES/django.mo | Bin 1357 -> 1124 bytes .../ocr/locale/ro_RO/LC_MESSAGES/django.po | 112 +- .../apps/ocr/locale/ru/LC_MESSAGES/django.mo | Bin 5561 -> 5221 bytes .../apps/ocr/locale/ru/LC_MESSAGES/django.po | 123 +- .../ocr/locale/sl_SI/LC_MESSAGES/django.mo | Bin 773 -> 823 bytes .../ocr/locale/sl_SI/LC_MESSAGES/django.po | 110 +- .../ocr/locale/vi_VN/LC_MESSAGES/django.mo | Bin 766 -> 766 bytes .../ocr/locale/vi_VN/LC_MESSAGES/django.po | 105 +- .../ocr/locale/zh_CN/LC_MESSAGES/django.mo | Bin 1308 -> 1099 bytes .../ocr/locale/zh_CN/LC_MESSAGES/django.po | 105 +- mayan/apps/ocr/tests/test_api.py | 7 +- mayan/apps/ocr/tests/test_parsers.py | 3 + mayan/apps/permissions/api_views.py | 53 - mayan/apps/permissions/apps.py | 2 +- mayan/apps/permissions/classes.py | 5 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 1254 -> 1254 bytes .../locale/ar/LC_MESSAGES/django.po | 66 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 1348 -> 1348 bytes .../locale/bg/LC_MESSAGES/django.po | 63 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 1171 -> 1171 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 66 +- .../locale/da/LC_MESSAGES/django.mo | Bin 488 -> 488 bytes .../locale/da/LC_MESSAGES/django.po | 63 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1878 -> 2159 bytes .../locale/de_DE/LC_MESSAGES/django.po | 68 +- .../locale/en/LC_MESSAGES/django.mo | Bin 975 -> 975 bytes .../locale/en/LC_MESSAGES/django.po | 35 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1792 -> 1856 bytes .../locale/es/LC_MESSAGES/django.po | 65 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 1487 -> 1487 bytes .../locale/fa/LC_MESSAGES/django.po | 63 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1877 -> 1842 bytes .../locale/fr/LC_MESSAGES/django.po | 65 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/hu/LC_MESSAGES/django.po | 63 +- .../locale/id/LC_MESSAGES/django.mo | Bin 451 -> 451 bytes .../locale/id/LC_MESSAGES/django.po | 63 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1872 -> 1843 bytes .../locale/it/LC_MESSAGES/django.po | 65 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1965 -> 1936 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 65 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1288 -> 1420 bytes .../locale/pl/LC_MESSAGES/django.po | 71 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 1280 -> 1280 bytes .../locale/pt/LC_MESSAGES/django.po | 63 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1863 -> 1837 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 65 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 1328 -> 1328 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 66 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 2286 -> 2291 bytes .../locale/ru/LC_MESSAGES/django.po | 69 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 854 -> 854 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 66 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 710 -> 710 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 63 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 1074 -> 1074 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 63 +- mayan/apps/permissions/models.py | 12 +- mayan/apps/permissions/serializers.py | 15 +- mayan/apps/permissions/tests/test_api.py | 5 +- .../rest_api/locale/ar/LC_MESSAGES/django.mo | Bin 547 -> 537 bytes .../rest_api/locale/ar/LC_MESSAGES/django.po | 21 +- .../rest_api/locale/bg/LC_MESSAGES/django.mo | Bin 467 -> 457 bytes .../rest_api/locale/bg/LC_MESSAGES/django.po | 18 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 570 -> 560 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 21 +- .../rest_api/locale/da/LC_MESSAGES/django.mo | Bin 464 -> 454 bytes .../rest_api/locale/da/LC_MESSAGES/django.po | 18 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 582 -> 679 bytes .../locale/de_DE/LC_MESSAGES/django.po | 19 +- .../rest_api/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../rest_api/locale/en/LC_MESSAGES/django.po | 7 +- .../rest_api/locale/es/LC_MESSAGES/django.mo | Bin 556 -> 663 bytes .../rest_api/locale/es/LC_MESSAGES/django.po | 18 +- .../rest_api/locale/fa/LC_MESSAGES/django.mo | Bin 510 -> 510 bytes .../rest_api/locale/fa/LC_MESSAGES/django.po | 16 +- .../rest_api/locale/fr/LC_MESSAGES/django.mo | Bin 586 -> 552 bytes .../rest_api/locale/fr/LC_MESSAGES/django.po | 18 +- .../rest_api/locale/hu/LC_MESSAGES/django.mo | Bin 467 -> 457 bytes .../rest_api/locale/hu/LC_MESSAGES/django.po | 18 +- .../rest_api/locale/id/LC_MESSAGES/django.mo | Bin 461 -> 451 bytes .../rest_api/locale/id/LC_MESSAGES/django.po | 18 +- .../rest_api/locale/it/LC_MESSAGES/django.mo | Bin 578 -> 550 bytes .../rest_api/locale/it/LC_MESSAGES/django.po | 18 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 595 -> 566 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 18 +- .../rest_api/locale/pl/LC_MESSAGES/django.mo | Bin 554 -> 643 bytes .../rest_api/locale/pl/LC_MESSAGES/django.po | 20 +- .../rest_api/locale/pt/LC_MESSAGES/django.mo | Bin 520 -> 510 bytes .../rest_api/locale/pt/LC_MESSAGES/django.po | 18 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 596 -> 570 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 18 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 523 -> 513 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 21 +- .../rest_api/locale/ru/LC_MESSAGES/django.mo | Bin 693 -> 698 bytes .../rest_api/locale/ru/LC_MESSAGES/django.po | 22 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 536 -> 526 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 21 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 478 -> 468 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 18 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 472 -> 462 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 18 +- mayan/apps/rest_api/tests/__init__.py | 1 + mayan/apps/rest_api/tests/base.py | 17 + mayan/apps/smart_settings/apps.py | 2 +- mayan/apps/smart_settings/classes.py | 16 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 604 -> 604 bytes .../locale/ar/LC_MESSAGES/django.po | 22 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 532 -> 532 bytes .../locale/bg/LC_MESSAGES/django.po | 19 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 626 -> 626 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 22 +- .../locale/da/LC_MESSAGES/django.mo | Bin 488 -> 488 bytes .../locale/da/LC_MESSAGES/django.po | 19 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1054 -> 943 bytes .../locale/de_DE/LC_MESSAGES/django.po | 21 +- .../locale/en/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/en/LC_MESSAGES/django.po | 10 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1018 -> 933 bytes .../locale/es/LC_MESSAGES/django.po | 19 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 557 -> 557 bytes .../locale/fa/LC_MESSAGES/django.po | 19 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1095 -> 967 bytes .../locale/fr/LC_MESSAGES/django.po | 21 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/hu/LC_MESSAGES/django.po | 19 +- .../locale/id/LC_MESSAGES/django.mo | Bin 451 -> 451 bytes .../locale/id/LC_MESSAGES/django.po | 19 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1086 -> 966 bytes .../locale/it/LC_MESSAGES/django.po | 21 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 774 -> 699 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 21 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1139 -> 1105 bytes .../locale/pl/LC_MESSAGES/django.po | 25 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 520 -> 520 bytes .../locale/pt/LC_MESSAGES/django.po | 19 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1065 -> 951 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 21 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 577 -> 577 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 22 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1335 -> 1229 bytes .../locale/ru/LC_MESSAGES/django.po | 25 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 559 -> 559 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 22 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 535 -> 535 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 19 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 524 -> 524 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 19 +- mayan/apps/sources/apps.py | 10 +- mayan/apps/sources/links.py | 4 + .../sources/locale/ar/LC_MESSAGES/django.mo | Bin 2591 -> 2591 bytes .../sources/locale/ar/LC_MESSAGES/django.po | 238 +- .../sources/locale/bg/LC_MESSAGES/django.mo | Bin 1571 -> 1571 bytes .../sources/locale/bg/LC_MESSAGES/django.po | 235 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2375 -> 2375 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 238 +- .../sources/locale/da/LC_MESSAGES/django.mo | Bin 2148 -> 2148 bytes .../sources/locale/da/LC_MESSAGES/django.po | 235 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 9553 -> 9456 bytes .../locale/de_DE/LC_MESSAGES/django.po | 278 +- .../sources/locale/en/LC_MESSAGES/django.mo | Bin 2019 -> 2019 bytes .../sources/locale/en/LC_MESSAGES/django.po | 210 +- .../sources/locale/es/LC_MESSAGES/django.mo | Bin 8713 -> 9052 bytes .../sources/locale/es/LC_MESSAGES/django.po | 270 +- .../sources/locale/fa/LC_MESSAGES/django.mo | Bin 7372 -> 7287 bytes .../sources/locale/fa/LC_MESSAGES/django.po | 247 +- .../sources/locale/fr/LC_MESSAGES/django.mo | Bin 10371 -> 10242 bytes .../sources/locale/fr/LC_MESSAGES/django.po | 286 +- .../sources/locale/hu/LC_MESSAGES/django.mo | Bin 1472 -> 1472 bytes .../sources/locale/hu/LC_MESSAGES/django.po | 235 +- .../sources/locale/id/LC_MESSAGES/django.mo | Bin 1808 -> 1808 bytes .../sources/locale/id/LC_MESSAGES/django.po | 239 +- .../sources/locale/it/LC_MESSAGES/django.mo | Bin 9560 -> 9453 bytes .../sources/locale/it/LC_MESSAGES/django.po | 283 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 3997 -> 3968 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 247 +- .../sources/locale/pl/LC_MESSAGES/django.mo | Bin 1855 -> 1913 bytes .../sources/locale/pl/LC_MESSAGES/django.po | 241 +- .../sources/locale/pt/LC_MESSAGES/django.mo | Bin 2494 -> 2494 bytes .../sources/locale/pt/LC_MESSAGES/django.po | 239 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 9719 -> 9604 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 281 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 2557 -> 2557 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 242 +- .../sources/locale/ru/LC_MESSAGES/django.mo | Bin 7565 -> 7570 bytes .../sources/locale/ru/LC_MESSAGES/django.po | 253 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 690 -> 690 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 238 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 1632 -> 1632 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 235 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2107 -> 2107 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 235 +- mayan/apps/sources/models.py | 42 + mayan/apps/sources/urls.py | 10 +- mayan/apps/sources/views.py | 50 +- mayan/apps/statistics/apps.py | 2 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 589 -> 589 bytes .../locale/ar/LC_MESSAGES/django.po | 14 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 513 -> 513 bytes .../locale/bg/LC_MESSAGES/django.po | 11 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 606 -> 606 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 14 +- .../locale/da/LC_MESSAGES/django.mo | Bin 499 -> 499 bytes .../locale/da/LC_MESSAGES/django.po | 11 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 1503 -> 1503 bytes .../locale/de_DE/LC_MESSAGES/django.po | 11 +- .../locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../locale/en/LC_MESSAGES/django.po | 4 +- .../locale/es/LC_MESSAGES/django.mo | Bin 1544 -> 1544 bytes .../locale/es/LC_MESSAGES/django.po | 11 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 842 -> 842 bytes .../locale/fa/LC_MESSAGES/django.po | 11 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 1608 -> 1608 bytes .../locale/fr/LC_MESSAGES/django.po | 11 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 504 -> 504 bytes .../locale/hu/LC_MESSAGES/django.po | 11 +- .../locale/id/LC_MESSAGES/django.mo | Bin 546 -> 546 bytes .../locale/id/LC_MESSAGES/django.po | 11 +- .../locale/it/LC_MESSAGES/django.mo | Bin 1542 -> 1542 bytes .../locale/it/LC_MESSAGES/django.po | 11 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 1047 -> 1047 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 11 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 1583 -> 1583 bytes .../locale/pl/LC_MESSAGES/django.po | 14 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 1102 -> 1102 bytes .../locale/pt/LC_MESSAGES/django.po | 11 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 1576 -> 1576 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 11 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 838 -> 838 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 14 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 1397 -> 1397 bytes .../locale/ru/LC_MESSAGES/django.po | 15 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 526 -> 526 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 14 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 515 -> 515 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 11 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 504 -> 504 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 11 +- .../storage/locale/ar/LC_MESSAGES/django.mo | Bin 547 -> 547 bytes .../storage/locale/ar/LC_MESSAGES/django.po | 12 +- .../storage/locale/bg/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../storage/locale/bg/LC_MESSAGES/django.po | 9 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 570 -> 570 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 12 +- .../storage/locale/da/LC_MESSAGES/django.mo | Bin 464 -> 464 bytes .../storage/locale/da/LC_MESSAGES/django.po | 9 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 534 -> 534 bytes .../locale/de_DE/LC_MESSAGES/django.po | 9 +- .../storage/locale/en/LC_MESSAGES/django.mo | Bin 378 -> 378 bytes .../storage/locale/en/LC_MESSAGES/django.po | 2 +- .../storage/locale/es/LC_MESSAGES/django.mo | Bin 502 -> 502 bytes .../storage/locale/es/LC_MESSAGES/django.po | 9 +- .../storage/locale/fa/LC_MESSAGES/django.mo | Bin 458 -> 458 bytes .../storage/locale/fa/LC_MESSAGES/django.po | 9 +- .../storage/locale/fr/LC_MESSAGES/django.mo | Bin 528 -> 528 bytes .../storage/locale/fr/LC_MESSAGES/django.po | 9 +- .../storage/locale/hu/LC_MESSAGES/django.mo | Bin 467 -> 467 bytes .../storage/locale/hu/LC_MESSAGES/django.po | 9 +- .../storage/locale/id/LC_MESSAGES/django.mo | Bin 461 -> 461 bytes .../storage/locale/id/LC_MESSAGES/django.po | 9 +- .../storage/locale/it/LC_MESSAGES/django.mo | Bin 526 -> 526 bytes .../storage/locale/it/LC_MESSAGES/django.po | 9 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 541 -> 541 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 9 +- .../storage/locale/pl/LC_MESSAGES/django.mo | Bin 585 -> 585 bytes .../storage/locale/pl/LC_MESSAGES/django.po | 12 +- .../storage/locale/pt/LC_MESSAGES/django.mo | Bin 546 -> 546 bytes .../storage/locale/pt/LC_MESSAGES/django.po | 9 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 544 -> 544 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 9 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 570 -> 570 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 12 +- .../storage/locale/ru/LC_MESSAGES/django.mo | Bin 639 -> 639 bytes .../storage/locale/ru/LC_MESSAGES/django.po | 13 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 536 -> 536 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 12 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 478 -> 478 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 9 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 472 -> 472 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 9 +- mayan/apps/tags/api_views.py | 101 +- mayan/apps/tags/apps.py | 2 +- .../apps/tags/locale/ar/LC_MESSAGES/django.mo | Bin 2952 -> 2237 bytes .../apps/tags/locale/ar/LC_MESSAGES/django.po | 258 +- .../apps/tags/locale/bg/LC_MESSAGES/django.mo | Bin 1763 -> 1558 bytes .../apps/tags/locale/bg/LC_MESSAGES/django.po | 238 +- .../tags/locale/bs_BA/LC_MESSAGES/django.mo | Bin 2343 -> 1809 bytes .../tags/locale/bs_BA/LC_MESSAGES/django.po | 249 +- .../apps/tags/locale/da/LC_MESSAGES/django.mo | Bin 2159 -> 1591 bytes .../apps/tags/locale/da/LC_MESSAGES/django.po | 238 +- .../tags/locale/de_DE/LC_MESSAGES/django.mo | Bin 4022 -> 3341 bytes .../tags/locale/de_DE/LC_MESSAGES/django.po | 255 +- .../apps/tags/locale/en/LC_MESSAGES/django.mo | Bin 2129 -> 1565 bytes .../apps/tags/locale/en/LC_MESSAGES/django.po | 275 +- .../apps/tags/locale/es/LC_MESSAGES/django.mo | Bin 4091 -> 4864 bytes .../apps/tags/locale/es/LC_MESSAGES/django.po | 261 +- .../apps/tags/locale/fa/LC_MESSAGES/django.mo | Bin 3274 -> 2472 bytes .../apps/tags/locale/fa/LC_MESSAGES/django.po | 236 +- .../apps/tags/locale/fr/LC_MESSAGES/django.mo | Bin 4329 -> 2837 bytes .../apps/tags/locale/fr/LC_MESSAGES/django.po | 260 +- .../apps/tags/locale/hu/LC_MESSAGES/django.mo | Bin 624 -> 534 bytes .../apps/tags/locale/hu/LC_MESSAGES/django.po | 232 +- .../apps/tags/locale/id/LC_MESSAGES/django.mo | Bin 587 -> 522 bytes .../apps/tags/locale/id/LC_MESSAGES/django.po | 228 +- .../apps/tags/locale/it/LC_MESSAGES/django.mo | Bin 4101 -> 2723 bytes .../apps/tags/locale/it/LC_MESSAGES/django.po | 259 +- .../tags/locale/nl_NL/LC_MESSAGES/django.mo | Bin 3035 -> 2374 bytes .../tags/locale/nl_NL/LC_MESSAGES/django.po | 243 +- .../apps/tags/locale/pl/LC_MESSAGES/django.mo | Bin 3022 -> 2340 bytes .../apps/tags/locale/pl/LC_MESSAGES/django.po | 252 +- .../apps/tags/locale/pt/LC_MESSAGES/django.mo | Bin 1532 -> 1362 bytes .../apps/tags/locale/pt/LC_MESSAGES/django.po | 238 +- .../tags/locale/pt_BR/LC_MESSAGES/django.mo | Bin 4106 -> 4934 bytes .../tags/locale/pt_BR/LC_MESSAGES/django.po | 264 +- .../tags/locale/ro_RO/LC_MESSAGES/django.mo | Bin 2916 -> 2263 bytes .../tags/locale/ro_RO/LC_MESSAGES/django.po | 258 +- .../apps/tags/locale/ru/LC_MESSAGES/django.mo | Bin 4968 -> 3238 bytes .../apps/tags/locale/ru/LC_MESSAGES/django.po | 264 +- .../tags/locale/sl_SI/LC_MESSAGES/django.mo | Bin 891 -> 803 bytes .../tags/locale/sl_SI/LC_MESSAGES/django.po | 247 +- .../tags/locale/vi_VN/LC_MESSAGES/django.mo | Bin 2306 -> 1722 bytes .../tags/locale/vi_VN/LC_MESSAGES/django.po | 232 +- .../tags/locale/zh_CN/LC_MESSAGES/django.mo | Bin 2096 -> 1591 bytes .../tags/locale/zh_CN/LC_MESSAGES/django.po | 232 +- mayan/apps/tags/serializers.py | 90 +- mayan/apps/tags/tests/test_api.py | 142 +- mayan/apps/tags/urls.py | 8 +- mayan/apps/tags/views.py | 2 +- mayan/apps/user_management/apps.py | 2 +- .../locale/ar/LC_MESSAGES/django.mo | Bin 3112 -> 2713 bytes .../locale/ar/LC_MESSAGES/django.po | 199 +- .../locale/bg/LC_MESSAGES/django.mo | Bin 3579 -> 3155 bytes .../locale/bg/LC_MESSAGES/django.po | 188 +- .../locale/bs_BA/LC_MESSAGES/django.mo | Bin 2765 -> 2444 bytes .../locale/bs_BA/LC_MESSAGES/django.po | 193 +- .../locale/da/LC_MESSAGES/django.mo | Bin 2487 -> 2128 bytes .../locale/da/LC_MESSAGES/django.po | 188 +- .../locale/de_DE/LC_MESSAGES/django.mo | Bin 3851 -> 3352 bytes .../locale/de_DE/LC_MESSAGES/django.po | 199 +- .../locale/en/LC_MESSAGES/django.mo | Bin 2387 -> 2055 bytes .../locale/en/LC_MESSAGES/django.po | 181 +- .../locale/es/LC_MESSAGES/django.mo | Bin 3925 -> 4642 bytes .../locale/es/LC_MESSAGES/django.po | 199 +- .../locale/fa/LC_MESSAGES/django.mo | Bin 3524 -> 3068 bytes .../locale/fa/LC_MESSAGES/django.po | 180 +- .../locale/fr/LC_MESSAGES/django.mo | Bin 4254 -> 3605 bytes .../locale/fr/LC_MESSAGES/django.po | 202 +- .../locale/hu/LC_MESSAGES/django.mo | Bin 457 -> 457 bytes .../locale/hu/LC_MESSAGES/django.po | 174 +- .../locale/id/LC_MESSAGES/django.mo | Bin 487 -> 487 bytes .../locale/id/LC_MESSAGES/django.po | 172 +- .../locale/it/LC_MESSAGES/django.mo | Bin 3889 -> 3337 bytes .../locale/it/LC_MESSAGES/django.po | 198 +- .../locale/nl_NL/LC_MESSAGES/django.mo | Bin 3993 -> 3407 bytes .../locale/nl_NL/LC_MESSAGES/django.po | 198 +- .../locale/pl/LC_MESSAGES/django.mo | Bin 3989 -> 3508 bytes .../locale/pl/LC_MESSAGES/django.po | 202 +- .../locale/pt/LC_MESSAGES/django.mo | Bin 3751 -> 3213 bytes .../locale/pt/LC_MESSAGES/django.po | 192 +- .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 3879 -> 3331 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 194 +- .../locale/ro_RO/LC_MESSAGES/django.mo | Bin 3690 -> 3219 bytes .../locale/ro_RO/LC_MESSAGES/django.po | 197 +- .../locale/ru/LC_MESSAGES/django.mo | Bin 5069 -> 4406 bytes .../locale/ru/LC_MESSAGES/django.po | 202 +- .../locale/sl_SI/LC_MESSAGES/django.mo | Bin 598 -> 598 bytes .../locale/sl_SI/LC_MESSAGES/django.po | 181 +- .../locale/vi_VN/LC_MESSAGES/django.mo | Bin 2514 -> 2149 bytes .../locale/vi_VN/LC_MESSAGES/django.po | 186 +- .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 2391 -> 2087 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 178 +- mayan/apps/user_management/tests/test_api.py | 19 +- mayan/celery.py | 5 +- mayan/conf.py | 18 + mayan/runtime.py | 5 + mayan/settings/base.py | 8 +- mayan/settings/production.py | 10 +- mayan/settings/testing/base.py | 1 - mayan/settings/testing/db_mysql.py | 13 + mayan/settings/testing/docker.py | 16 + requirements/base.txt | 9 +- requirements/build.txt | 4 + requirements/common.txt | 2 +- requirements/development.txt | 4 +- requirements/documentation.txt | 2 +- setup.py | 47 +- tox.ini | 2 +- 1709 files changed, 94590 insertions(+), 36499 deletions(-) create mode 100644 DCO create mode 100644 README.md create mode 100644 docs/releases/2.1.10.rst create mode 100644 docs/releases/2.1.11.rst create mode 100644 docs/releases/2.1.8.rst create mode 100644 docs/releases/2.1.9.rst create mode 100644 docs/releases/2.3.rst create mode 100644 mayan/apps/acls/api_views.py create mode 100644 mayan/apps/acls/serializers.py create mode 100644 mayan/apps/acls/tests/test_api.py delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/cerulean/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less delete mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/css/font-awesome.css (74%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.svg rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/fonts/fontawesome-webfont.ttf (50%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/animated.less (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/bordered-pulled.less (56%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/core.less (66%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/fixed-width.less (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/font-awesome.less (81%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/icons.less (74%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/larger.less (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/list.less (100%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/path.less (87%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/rotated-flipped.less (100%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/stacked.less (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/less/variables.less (73%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_animated.scss (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_bordered-pulled.scss (56%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_core.scss (66%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_fixed-width.scss (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_icons.scss (74%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_larger.scss (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_list.scss (100%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_path.scss (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_rotated-flipped.scss (100%) create mode 100644 mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_stacked.scss (100%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/_variables.scss (73%) rename mayan/apps/appearance/static/appearance/packages/{font-awesome-4.3.0 => font-awesome-4.7.0}/scss/font-awesome.scss (79%) create mode 100644 mayan/apps/cabinets/__init__.py create mode 100644 mayan/apps/cabinets/admin.py create mode 100644 mayan/apps/cabinets/api_views.py create mode 100644 mayan/apps/cabinets/apps.py create mode 100644 mayan/apps/cabinets/forms.py create mode 100644 mayan/apps/cabinets/links.py create mode 100644 mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/bs_BA/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/bs_BA/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/da/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/da/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/de_DE/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/de_DE/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/en/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/es/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/es/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/fa/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/fa/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/fr/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/fr/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/id/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/id/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/it/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/it/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/ro_RO/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/ro_RO/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/ru/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/ru/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/vi_VN/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/vi_VN/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.mo create mode 100644 mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.po create mode 100644 mayan/apps/cabinets/menus.py create mode 100644 mayan/apps/cabinets/migrations/0001_initial.py create mode 100644 mayan/apps/cabinets/migrations/__init__.py create mode 100644 mayan/apps/cabinets/models.py create mode 100644 mayan/apps/cabinets/permissions.py create mode 100644 mayan/apps/cabinets/serializers.py create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/.gitignore create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/LICENSE-MIT create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/README.md create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/bower.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/component.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/composer.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/index.html create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/root.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/data/.htaccess create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/file_sprite.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/index.php create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.db.php create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.tree.php create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/data.sql create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/index.php create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/gruntfile.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/package.json create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/40px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png create mode 100644 mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png create mode 100644 mayan/apps/cabinets/templates/cabinets/cabinet_details.html create mode 100644 mayan/apps/cabinets/tests/__init__.py create mode 100644 mayan/apps/cabinets/tests/literals.py create mode 100644 mayan/apps/cabinets/tests/test_api.py create mode 100644 mayan/apps/cabinets/tests/test_models.py create mode 100644 mayan/apps/cabinets/tests/test_views.py create mode 100644 mayan/apps/cabinets/urls.py create mode 100644 mayan/apps/cabinets/views.py create mode 100644 mayan/apps/cabinets/widgets.py create mode 100644 mayan/apps/common/exceptions.py delete mode 100644 mayan/apps/common/management/commands/runtests.py create mode 100644 mayan/apps/common/tests/runner.py create mode 100644 mayan/apps/common/validators.py create mode 100644 mayan/apps/django_gpg/api_views.py create mode 100644 mayan/apps/django_gpg/serializers.py create mode 100644 mayan/apps/django_gpg/tests/test_api.py create mode 100644 mayan/apps/document_comments/api_views.py create mode 100644 mayan/apps/document_comments/serializers.py create mode 100644 mayan/apps/document_comments/tests/__init__.py create mode 100644 mayan/apps/document_comments/tests/literals.py create mode 100644 mayan/apps/document_comments/tests/test_api.py create mode 100644 mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py create mode 100644 mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py create mode 100644 mayan/apps/document_states/api_views.py create mode 100644 mayan/apps/document_states/classes.py create mode 100644 mayan/apps/document_states/migrations/0003_auto_20170325_0447.py create mode 100644 mayan/apps/document_states/migrations/0004_workflow_internal_name.py create mode 100644 mayan/apps/document_states/serializers.py create mode 100644 mayan/apps/document_states/tasks.py create mode 100644 mayan/apps/document_states/tests/test_api.py create mode 100644 mayan/apps/document_states/tests/test_models.py create mode 100644 mayan/apps/documents/tests/test_widgets.py create mode 100644 mayan/apps/dynamic_search/serializers.py create mode 100644 mayan/apps/linking/api_views.py create mode 100644 mayan/apps/linking/managers.py create mode 100644 mayan/apps/linking/serializers.py create mode 100644 mayan/apps/linking/tests/test_api.py create mode 100644 mayan/apps/metadata/static/metadata/js/metadata_form.js create mode 100644 mayan/apps/motd/api_views.py create mode 100644 mayan/apps/motd/serializers.py create mode 100644 mayan/apps/motd/tests/literals.py create mode 100644 mayan/apps/motd/tests/test_api.py create mode 100644 mayan/apps/rest_api/tests/__init__.py create mode 100644 mayan/apps/rest_api/tests/base.py create mode 100644 mayan/conf.py create mode 100644 mayan/runtime.py create mode 100644 mayan/settings/testing/db_mysql.py create mode 100644 mayan/settings/testing/docker.py create mode 100644 requirements/build.txt diff --git a/.gitignore b/.gitignore index f049c86ec2..d786d1c049 100644 --- a/.gitignore +++ b/.gitignore @@ -3,26 +3,27 @@ *.pyo *.sqlite *.sqlite3 -settings_local.py -/celerybeat-schedule -document_storage/ -/misc/mayan.geany -mayan/media/document_cache/ -build/ -_build/ -gpg_home/ -/mayan/media/static/ -/whoosh_index/ -/fabfile_install -/venv/ -.coverage -/dist/ -.idea/ -static_collected/ *egg-info* -mayan/settings/local.py -.vagrant -.tox/ -coverage.xml +.coverage .coverage.tox* +.idea/ +.tox/ +.vagrant +_build/ +build/ +coverage.xml +document_storage/ +gpg_home/ htmlcov/ +mayan/media/ +mayan/media/document_cache/ +mayan/settings/local.py +settings_local.py +static_collected/ +/celerybeat-schedule +/fabfile_install +/dist/ +/misc/mayan.geany +/mayan/media/static/ +/venv/ +/whoosh_index/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9c0de6789..94741880ab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ test:mysql: - pip install mysql-python - apt-get install -qq mysql-client - mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD" -e "set global character_set_server=utf8mb4;" - - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations + - coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_mysql --nomigrations - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN tags: - mysql @@ -30,12 +30,12 @@ test:postgres: - apt-get install -qq libpq-dev - pip install -r requirements/testing.txt - pip install psycopg2 - - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations + - coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci.db_postgres --nomigrations - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN tags: - postgres test:sqlite: script: - pip install -r requirements/testing.txt - - coverage run manage.py runtests --settings=mayan.settings.testing.gitlab-ci --nomigrations + - coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN diff --git a/.travis.yml b/.travis.yml index fbe358ff14..7eeca9378e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ +dist: trusty +sudo: required language: python python: - 2.7 @@ -8,7 +10,7 @@ env: - DB=sqlite before_install: - sudo apt-get update -qq - - sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice + - sudo apt-get install -qq python-dev python-pip gcc tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice install: - "pip install -r requirements/testing.txt" - if [[ $DB == mysql ]]; then pip install -q mysql-python; fi @@ -17,9 +19,9 @@ before_script: - mysql -e 'create database mayan_edms;' - psql -c 'create database mayan_edms;' -U postgres script: - - if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi - - if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi - - if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi + - if [[ $DB == mysql ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi + - if [[ $DB == postgres ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi + - if [[ $DB == sqlite ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.base --nomigrations; fi after_success: - coveralls branches: diff --git a/.tx/config b/.tx/config index 0f019a35cc..b210567710 100644 --- a/.tx/config +++ b/.tx/config @@ -19,6 +19,12 @@ source_lang = en source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po type = PO +[mayan-edms.cabinets-2-0] +file_filter = mayan/apps/cabinets/locale//LC_MESSAGES/django.po +source_lang = en +source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po +type = PO + [mayan-edms.checkouts-2-0] file_filter = mayan/apps/checkouts/locale//LC_MESSAGES/django.po source_lang = en @@ -91,12 +97,6 @@ source_lang = en source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.installation-2-0] -file_filter = mayan/apps/installation/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.linking-2-0] file_filter = mayan/apps/linking/locale//LC_MESSAGES/django.po source_lang = en @@ -127,12 +127,6 @@ source_lang = en source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.mirroring-2-0] -file_filter = mayan/apps/mirroring/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.motd-2-0] file_filter = mayan/apps/motd/locale//LC_MESSAGES/django.po source_lang = en diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e114863e9..ce1fd62061 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ same properties that can trigger the issue and upload that file instead. - Add steps that trigger the issue in a **repeatable manner**. - **Screenshots** go a long way in helping understand problems. - The issue must be related to the code only, do not open issues for problems -with webservers, cloud providers, etc. +with deployments, webservers, cloud providers, etc. - Do not open issues asking for **support or consulting**. Code @@ -40,7 +40,19 @@ following branches: are unstable and should not be used in production. 1. Start making your changes in your own separate branch. -1. Write a test which shows that the bug was fixed or that the feature works as expected. +1. Write a test which shows that the bug was fixed or that the feature works as + expected. +1. Sign your work. Your signature certifies your submission according to the + articles of the [Developer Certificate of Origin](https://gitlab.com/mayan-edms/mayan-edms/blob/master/DCO). + The sign-off should be in the form: + + ```` + Signed-off-by: John Doe + ```` + + You must use your real name and email, pseudonyms or anonymous contributions + are not allowed. If you set your user.name and user.email git configs, you can + sign your commit automatically with git commit -s. 1. Submit a merge request for your changes. Feature requests @@ -64,8 +76,3 @@ Code style ---------- - Refer to the [Development](http://mayan.readthedocs.io/en/latest/topics/development.html) chapter for information and examples of the code style. - -License -------- -By contributing your code, you agree to license your contribution under the -terms of the project's license. diff --git a/DCO b/DCO new file mode 100644 index 0000000000..716561d5d2 --- /dev/null +++ b/DCO @@ -0,0 +1,36 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/HISTORY.rst b/HISTORY.rst index 6eba4f722d..17d8cb091c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,4 +1,25 @@ -2.2 (2016-XX-XX) +XX (2017-XX-XX) +=============== +- Add Django-mathfilters. +- Improve render of documents with no pages. + +2.3 (2017-06-08) +================ +- Allow for bigger indexing expression templates. +- Auto select checkbox when updating metadata values. GitLab issue #371. +- Added support for passing the options allow-other and allow-root to the + FUSE index mirror. GitLab issue #385 +- Add support for check for the latest released version of Mayan from the + About menu. +- Support for rebuilding specific indexes. GitLab issue #372. +- Rewrite document indexing code to be faster and use less locking. +- Use a predefined file path for the file lock. +- Catch documents with not document version when displaying their thumbnails. +- Document page navigation fix when using Mayan as a sub URL app. +- Add support for indexing on workflow state changes. +- Add search model list API endpoint. + +2.2 (2017-04-26) ================ - Remove the installation app (GitLab #301). - Add support for document page search @@ -8,13 +29,54 @@ - Improve upgrade instructions - New image caching pipeline - New drop down menus for the documents, folders and tags app as well as for -the user links + the user links. - New Dashboard view - Moved licenses to their own module in every app - Update project to work with Django 1.10.4. - Tags are alphabetically ordered by label (GitLab #342). - Stop loading theme fonts from the web (GitLab #343). - Add support for attaching multiple tags (GitLab #307). +- Integrate the Cabinets app. + +2.1.11 (2017-03-14) +=================== +- Added a quick rename serializer to the document type API serializer. +- Added per document type, workflow list API view. +- Mayan EDMS was adopted a version 1.1 of the Linux Foundation Developer Certificate of Origin. +- Added the detail url of a permission in the permission serializer. +- Added endpoints for the ACL app API. +- Implemented document workflows transition ACLs. GitLab issue #321. +- Add document comments API endpoints. GitHub issue #249. +- Add support for overriding the Celery class. +- Changed the document upload view in source app to not use the HTTP referer + URL blindly, but instead recompose the URL using known view name. Needed + when integrating Mayan EDMS into other app via using iframes. +- Addes size field to the document version serializer. +- Removed the serializer from the deleted document restore API endpoint. +- Added support for adding or editing document types to smart links via the + API. + +2.1.10 (2017-02-13) +=================== +- Update Makefile to use twine for releases. +- Add Makefile target to make test releases. + +2.1.9 (2017-02-13) +================== +- Update make file to Workaround long standing pypa wheel bug #99 + +2.1.8 (2017-02-12) +================== +- Fixes in the trashed document API endpoints. +- Improved tags API PUT and PATCH endpoints. +- Bulk document adding when creating and editing tags. +- The version of django-mptt is preserved in case mayan-cabinets is installed. +- Add Django GPG API endpoints for singing keys. +- Add API endpoints for the document states (workflows) app. +- Add API endpoints for the messsage of the day (MOTD) app. +- Add Smart link API endpoints. +- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349). +- Close GitLab issue #310 "Metadata's lookup with chinese messages when new document" 2.1.7 (2017-02-01) ================== @@ -26,7 +88,7 @@ the user links - Enable the parser and validation fields of the metadata serializer. 2.1.6 (2016-11-23) -================= +================== - Fix variable name typo in the rotation transformation class. - Update translations diff --git a/MANIFEST.in b/MANIFEST.in index 4c59f9ed98..4d82143547 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,3 @@ -include README.rst LICENSE HISTORY.rst -recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE +include README.md LICENSE HISTORY.rst mayan/LICENSE +recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/* diff --git a/Makefile b/Makefile index 5a0fa048d2..cabdbcd49b 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,8 @@ help: @echo "clean-pyc - Remove Python artifacts." @echo "clean - Remove Python and build artifacts." - @echo "test MODULE= - Run tests for a single App, module or test class." @echo "test-all - Run all tests." + @echo "test MODULE= - Run tests for a single App, module or test class." @echo "docs_serve - Run the livehtml documentation generator." @echo "translations_make - Refresh all translation files." @@ -23,11 +23,23 @@ help: @echo "sdist - Build the source distribution package." @echo "wheel - Build the wheel distribution package." @echo "release - Package (sdist and wheel) and upload a release." + @echo "test_release - Package (sdist and wheel) and upload to the PyPI test server." + @echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder." + @echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder." + @echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder." + @echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder." @echo "runserver - Run the development server." @echo "runserver_plus - Run the Django extension's development server." @echo "shell_plus - Run the shell_plus command." + @echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)." + @echo "docker_services_off - Stop and delete the Docker production-like services." + @echo "docker_services_frontend - Launch a front end instance that uses the production-like services." + @echo "docker_services_worker - Launch a worker instance that uses the production-like services." + @echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container." + @echo "docker_service_mysql_off - Stop and delete the MySQL Docker container." + @echo "safety_check - Run a package safety check." @@ -52,7 +64,7 @@ test: ./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations test-all: - ./manage.py runtests --settings=mayan.settings.testing --nomigrations + ./manage.py test --mayan-apps --settings=mayan.settings.testing --nomigrations # Documentation @@ -90,17 +102,33 @@ requirements_testing: # Releases -release: clean - python setup.py sdist bdist_wheel upload + +test_release: clean wheel + twine upload dist/* -r testpypi + @echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms" + +release: clean wheel + twine upload dist/* -r pypi sdist: clean python setup.py sdist ls -l dist -wheel: clean - python setup.py bdist_wheel +wheel: clean sdist + pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz ls -l dist +release_test_via_docker_ubuntu: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release" + +release_via_docker_ubuntu: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release" + +release_test_via_docker_alpine: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release" + +release_via_docker_alpine: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release" # Dev server @@ -113,9 +141,33 @@ runserver_plus: shell_plus: ./manage.py shell_plus --settings=mayan.settings.development +docker_services_on: + docker run -d --name redis -p 6379:6379 redis + docker run -d --name postgres -p 5432:5432 postgres + while ! nc -z 127.0.0.1 6379; do sleep 1; done + while ! nc -z 127.0.0.1 5432; do sleep 1; done + sleep 1 + ./manage.py initialsetup --settings=mayan.settings.testing.docker + +docker_services_off: + docker stop postgres redis + docker rm postgres redis + +docker_services_frontend: + ./manage.py runserver --settings=mayan.settings.testing.docker + +docker_services_worker: + ./manage.py celery worker --settings=mayan.settings.testing.docker -B -l INFO -O fair + +docker_service_mysql_on: + docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql + while ! nc -z 127.0.0.1 3306; do sleep 1; done + +docker_service_mysql_off: + docker stop mysql + docker rm mysql # Security safety_check: safety check - diff --git a/README.md b/README.md new file mode 100644 index 0000000000..11072c1fe9 --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +[![pypi][pypi]][pypi-url] +[![builds][builds]][builds-url] +[![coverage][cover]][cover-url] +![python][python] +![license][license] + +[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg +[pypi-url]: http://badge.fury.io/py/mayan-edms + +[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg +[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines + +[cover]: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master +[cover-url]: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master + +[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg +[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat + +[license]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat +[license-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat + + +
+ + + +
+
+

+ Mayan EDMS is a document management system. Its main purpose is to store, + introspect, and categorize files, with a strong emphasis on preserving the + contextual and business information of documents. It can also OCR, preview, + label, sign, send, and receive thoses files. Other features of interest + are its workflow system, role based access control, and REST API. +

+ +

+ +

+ +
+ +

Installation

+ +The easiest way to use Mayan EDMS is by using the official +[Docker](https://www.docker.com/) image. Make sure Docker is properly installed +and working before attempting to install Mayan EDMS. + +With Docker properly installed, proceed to download the Mayan EDMS image using +the command: + +```bash + $ docker pull mayanedms/mayanedms:2.3 +``` + +After the image finishes downloading, initialize a Mayan EDMS container. + +```bash + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 +``` + +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. + +All files will be stored in the Docker volume ``mayan_data`` + +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. + +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ + +

Important links

+ + +- [Homepage](http://www.mayan-edms.com) +- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw) +- [Documentation](http://mayan.readthedocs.io/en/stable/) +- [Paid support](http://www.mayan-edms.com/providers/) +- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap) +- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md) +- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms) +- [Community forum archive](http://mayan-edms.1003.x6.nabble.com/) +- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms) +- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/) +- [Translations](https://www.transifex.com/rosarior/mayan-edms/) + diff --git a/README.rst b/README.rst index 67acd269bb..19d15170ca 100644 --- a/README.rst +++ b/README.rst @@ -1,65 +1,75 @@ -|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version| +|pypi| |builds| |coverage| |python| |license| -|Logo| -Description ------------ +.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png + :align: center + :width: 200 + :height: 200 -Free Open Source Electronic Document Management System. +Mayan EDMS is a document management system. Its main purpose is to store, +introspect, and categorize files, with a strong emphasis on preserving the +contextual and business information of documents. It can also OCR, preview, +label, sign, send, and receive thoses files. Other features of interest +are its workflow system, role based access control, and REST API. -`Website`_ +.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif + :align: center -`Video demostration`_ -`Documentation`_ +The easiest way to use Mayan EDMS is by using the official Docker_ image. +Make sure Docker is properly installed and working before attempting to install +Mayan EDMS. -`Translations`_ - -`Mailing list (via Google Groups)`_ - -|Animation| - -License -------- - -This project is open sourced under `Apache 2.0 License`_. - -Installation ------------- - -To install Mayan EDMS, simply do: +With Docker properly installed, proceed to download the Mayan EDMS image using +the command: .. code-block:: bash - $ virtualenv venv - $ source venv/bin/activate - (venv) $ pip install mayan-edms - (venv) $ mayan-edms.py initialsetup - (venv) $ mayan-edms.py runserver + $ docker pull mayanedms/mayanedms:2.3 -Point your browser to 127.0.0.1:8000 and use the automatically created admin -account. +After the image finishes downloading, initialize a Mayan EDMS container. + +.. code-block:: bash + + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 + +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. + +All files will be stored in the Docker volume ``mayan_data`` + +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. + +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ + +.. _Docker: https://www.docker.com/ -.. _Website: http://www.mayan-edms.com -.. _Video demostration: http://bit.ly/pADNXv -.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/ -.. _Translations: https://www.transifex.com/projects/p/mayan-edms/ -.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms -.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt +Important links -.. |Build Status| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg - :target: https://gitlab.com/mayan-edms/mayan-edms/commits/master -.. |Logo| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png -.. |Animation| image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif -.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat +- `Homepage `__ +- `Videos `__ +- `Documentation `__ +- `Paid support `__ +- `Roadmap `__ +- `Contributing `__ +- `Community forum `__ +- `Community forum archive `__ +- `Source code, issues, bugs `__ +- `Plug-ins, other related projects `__ +- `Translations `__ + + + +.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg :target: http://badge.fury.io/py/mayan-edms -.. |License badge| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat -.. |Analytics| image:: https://ga-beacon.appspot.com/UA-52965619-2/mayan-edms/readme?pixel -.. |Coverage badge| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master +.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg + :target: https://gitlab.com/mayan-edms/mayan-edms/pipelines +.. |coverage| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master :target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master -.. |Documentation| image:: https://readthedocs.org/projects/mayan/badge/?version=latest - :target: http://mayan.readthedocs.io/en/latest -.. |Python version| images:: https://img.shields.io/pypi/pyversions/mayan-edms.svg - -|Analytics| +.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg +.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat diff --git a/contrib/scripts/process_messages.py b/contrib/scripts/process_messages.py index 09dd8d56fd..7f1874540e 100755 --- a/contrib/scripts/process_messages.py +++ b/contrib/scripts/process_messages.py @@ -5,10 +5,10 @@ import optparse import sh APP_LIST = ( - 'acls', 'appearance', 'authentication', 'checkouts', 'common', + 'acls', 'appearance', 'authentication', 'cabinets', 'checkouts', 'common', 'converter', 'django_gpg', 'document_comments', 'document_indexing', 'document_signatures', 'document_states', 'documents', 'dynamic_search', - 'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer', + 'events', 'folders', 'linking', 'lock_manager', 'mailer', 'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions', 'rest_api', 'smart_settings', 'sources', 'statistics', 'storage', 'tags', 'user_management' diff --git a/docs/releases/2.1.10.rst b/docs/releases/2.1.10.rst new file mode 100644 index 0000000000..66f9252867 --- /dev/null +++ b/docs/releases/2.1.10.rst @@ -0,0 +1,75 @@ +================================ +Mayan EDMS v2.1.10 release notes +================================ + +Released: February 13, 2017 + +What's new +========== + +This is a micro release equal to the previews version from the user's point of view. +The version number was increase to workaround some issues with the Python +Package Index not allowing re-uploads. + +Changes +------------- + +- Update Makefile to use twine for releases. +- Add Makefile target to make test releases. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* None + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.11.rst b/docs/releases/2.1.11.rst new file mode 100644 index 0000000000..06415422c8 --- /dev/null +++ b/docs/releases/2.1.11.rst @@ -0,0 +1,94 @@ +================================ +Mayan EDMS v2.1.11 release notes +================================ + +Released: March 14, 2017 + +What's new +========== + +This is a bug-fix release and all users are encouraged to upgrade. The focus +of this micro release was REST API improvement. + +Changes +------------- + +- Added a quick rename serializer to the document type API serializer. +- Added per document type, workflow list API view. The URL for this endpoint is + GET /api/document_states/document_type/{pk}/workflows/ +- Added Developer Certificate of Origin. Mayan EDMS was adopted a version 1.1 of + the Linux Foundation Developer Certificate of Origin. All commits must be + signed (`git commit -s`) in order to be merged. +- Added the detail url of a permission in the permission serializer. +- Added endpoints for the ACL app API. +- Implemented document workflows transition ACLs. GitLab issue #321. +- Add document comments API endpoints. GitHub issue #249. +- Add support for overriding the Celery class. The setting is named + MAYAN_CELERY_CLASS and expects a dotted python path to the class to use. +- Changed the document upload view in source app to not use the HTTP referer + URL blindly, but instead recompose the URL using known view name. Needed + when integrating Mayan EDMS into other app via using iframes. +- Addes size field to the document version serializer. +- Removed the serializer from the deleted document restore API endpoint + it doesn't need a serializer being just an action POST endpoint. +- Added support for adding or editing document types to smart links via the + API. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `Github issue #249 `_ Add document comments API [$50 US] +* `GitLab issue #321 `_ Transition ACLS +* `GitLab issue #357 `_ It should be possible to retrieve all workflows for a given DocumentType from the API + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.8.rst b/docs/releases/2.1.8.rst new file mode 100644 index 0000000000..ebe1ae8596 --- /dev/null +++ b/docs/releases/2.1.8.rst @@ -0,0 +1,83 @@ +=============================== +Mayan EDMS v2.1.8 release notes +=============================== + +Released: February 12, 2017 + +What's new +========== + +This is a bug-fix release and all users are encouraged to upgrade. The focus +of this micro release was REST API improvement. + +Changes +------------- + +- Fixes in the trashed document API endpoints. +- Improved tags API PUT and PATCH endpoints. +- Bulk document adding when creating and editing tags. +- The version of django-mptt is preserved in case mayan-cabinets is installed. +- Add Django GPG API endpoints for singing keys. +- Add API endpoints for the document states app. +- Add API endpoints for the messsage of the day (MOTD) app. +- Add Smart link API endpoints. +- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349). + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `GitLab issue #310 `_ Metadata's lookup with chinese messages when new document +* `GitLab issue #348 `_ REST API: Document version comments are not getting updated +* `GitLab issue #349 `_ REST API: Document Label, Description are not able to update + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.9.rst b/docs/releases/2.1.9.rst new file mode 100644 index 0000000000..f9c3333e86 --- /dev/null +++ b/docs/releases/2.1.9.rst @@ -0,0 +1,74 @@ +=============================== +Mayan EDMS v2.1.9 release notes +=============================== + +Released: February 13, 2017 + +What's new +========== + +This is a micro release equal to the previews version from the user's point of view. +The version number was increase to workaround some issues with the Python +Package Index not allowing re-uploads. + +Changes +------------- + +- Update make file to Workaround long standing pypa wheel bug #99 + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* None + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.2.rst b/docs/releases/2.2.rst index 9c01310a9a..556dcb5d30 100644 --- a/docs/releases/2.2.rst +++ b/docs/releases/2.2.rst @@ -2,32 +2,160 @@ Mayan EDMS v2.2 release notes ============================= -Released: XX, 2017 +Released: April 26, 2017 What's new ========== +API changes +----------- +Refactor of the metadata API URLs to use the resource/sub resource paradigm. + +Before: + +/api/metadata/metadata_types/ +/api/metadata/metadata_types/{pk}/ +/api/metadata/document/metadata/{pk}/ +/api/metadata/document/{pk}/metadata/ +/api/metadata/document_type/{document_type_pk}/metadata_types/optional/ +/api/metadata/document_type/{document_type_pk}/metadata_types/required/ + +After: + +/api/metadata/metadata_types/ +/api/metadata/metadata_types/{metadata_type_pk}/ +/api/metadata/document_types/{document_type_pk}/metadata_types/ +/api/metadata/document_types/{document_type_pk}/metadata_types/{metadata_type_pk}/ +/api/metadata/documents/{document_pk}/metadata/ +/api/metadata/documents/{document_pk}/metadata/{metadata_pk}/ + + +Document API URLs updated to use the resource/sub resource paradigm. +Before: + +/api/documents/document_version +/api/documents/document_pages + +After: +/api/documents//version/ +/api/documents//version//pages/ + +Fields that reference a resource by URL now have the suffix '_url' to differentiate +then from fields include the resource. + +Before: + +'document': '/api/documents/10' + +After: + +'document_url': '/api/documents/10' + +Removal of the document version revert API endpoint. To revert a document to a +previous version using the API, use the DELETE verb to delete the most recent +document version to be discarded. + +Pages data is no longer included as part of the version data. Instead a link to +the document version's pages has been added by the name 'pages_url'. This +resolved to '/api/documents//pages//pages'. + +- New API endpoints (initial work by @lokeshmanmode): + + - API endpoint to change an user's groups subscription. + - API endpoint that list all available permissions types. + - API endpoint to view or change a role's groups. + - API endpoint to view or change a role's permissions. + +Code cleanups +------------- +As with every release time was dedicated to improve the organization, size, and +readability of code. To this end the licenses of each app were moved to their +own module in every app, called licenses.py. As part of the code cleanup the +seldom used app called 'installation' which tracked runtime Python packages +installed alongside Mayan EDMS for debugging purposes has been removed. The +dependency on django-filetransfer has been removed by using +django-downloadviews which allows the creation of class based download views. + +Performance +----------- +The document language list has been moved from the document model to the +document form. This change speeds up loading time, document properties views +and API documentation views. This version includes the new image caching +pipeline which stores transformed (rotated, scaled, etc) versions of the +document's images resulting in an overall display loading speed up. The fonts +used are now loaded from Mayan EDMS itself and not from the web. This change +also allow Mayan EDMS to work in a completely off-line manner. + +Searching +--------- +Support for searching pages as well as documents has been added. This +functionality has been exposed in the API too. + +Security +-------- +This release enables the password validation for the user password validation +support provided by Django. This change allows administrator to set password +policies limiting the minimum amount of characters needed for example. For +more information on how to configure the password validation feature refer +to Django's documentation at: https://docs.djangoproject.com/en/1.11/topics/auth/passwords/#enabling-password-validation + +Sources +------- +To help test the interval sources (POP3 Email, IMAP Email, Watch folders) a +"Check now" button was added that allows users to trigger the source's +document fetching code instantly. Previously users had to wait until the next +scheduled interval to verify if their source's settings were correct. + +Testing +------- +The testing process has been simplified by adding a new option '--mayan-apps' +to the test runner that automatically tests all Mayan EDMS apps that report to +include tests. The app flag that indicates when an app has test was changed +from 'test' to the more explicit 'has_test'. The packaging manifest now +includes test files, this means that tests can now be executed in production. +The total number of tests was raised to 359 and the total coverage increased +to 81%. + +A custom test runner replacing the previous custom management command +called `runtests`. Testing for orphaned temporary files and orphaned file +handles is now optional and controlled by the COMMON_TEST_FILE_HANDLES and +COMMON_TEST_FILE_HANDLES settings. + +User interface +-------------- +To avoid warping on long full names or usernames, the user's full name or +username is no longer displayed in the main menu. Instead the word "Profile" +is displayed and the users's full name or username is displayed when the +"Profile" icon is clicked. Drop down menus support has been added and enabled +for several apps like documents, folders, and tags. This change make navigation +much faster and required less mouse travel. + +Support was added for a dashboard widgets and several default widgets are +included and enabled. + +A view to clone a document page transformation to other pages has been added. +A document page transformation navigation bug has been fixed. To aid visual +lookup, tags are now alphabetically ordered by label. + +A new workflow view that lists documents currently executing a workflow and +documents by their specific current workflow state has been added to the +main menu. Other changes ------------- -- Remove the installation app -- Add support for page search -- Remove recent searches feature -- Remove dependency on the django-filetransfer library -- Fix height calculation in resize transformation -- Improve upgrade instructions -- New image caching pipeline -- New drop down menus for the documents, folders and tags app as well as for - the user links -- Dashboard -- Moved licenses to their own module in every app -- Update project to work with Django 1.10.4 -- Tags are alphabetically ordered by label -- Stop loading theme fonts from the web +- Cabinets app is now integrated as a core app. +- Now that the Cabinets app is included, the Folders app has been disabled + by default. To enable the Folders apps add the following line to your + settings/local.py file:: + + INSTALLED_APPS += ('folders',) + +- Fix height calculation in resize transformation. +- Improve upgrade instructions. +- Update project to work with Django 1.10. - Add support for attaching multiple tags to single or multiple documents. - Refactor the workflow for removing tags from single and multiple documents. - Move new version creation blocking from the documents app to the checkouts app. -- Sample documents moved to distribution to allow running all tests in production. - DEBUG now defaults to False. - Production settings don't override the DEBUG variable. DEBUG can be set to True on production install to debug errors live. @@ -38,20 +166,7 @@ Other changes - Addition of a new OCR backend using PyOCR. This backend tries first to do OCR using libtesseract. If libtesseract is not available the backend defaults to calling the Tesseract executable. -- Language list moved from document model to document form. -- Enable password validation for the user password change view, user password change API endpoint, current user view and current user API endpoint. -- New API endpoints (initial work by @lokeshmanmode): - - - API endpoint to change an user's groups subscription. - - API endpoint that list all available permissions types. - - API endpoint to view or change a role's groups. - - API endpoint to view or change a role's permissions. - - Make the lock_manager.backends.file_lock.FileLock the new default locking backend. -- Add view to clone a document page transformation to other pages. -- Document page transformation navigation bug fixed. -- Move test total to 359. -- Increase test coverage to 81%. - New transformations added: - Rotate 90 degrees @@ -62,11 +177,15 @@ Other changes - Gaussian blur - Unsharp masking +- Add tool to launch all workflows. GitLab issue #355 + Removals -------- - Removal of the OCR_TESSERACT_PATH configuration setting. - Removal of the Tesseract OCR backend. Replaced with a PyOCR backend. - Remove usage of pytesseract Python library. +- Installation app. +- Recent searches feature. Upgrading from a previous version --------------------------------- @@ -95,13 +214,13 @@ Manually upgrade/add the new requirements:: $ pip install --upgrade -r requirements.txt -Common steps -~~~~~~~~~~~~ - Remove deprecated requirements:: $ pip uninstall -y -r removals.txt +Common steps +~~~~~~~~~~~~ + Migrate existing database schema with:: $ mayan-edms.py performupgrade @@ -134,5 +253,6 @@ Bugs fixed or issues closed * `GitLab issue #328 `_ Upgrade Warning/Error during performupgrade (v2.1.3 to v2.1.4) * `GitLab issue #342 `_ Tags should be of unordered / unsorted data type * `GitLab issue #343 `_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable +* `GitLab issue #355 `_ Workflow changes only on new added documents .. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.3.rst b/docs/releases/2.3.rst new file mode 100644 index 0000000000..6830340100 --- /dev/null +++ b/docs/releases/2.3.rst @@ -0,0 +1,101 @@ +============================= +Mayan EDMS v2.3 release notes +============================= + +Released: June 08, 2017 + +What's new +========== + +This is a bug-fix and minor feature release and all users are encouraged to +upgrade. + +Changes +------------- +- Index node expression template field changed from a 128 character field to an + unlimited size text field to allow for complex indexing expressions. +- When updating the metadata of a document, any input in the value form field + will select the adjacent checkbox. +- Support for passing the FUSE option `allow-other` and `allow-root` was added + to the index mirroring management command. +- Added support for checking for the latest released version of Mayan from the + About menu. +- Added support for rebuilding specific indexes instead of only being able to + rebuild all index. GitLab issue #372. +- Rewrite document indexing code to be faster and use less locking. Thanks to + Macrobb Simpson (@Macrobb) for the initial implementation. +- Use a predefined file path for the file lock. +- Catch documents with not document version when displaying their thumbnails. +- Add custom script_prefix aware resolve function and use it for the + document page navigation views. Fixes an issue when Mayan is installed + as a sub URL app. Thanks to Gustavo Teixeira(@gsteixei) for the issue and + investigation. +- Support was added to update document indexes after workflow state changes. +- An helper was added to access a documents workflow by name. To this end + a new field was added to the Workflow class called `Internal name`. + This new field makes it much easier to get a document's workflow instance. + If for example a document has a workflow called `Publish` with the internal + name `publish_workflow`, it will be accessible in the indexing template as + {{ document.workflow.publish_workflow }}. The latest state of the workflow + can be accessed using {{ document.workflow.publish_workflow.get_current_state }}. +- Added a new API endpoint to display a list of all the available search models. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `GitLab issue #371 `_ Auto select checkbox when updating metadata +* `GitLab issue #372 `_ (Feature request) Allow 'rebuild index' to rebuild only a selected index +* `GitLab issue #383 `_ Page not found when deployed to sub-uri +* `GitLab issue #385 `_ mountindex: how to specify FUSE mount option allow_other? + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/index.rst b/docs/releases/index.rst index 65650cab3d..5ffd7316ef 100644 --- a/docs/releases/index.rst +++ b/docs/releases/index.rst @@ -22,7 +22,12 @@ versions of the documentation contain the release notes for any later releases. .. toctree:: :maxdepth: 1 + 2.3 2.2 + 2.1.11 + 2.1.10 + 2.1.9 + 2.1.8 2.1.7 2.1.6 2.1.5 diff --git a/docs/topics/deploying.rst b/docs/topics/deploying.rst index f16bbd59ad..8952357901 100644 --- a/docs/topics/deploying.rst +++ b/docs/topics/deploying.rst @@ -3,7 +3,8 @@ Advanced deployment =================== Mayan EDMS should be deployed like any other Django_ project and -preferably using virtualenv_. +preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS. +Do not use more than one method. Being a Django_ and a Python_ project, familiarity with these technologies is recommended to better understand why Mayan EDMS does some of the things it @@ -58,7 +59,7 @@ to /usr/bin/ with ... sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract -... alternatively set the paths in the ``settings/locals.py`` +Alternatively, set the paths in the ``settings/locals.py`` .. code-block:: python @@ -76,9 +77,9 @@ With Homebrew installed run the command: Set the Binary paths ******************** -Mayan EDMS by default will look in /usr/bin/ for the binary files it needs -so either you can symlink the binaries installed via brew in /usr/local/bin/ -to /usr/bin/ with ... +Mayan EDMS by default will look in /usr/bin/ for the binary files it needs. +You can symlink the binaries installed via brew in /usr/local/bin/ +to /usr/bin/ with: .. code-block:: bash @@ -87,7 +88,7 @@ to /usr/bin/ with ... sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \ sudo ln -s /usr/local/bin/gs /usr/bin/gs -... alternatively set the paths in the ``settings/locals.py`` +Alternatively, set the paths in the ``settings/locals.py`` .. code-block:: python @@ -265,15 +266,18 @@ Make the installation directory readable and writable by the webserver user:: chown www-data:www-data /usr/share/mayan-edms -R -Restart the services:: +Enable and restart the services [1_]:: systemctl enable supervisor systemctl restart supervisor systemctl restart nginx +[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740 + .. _Debian: http://www.debian.org/ .. _Django: http://www.djangoproject.com/ .. _Python: http://www.python.org/ .. _SQLite: https://www.sqlite.org/ .. _Ubuntu: http://www.ubuntu.com/ .. _virtualenv: http://www.virtualenv.org/en/latest/index.html +.. _1: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740 diff --git a/docs/topics/development.rst b/docs/topics/development.rst index 46fcf90bd4..91312b2165 100644 --- a/docs/topics/development.rst +++ b/docs/topics/development.rst @@ -16,8 +16,8 @@ request on GitLab_. Project philosophies -------------------- -How to think about Mayan EDMS when doing changes or adding new features, -why things are the way they are in Mayan EDMS. +How to think about Mayan EDMS when doing changes or adding new features; +why things are the way they are in Mayan EDMS: - Functionality must be as market/sector independent as possible, code for the 95% of use cases. @@ -36,7 +36,7 @@ why things are the way they are in Mayan EDMS. not viable/mature/efficient. - Each app is as independent and self contained as possible. Exceptions, the basic requirements: navigation, permissions, common, main. -- If an app is meant to be used by more than one other app it should be as +- If an app is meant to be used by more than one other app, it should be as generic as possible in regard to the project and another app will bridge the functionality. - Example: since indexing (document_indexing) only applies to documents, the @@ -48,7 +48,7 @@ Coding conventions Follow PEP8 ~~~~~~~~~~~ -Whenever possible, but don't obsess over things like line length. +Whenever possible, but don't obsess over things like line length: .. code-block:: bash @@ -103,9 +103,9 @@ Example: ) from .models import Index, IndexInstanceNode, DocumentRenameCount -All local app module imports are in relative form, local app module name is to +All local app module imports are in relative form. Local app module name is to be referenced as little as possible, unless required by a specific feature, -trick, restriction, ie: Runtime modification of the module's attributes. +trick, restriction (e.g., Runtime modification of the module's attributes). Incorrect: @@ -128,7 +128,7 @@ Dependencies Mayan EDMS apps follow a hierarchical model of dependency. Apps import from their parents or siblings, never from their children. Think plugins. A parent app must never assume anything about a possible existing child app. The -documents app and the Document model are the basic entities they must never +documents app and the Document model are the basic entities; they must never import anything else. The common and main apps are the base apps. @@ -423,3 +423,16 @@ Wheel package $ pip install /dist/mayan_edms-x.y.z-py2-none-any.whl $ mayan-edms.py initialsetup $ mayan-edms.py runserver + + +Version numbering +~~~~~~~~~~~~~~~~~ + +Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose +version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/) +to format them. + +X.YaN # Alpha release +X.YbN # Beta release +X.YrcN # Release Candidate +X.Y # Final release diff --git a/docs/topics/faq.rst b/docs/topics/faq.rst index dedf95428f..987e0d2a43 100644 --- a/docs/topics/faq.rst +++ b/docs/topics/faq.rst @@ -126,3 +126,10 @@ dependent support Python 3 then will the project move to fully support Python 3. Make sure that the Celery BEAT scheduler is running correctly as it is the element that triggers the periodics tasks. + +**Q: How to do LDAP authentication** + +A sample settings file called ldap_connection_settings.py is included in the +contrib/settings/ folder of the repository showing how to setup LDAP +authentication. + diff --git a/docs/topics/features.rst b/docs/topics/features.rst index 33d32c7159..3d93dc0145 100644 --- a/docs/topics/features.rst +++ b/docs/topics/features.rst @@ -30,7 +30,7 @@ Features * Dynamic default values for metadata. * Metadata fields can have an initial value, which can be static or determined - by an user provided template code snippet. + by a template code snippet provided by the user. * Documents can be uploaded from different sources. @@ -68,7 +68,7 @@ Features * Multi page document support. - * Multiple page PDFs and TIFFs files are supported. + * Multiple page PDF and TIFF files are supported. * Automatic OCR processing. diff --git a/docs/topics/installation.rst b/docs/topics/installation.rst index 095b052d39..73bf5fc18b 100644 --- a/docs/topics/installation.rst +++ b/docs/topics/installation.rst @@ -2,7 +2,7 @@ Installation ============ The easiest way to use Mayan EDMS is by using the official Docker_ image. -Make sure Docker_ is properly installed and working before attempting to install +Make sure Docker is properly installed and working before attempting to install Mayan EDMS. With Docker properly installed, proceed to download the Mayan EDMS image using @@ -10,102 +10,25 @@ the command: .. code-block:: bash - docker pull mayanedms/mayanedms + $ docker pull mayanedms/mayanedms:2.3 After the image finishes downloading, initialize a Mayan EDMS container. .. code-block:: bash - docker run --rm -v mayan_media:/var/lib/mayan \ - -v mayan_settings:/etc/mayan mayanedms/mayanedms mayan:init + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 -With initialization complete, launch the container. If another web server is -running on port 80 use a different port in the -p option, ie: -p 81:80. +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. -.. code-block:: bash +All files will be stored in the Docker volume ``mayan_data`` - docker run -d --name mayan-edms --restart=always -p 80:80 \ - -v mayan_media:/var/lib/mayan -v mayan_settings:/etc/mayan \ - mayanedms/mayanedms - -Point your browser to 127.0.0.1 (or the alternate port chosen, ie: 127.0.0.1:81) -and use the automatically created admin account. - -All files will be stored in the following two volumes: - -- mayan_media -- mayan_settings - -Stopping and starting ---------------------- -To stop the container use:: - - docker stop mayan-edms - -To start the container again:: - - docker start mayan-edms - -Configuring ------------ -To edit the settings file, check the physical location of the `mayan_settings` -volume using:: - - docker volume inspect mayan_settings - -Which should produce an output similar to this one: - -.. code-block:: bash - - [ - { - "Name": "mayan_settings", - "Driver": "local", - "Mountpoint": "/var/lib/docker/volumes/mayan_settings/_data", - "Labels": null, - "Scope": "local" - } - ] - -In this case the physical location of the `mayan_settings` volume is -`/var/lib/docker/volumes/mayan_settings/_data`. Edit the settings file with your -favorite editor:: - - sudo vi /var/lib/docker/volumes/mayan_settings/_data/local.py - -Backups -------- - -To backup the existing data, check the physical location of the `mayan_media` -volume using:: - - docker volume inspect mayan_media - -Which should produce an output similar to this one: - -.. code-block:: bash - - [ - { - "Name": "mayan_settings", - "Driver": "local", - "Mountpoint": "/var/lib/docker/volumes/mayan_media/_data", - "Labels": null, - "Scope": "local" - } - ] - -Only the `db.sqlite3` file and the `document_storage` folder need to be backed -up:: - - sudo tar -zcvf backup.tar.gz /var/lib/docker/volumes/mayan_media/_data/document_storage /var/lib/docker/volumes/mayan_media/_data/db.sqlite3 - sudo chown `whoami` backup.tar.gz - -Restore -------- -Uncompress the archive in the original docker volume using:: - - sudo tar -xvzf backup.tar.gz -C / +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ .. _Docker: https://www.docker.com/ diff --git a/docs/topics/transformations.rst b/docs/topics/transformations.rst index ffde0c7c7c..ebe4355be8 100644 --- a/docs/topics/transformations.rst +++ b/docs/topics/transformations.rst @@ -2,21 +2,20 @@ Transformations =============== -Transformation are persistent manipulations to the previews of the stored -documents. For example: a scanning equipment may only produce landscape PDFs. -In this case an useful transformation for that document source would be to -rotate all documents scanned by 270 degrees after being uploaded, this way -whenever a document is uploaded from that scanner it will appear in portrait -orientation. In this case add a this transformation to the Mayan EDMS source -that is connected to that device this way all pages scanned via that source -with inherit the transformation as they are created. +Transformations are persistent manipulations to the previews of the stored +documents. For example: a scanning equipment may only produce landscape PDFs. +In this case a useful transformation for that document source would be to rotate +all scanned documents by 270 degrees after being uploaded. By adding this +transformation to the Mayan EDMS source that is connected to the scanner, all +pages scanned via that source will inherit the transformation as they are +created. The result is that whenever a document is uploaded from that scanner, +it will appear in portrait orientation, instead of landscape orientation. -Transformations can also be added to existing documents, by clicking on a -document's page, then clicking on "transformations". In this view the Actions -menu will have a new option that reads "Create new transformation". At the -moment the rotation, zoom, crop, and resize transformations are available. -Once the document image has been corrected resubmit it for OCR for improved -results. +Transformations can also be added to existing documents by clicking on a +document's page and then clicking on "transformations". In this view the Actions +menu will have a new option that reads "Create new transformation". Currently, +the available transformations are: rotation, zoom, crop, and resize. Once the +document image has been corrected, resubmit it for OCR for improved results. -Transformations are not destructive and do not physically modify the document +Transformations are not destructive and do not physically modify the document file, they just modify the document's graphical representation. diff --git a/mayan/__init__.py b/mayan/__init__.py index 43c74b02a1..cb35e8154b 100644 --- a/mayan/__init__.py +++ b/mayan/__init__.py @@ -1,8 +1,8 @@ from __future__ import unicode_literals __title__ = 'Mayan EDMS' -__version__ = '2.1.7' -__build__ = 0x020107 +__version__ = '2.3' +__build__ = 0x020300 __author__ = 'Roberto Rosario' __author_email__ = 'roberto.rosario@mayan-edms.com' __description__ = 'Free Open Source Electronic Document Management System' diff --git a/mayan/apps/acls/api_views.py b/mayan/apps/acls/api_views.py new file mode 100644 index 0000000000..a93f3e09c8 --- /dev/null +++ b/mayan/apps/acls/api_views.py @@ -0,0 +1,250 @@ +from __future__ import absolute_import, unicode_literals + +from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from permissions import Permission + +from .models import AccessControlList +from .permissions import permission_acl_edit, permission_acl_view +from .serializers import ( + AccessControlListPermissionSerializer, AccessControlListSerializer, + WritableAccessControlListPermissionSerializer, + WritableAccessControlListSerializer +) + + +class APIObjectACLListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the object's access control lists + """ + + return super(APIObjectACLListView, self).get(*args, **kwargs) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + if self.request.method == 'GET': + permission_required = permission_acl_view + else: + permission_required = permission_acl_edit + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_content_object().acls.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'content_object': self.get_content_object(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_serializer_class(self): + if self.request.method == 'GET': + return AccessControlListSerializer + else: + return WritableAccessControlListSerializer + + def post(self, *args, **kwargs): + """ + Create a new access control list for the selected object. + """ + + return super(APIObjectACLListView, self).post(*args, **kwargs) + + +class APIObjectACLView(generics.RetrieveDestroyAPIView): + serializer_class = AccessControlListSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected access control list. + """ + + return super(APIObjectACLView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected access control list. + """ + + return super(APIObjectACLView, self).get(*args, **kwargs) + + def get_content_object(self): + if self.request.method == 'GET': + permission_required = permission_acl_view + else: + permission_required = permission_acl_edit + + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_content_object().acls.all() + + +class APIObjectACLPermissionListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns the access control list permission list. + """ + + return super( + APIObjectACLPermissionListView, self + ).get(*args, **kwargs) + + def get_acl(self): + return get_object_or_404( + self.get_content_object().acls, pk=self.kwargs['pk'] + ) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_acl_view,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_acl_view, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_acl().permissions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return AccessControlListPermissionSerializer + else: + return WritableAccessControlListPermissionSerializer + + def get_serializer_context(self): + return { + 'acl': self.get_acl(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add a new permission to the selected access control list. + """ + + return super( + APIObjectACLPermissionListView, self + ).post(*args, **kwargs) + + +class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView): + lookup_url_kwarg = 'permission_pk' + serializer_class = AccessControlListPermissionSerializer + + def delete(self, *args, **kwargs): + """ + Remove the permission from the selected access control list. + """ + + return super( + APIObjectACLPermissionView, self + ).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected access control list permission. + """ + + return super( + APIObjectACLPermissionView, self + ).get(*args, **kwargs) + + def get_acl(self): + return get_object_or_404( + self.get_content_object().acls, pk=self.kwargs['pk'] + ) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_acl_view,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_acl_view, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_acl().permissions.all() + + def get_serializer_context(self): + return { + 'acl': self.get_acl(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } diff --git a/mayan/apps/acls/apps.py b/mayan/apps/acls/apps.py index ebce7ca4ce..8825df70b2 100644 --- a/mayan/apps/acls/apps.py +++ b/mayan/apps/acls/apps.py @@ -4,18 +4,21 @@ from django.utils.translation import ugettext_lazy as _ from common import MayanAppConfig, menu_object, menu_sidebar from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import link_acl_create, link_acl_delete, link_acl_permissions class ACLsApp(MayanAppConfig): + has_tests = True name = 'acls' - test = True verbose_name = _('ACLs') def ready(self): super(ACLsApp, self).ready() + APIEndPoint(app=self, version_string='1') + AccessControlList = self.get_model('AccessControlList') SourceColumn( diff --git a/mayan/apps/acls/classes.py b/mayan/apps/acls/classes.py index 9ddaa03428..30ec654778 100644 --- a/mayan/apps/acls/classes.py +++ b/mayan/apps/acls/classes.py @@ -14,10 +14,18 @@ class ModelPermission(object): @classmethod def register(cls, model, permissions): + from django.contrib.contenttypes.fields import GenericRelation + cls._registry.setdefault(model, []) for permission in permissions: cls._registry[model].append(permission) + AccessControlList = apps.get_model( + app_label='acls', model_name='AccessControlList' + ) + + model.add_to_class('acls', GenericRelation(AccessControlList)) + @classmethod def get_for_instance(cls, instance): StoredPermission = apps.get_model( @@ -36,7 +44,9 @@ class ModelPermission(object): if proxy: permissions.extend(cls._registry.get(proxy)) - pks = [permission.stored_permission.pk for permission in set(permissions)] + pks = [ + permission.stored_permission.pk for permission in set(permissions) + ] return StoredPermission.objects.filter(pk__in=pks) @classmethod diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo index b9f8dfab007a6ad694f1bb28665553a23e6c54a8..fae4e8f5c806d7eb5a862b27efe5ac1939770184 100644 GIT binary patch delta 86 zcmcc5cAsrSCZnmju7Rnpk%fYxsg;R^u7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl oor$iIp@N~Am67S>d5o1jK8bnhrHSc4>BOSRVocGK>zEz_00_t!)&Kwi delta 86 zcmcc5cAsrSCZnmDuA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl ooq?{Ag@S>(m9f#}d5o2lRhXi9d=m50OB2(9N)n4E*D^f<007V!(f|Me diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po index 61c00a6c9a..f26e94285a 100644 --- a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "الصلاحيات" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "لا شيء" @@ -74,36 +73,65 @@ msgstr "Edit ACLs" msgid "View ACLs" msgstr "View ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo index 74502f8b6edc543755877c7c2bdc77b90728aa61..a760b1394028043b4913d80b86e864989d03b993 100644 GIT binary patch delta 65 zcmX@gag<}jT1H-TT?12HBMSvXQ!5jT$-5Y(K_Vu)MurN8W>!X~lOHkG@c1O=rI#kA Tr&=i_rB9A!ir##bseusyRn`*~ delta 65 zcmX@gag<}jT1H+oT|+}%BVz>vBP&y*$-5Y(K_UjaMivSN=2pf=lOHkGOwMMC;_*q$ TOD|1KPqk7=O5c2hsgV%?Qz;V> diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po index 39fafedd71..3926ed7e45 100644 --- a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Разрешения" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Недостатъчен достъп." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "достъп вписване" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "достъп вписвания" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Няма" @@ -74,36 +72,65 @@ msgstr "Редактиране на контролни списъци за до msgid "View ACLs" msgstr "Преглед на контролни списъци за достъп" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo index 5c9f8b61fbb94dbe3d75610713a9a0ff7c901bd3..fe80a9f9b07960b7d4aa1a57cdef16e3f3541f52 100644 GIT binary patch delta 89 zcmey(_M2@(CZnmju7Rnpk%fYxsg;R^u7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl ror$iIp@N~Am67S>d5qKeeG>E1OB2(9(n-bfPL7j}nW87pW4a3fYU>(H delta 89 zcmey(_M2@(CZnmDuA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl roq?{Ag@S>(m9f#}d5qI0yD&xZ`y}S2mnNnIl_V9%J2_6C%XAL_WO5ox diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po index 865445f1bd..5e73d2105f 100644 --- a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Dozvole" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Nedovoljne dozvole." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nijedno" @@ -74,36 +73,65 @@ msgstr "Izmjeniti ACLs" msgid "View ACLs" msgstr "Pregledati ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo index eb11dcead6e605c20ba058406176125226fd7308..97e329855fbba95c494a7d4edc034c4e00f21a14 100644 GIT binary patch delta 84 zcmZo>X=a(Q-PByyz*N`BLc!3~%EUs~z{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; lMAyhr!O+ag$aLbHN*m9m7<2#t delta 84 zcmZo>X=a(Q-PBCi&`{UNSi!)^%G5~Lz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; mK-b7Z!NAA~>pSo% z@F(yJcnidzsKEH6;Cb*IcojSjegz%@e*rlkw?Llv_wM(DIU%0GdjW(?Vh!Z{Tm;X8 zHSk672FU*X3G%$d2>uj!415mU01=iznzJ~0PtH%TaV}9ZaS;6wI{VD=A4Pu{onsqr z?8B4j>?`}twRr@c8`qa}zzyzXdFE%XFP|fB>|@pz7FV5ESYMWxHdbXT)+W&=kV!0+ zY>{nh=X7kOHquh05`MuFmswa6-@ll(s z=x2HFQ43<(xU|vGbsiasRUJrWC2LG1tXg_Pxtw`L31Zn%c&_sFc?(<~FDm z+r(RQf%d&KY2dtST#~u<3srB?Qg$D`G7eiw&J?F#@`|UtnK?Oqsx&+26=#b@O!PKr zOS9dPd9&WkteiPnnl8RjM9Zxzmv~hi2!~6~7vLN@bxq027TJge;pJFG>+t%q3^IR#~aIn8jIBMI;5_gT7*uba8}mN5aX3IQuF_qrB~vHEf_=nI7|Tg~r{c$b8C2G_6-8{A=5- wQTLSpXLSY=jM`?)x;ydx8LDt+^m?$`LUTt0$tv|f{2Z4*R8yG_X}-t*0=yMqC;$Ke delta 639 zcmXxgO(;ZB6u|L|=gs&SU&AAx&&q0KhM5=^CPbo`6iM;qnS6wru~KHGSn4JzWnpbc zva*qt*jQMJjfIU;Hf;RQ45!Zf-E-f4_r7yKtT?=vCSCn1MQa9*Y}8FLA$kgOnmr2L?Y^^GJ|Oz#_hJ(D-4bB!~7YmDpD{5@YJ z5DW%F?RHxz8V>0$vrcB(0_{ON*clB+v}0DcOsvl@IZ1oWaW__6yC;HnFNBca}r6bN-V$(^uQG3Ci?H|yKo_?M7T6)`?&;tb@I$k)Xt)iJ, 2015 +# Jesaja Everling , 2017 # Tobias Paepke , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-31 18:56+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-24 23:10+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Zugriffsberechtigungen" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Berechtigungen" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rolle" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Löschen" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Neue Berechtigung" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Fehlende Berechtigung" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Berechtigungseintrag" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Berechtigungseinträge" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" -msgstr "Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\"" +msgstr "" +"Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Keine" @@ -76,38 +76,72 @@ msgstr "Zugriffsberechtigungen bearbeiten" msgid "View ACLs" msgstr "Zugriffsberechtigungen anzeigen" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "API URL für die Liste der Berechtigungen dieser ACL" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" +"API URL für die Berechtigung in Relation zur ACL zu der sie zugeordnet ist. " +"Diese URL unterscheidet sich von der normalen Workflow URL." + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "Primary key der zur ACL hinzuzufügenden Berechtigung." + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "Keine solche Berechtigung: %s" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" +"Durch Komma getrennte Liste von Primary Keys der zu dieser ACL " +"hinzuzufügenden Berechtigungen." + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "Primary Key der Rolle die dieser ACL zugeordnet ist." + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Neue Zugriffsberechtigung für %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "ACL \"%s\" löschen" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Zugriffsberechtigungen für %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Verfügbare Berechtigungen" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Erteilte Berechtigungen" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." -msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt." +msgstr "" +"Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererbt." #~ msgid "New holder" #~ msgstr "New holder" @@ -200,8 +234,10 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -224,8 +260,5 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo index 68dfeacb7c37f4ea76e7236552a7614c8ecb2622..1ac7353367c1b846b2b1c7d37b23c789d2166657 100644 GIT binary patch delta 26 hcmdnbx}SA}1tYJyu7Rnpk%fYxsg;SvW>>~4MgUdqm delta 26 hcmdnbx}SA}1tYJSuA!l>k+Fh-k(H^@W>>~4MgU$j25kTU diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po index 25d5608a7d..fbae4abbf2 100644 --- a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" "PO-Revision-Date: 2012-02-02 18:20+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,52 +18,52 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 #, fuzzy msgid "Permissions" msgstr "permissions" -#: apps.py:26 models.py:38 +#: apps.py:29 models.py:46 #, fuzzy #| msgid "Roles" msgid "Role" msgstr "Roles" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 +#: links.py:39 #, fuzzy #| msgid "View ACLs" msgid "New ACL" msgstr "View ACLs" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:44 +#: models.py:52 #, fuzzy msgid "Access entry" msgstr "access entry" -#: models.py:45 +#: models.py:53 #, fuzzy msgid "Access entries" msgstr "access entries" -#: models.py:48 +#: models.py:57 #, fuzzy, python-format #| msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -#: models.py:64 +#: models.py:74 msgid "None" msgstr "" @@ -79,38 +79,69 @@ msgstr "Edit ACLs" msgid "View ACLs" msgstr "View ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, fuzzy, python-format +#| msgid "permission" +msgid "No such permission: %s" +msgstr "permission" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, fuzzy, python-format msgid "New access control lists for: %s" msgstr "access control lists for: %s" -#: views.py:109 +#: views.py:100 #, fuzzy, python-format #| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Default ACLs" -#: views.py:151 +#: views.py:138 #, fuzzy, python-format msgid "Access control lists for: %s" msgstr "access control lists for: %s" -#: views.py:162 +#: views.py:150 #, fuzzy msgid "Available permissions" msgstr "has permission" -#: views.py:163 +#: views.py:151 #, fuzzy msgid "Granted permissions" msgstr "has permission" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -247,8 +278,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo index 03fc79ac7410362b5d56f86ff23ff17776e8103f..31037eada1dde49f4b6fc8b7d77562b8229100dc 100644 GIT binary patch literal 2923 zcmai#J8UCG7{`a>c$|43k2?;EAtE9XTH6VU2#!+Z;shc&xsY>?0)ZIsj_t{r_8VPE||J(7CILRvO-|p`cCN8nT7Hz5AlPxyHN{25#Ye+4(dOZPBV z1>XiS#J&Ur@GFq^`3?LSvHj8euCd9t71H8GEsOX*X$t->}}DOZk*G!bIK1@FrjmJZlq>hHsvPYfjXJ=Em8eu(T1DG8t?5t|F^WA*V_$}8k*!ClOok26X(Put2Ju{r{X5AEJ z0}UnV3z3GXws`e1V1Vrm^T^Q$)Ds$B4lVsJxf9#9IBLfA?c{q88u_HU@P^V6m9WTm z;bi_Z>haK%7kq1uxqn0Xlp+<@P+fw}D7YalowW+z5=S@}>(#C6gG z`4`K$3N_)CoajONd+@VQw?dTnjhF_NhW8Y4K#B7ZkS^CX#01rAfDdp%~j^pY5=TijhR=veXwkEHpS& zEmXVrf5bqhA+%m+v1U7y2ZEOLo=)i_Dqml0CCAJ9VUT=P6ADSUlAQ42v1-~k@Nn9cf5?q1;9Sb+xf}9!}8sgAUTS!Ag zQ$x@kO>H$s6huo)OG_>NpRyO;`#YZNJ?A;+ee^Nbd5SwnhDy@o^bI{hw|qRPXLRrd zNAL~xzi%ACl;4zFGBeN5b88Xr&_eqt2Au#9ft zZ+;0qey^Yw+`$9F?DgI!g2s$7pTa3DU>w(Q7+a`=?4ry5#xhXS6D;95YU5Ybhaad9 z0vt;lrf>!)QNgPi!a7!P1Ic1eQ9;jo@9&YEhVz&~TDKM2;-TwPGA*vs>Hlkpfx@V? znM&8EQfL+H{sz=o8%JmbkI`i3`YP47DceIQVb=qz*6&={Tc>8b!Ts2rm(6;)d^(dW v&F1WaJEob8mn)_-^QC<8vgyWsZgsQ0-E7-tC~0k|VVmJ=TZq(cCc5|ogPl3z diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po index f860b997e1..25623de8d2 100644 --- a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po @@ -6,13 +6,13 @@ # Translators: # jmcainzos , 2015 # Roberto Rosario, 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:38+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -21,47 +21,47 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "LCAs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permisos" -#: apps.py:26 models.py:38 +#: apps.py:29 models.py:46 #| msgid "Roles" msgid "Role" msgstr "Rol" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Borrar" -#: links.py:35 +#: links.py:39 #| msgid "View ACLs" msgid "New ACL" msgstr "Nueva LCA" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acceso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Entrada de acceso" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entradas de acceso" -#: models.py:48 +#: models.py:57 #, python-format #| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Ninguno" @@ -77,36 +77,67 @@ msgstr "Editar LCAs" msgid "View ACLs" msgstr "Ver LCAs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "URL de la API que apunta a la lista de permisos para esta lista de control de acceso." + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "URL de la API que apunta a un permiso en relación con la lista de control de acceso a la que está conectado. Esta URL es diferente de la URL canónica de flujo de trabajo." + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "Llave primaria del nuevo permiso para conceder a la lista de control de acceso." + +#: serializers.py:111 serializers.py:187 +#, python-format +#| msgid "permission" +msgid "No such permission: %s" +msgstr "No existe el permiso: %s" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "Lista separada por comas de las llaves primarias de permisos para conceder a esta lista de control de acceso." + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "Las llaves primarias de los roles a los que se vincula esta lista de control de acceso." + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nueva lista de control de acceso para: %s" -#: views.py:109 +#: views.py:100 #, python-format #| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Borrar LCA: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Listas de control de acceso para: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permisos disponibles" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permisos otorgados" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Los permisos inactivos se heredan de un objeto precedente." @@ -225,8 +256,5 @@ msgstr "Los permisos inactivos se heredan de un objeto precedente." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo index fee31706ca85b9b507c6737c6cb58766ede7fa06..620d52383f22c96a25180e8447831f0570b6e33a 100644 GIT binary patch delta 87 zcmaFL@swkO7?Y{Fu7Rnpk%fYxsg;R^u7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl oor$iIp@N~Am67RWZ>B09pTxZM(!_M2bXwx%BTUhob(k#~0SD3;4FCWD delta 87 zcmaFL@swkO7?Y`)uA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl poq?{Ag@S>(m9f!eZ>Flrmzbh>d=m50OB2(9O41THYcpFh0ssiy7zqFX diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po index febe4e197c..cc6bfeefcf 100644 --- a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "مجوزها" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "نقش" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "حذف" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "دسترسی ناکافی" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "ورودی دسترسی" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "ورودیهای دسترسی" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "هیچکدام." @@ -74,36 +72,65 @@ msgstr "ویرایش دسترسی ها" msgid "View ACLs" msgstr "دیدن دسترسی ها" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "لیست کنترل دسترسی ها برای : %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo index 14b6e009b1082f8f71d3af86d95d639b57d15ba5..c44a0e307da17001634145b1aa8902fbb2bbec0e 100644 GIT binary patch delta 587 zcmaLTJugF17{Kv!+bY!-RWD7D+*Il%(ZsE`nhr!P;w8b#prjQ-ukdG7B#&pG$JmHlURrRPT1k)kyd?Zhq7L9A(fXfNo( zS8T#JlzE?6harbjKI}$WBaUtyM;V{N6fU3#PcVq*$a*DpO{bc|J?i*~vS9_i_<)L=8v`@8QKweiG z_fWM&-ZXd~0v!upD3t(bXB4@Y`7{?cA6tZ$ln!CcGAh$y9;S&-CRT+J?RQm`wI zJ^x^|KM{?kbR&_Dr|hz`O)Bwd%+QTwI+n1noZG(1On!MQvz$%qxq{v2n!7x7U1%Nu N?r%@HyX>@k_6xakSZe?P delta 487 zcmXZYF;Buk6u|L!QV|hQsfr1hG*JhJMp~khnwT({I5@~^To@E52aN+0GZCkYU%&-d z!(>9@Vw`2rkx3SftBZ^ON4)g)cXz$J_j-4kPP#SBI=4bwAPPjESRsxLFWM_QI6z(V zj=Js(GnkkVNns8baSh`bp?)19iNE0akGtFOm9$dS#Z-+e;97Tbf6ILhOxMHCg*$T%8&>{zsC8+j}#C zvHP)hddm+2KP-EtFxm|5FqYSuk{?#Q(soo1ZQNW!1gJH6, 2016 # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Droits" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissions" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rôle" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Suppression" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nouveau droit" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "droit d'accès insuffisant." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Entrée d'accès" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entrées d'accès" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" +"Permissions \"%(permissions)s\" du rôle \"%(role)s\" pour \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Aucun" @@ -75,36 +75,65 @@ msgstr "Editer les droits" msgid "View ACLs" msgstr "voir les droits d'accès" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nouvelle liste de contrôle d'accès pour: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Supprimer le droit: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Liste des contrôle d'accès pour: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permissions disponibles" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permissions autorisées" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permission du rôle \"%(role)s\" pour \"%(object)s\"@" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "La désactivation de permission est hérité de l'objet parent" @@ -199,8 +228,10 @@ msgstr "La désactivation de permission est hérité de l'objet parent" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -223,8 +254,5 @@ msgstr "La désactivation de permission est hérité de l'objet parent" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo index d196323791fdca3755272e9410c1c73211c84ddd..f33ad705f066fa6f3a672b5b3d32e72d30632f7f 100644 GIT binary patch delta 84 zcmeBR>0p_#-PByyz*N`BLc!3~%EUs~z{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; lMAyhr!O+ag$aLbH8Xlj-y!6tEv|A=*j09EdkQG7@+_F delta 84 zcmeBR>0p_#-PBCi&`{UNSi!)^%G5~Lz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; mK-b7Z!NAKqj-E0^U_Nb(}5~7Qzp-4R09CpxELq^ diff --git a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po index f1d098200f..a63647740d 100644 --- a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo index 0d1cb734a60c4fac89239c412dc287f9df0974bb..77e22244483cb4b227684ae5338b828dd0ea19af 100644 GIT binary patch delta 274 zcmeC;d&@iFNPRCO14An_0|N^K1A{Ot1A`QhmH^T!K-w5c^8@J!D4hYMrGfkkAk6`! zrvPaIAUzjIn*r%{K$-_gKLyf~K>8Dq76Z~eYzz#XKw23{YXE6oAPv$V#>SuqX2b&p z9Do8DKpLorVI`2(1Jdh(G#`+@w>gtBgNfH%*T7WQ$U?!;)XKzS@;zp0W1xtMu92aF zp_!GDskQ+SaQP$_m*|ERCFT|9B$nhCSt$hNC#4pZ7|M3 Tsa6V^C6ni{L~mwcWn%&Wqbn^h delta 301 zcmXZUziPrz6bA5POr;k8bP}q|9g0}mgqs9KLXm)5X~DtC?Gi#N?kFW>JaB?+)HRJ`n zg)4Xue_;#$!2(orL=UhGEAR>Cp#vN64PNf!9M%7qZxjxS1mXv6p$>Pj1W)T>=2I!Q zG{ewLi*eI#n(01U>!IPA#hGc?M*Ep#?%qW_*7}hc#eo=yk, 2016 @@ -9,57 +9,55 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permessi" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Ruolo" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Cancella" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nuova ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Accesso insufficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Voce di accesso" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Voci di accesso" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "Permessi \"%(permissions)s\" del ruolo \"%(role)s\" per \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nessuna " @@ -75,36 +73,65 @@ msgstr "Modifica ACL" msgid "View ACLs" msgstr "Visualizza ACL" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nuova lista di controllo accesso per: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Cancella ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Lista dei permessi d'accesso per: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Autorizzazioni disponibili " -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Autorizzazioni concesse " -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permessi del ruolo \"%(role)s\" per \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Il permesso disabilita è ereditato dall'oggetto padre" @@ -199,8 +226,10 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -223,8 +252,5 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo index e95ea65909eb568e98ace94c2d0b5951858005ca..3b6b264f804d2867915617957b7fb18a9ab5a3d1 100644 GIT binary patch delta 277 zcmaFGcb0F$k^1?J3=FNz3=F~y3=FEQ5ZV$*%K-VlKw1PyXF zSs9sX8vp^9PhxS2Zb(sLUU5!hNq&))LQsBEYEel(kSglHB0nnG1d?!0N<4_7ytkO delta 306 zcmX@h_lj@Ak@`K13=FNz3=F~y3=B@J5IPJ<%K-UVKw1Pyw?oC}0BJEGe*=)_1k%TW zv^v^S8J1k#B>S^`K{18HR-Jq1X!0O=iU3~CHqK*nC6 zfDe#90i=0>v?x0RgEo*>2GSq{{WoVaW-#%Z=^7g98W}4X7+IMbO}@u09RL(D&^5A9 zFf_67OY-FTEK&SEiFxUziRr0U3VAv4em, 2016 @@ -10,57 +10,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 12:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Authorisatielijsten" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissies" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Gebruikersrol" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Verwijder" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nieuwe authorisatielijst" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Permissie is ontoereikend" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Authorisatie invoer" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Authorisaties invoer" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" -msgstr "Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor \"%(object)s\"" +msgstr "" +"Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor " +"\"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Geen" @@ -76,36 +76,65 @@ msgstr "Bewerk authorisatielijsten" msgid "View ACLs" msgstr "Bekijk authorisatielijsten" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nieuwe authorisatielijsten voor: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Verwijder authorisatielijst: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Authorisatielijsten voor: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Beschikbare permissies" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Toegekende permissies" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Rol \"%(role)s\" permissies voor \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Uitgeschakelde permissies zijn geërfd van een parent object." @@ -200,8 +229,10 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object." #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -224,8 +255,5 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo index f958e6b8ed9eb6429a10f882deb2bd6aff7e831c..bfacc1b6cf57411a942faa5f8e372b75cdd98700 100644 GIT binary patch delta 417 zcmZqXy~8_UPrW=71A{R$0|O@m14A$?gpLK$fbl~B45NQ(mbi-9x{G3igVEdZp2*&ymvfV32lZv~|JfOII376Z~LK$-nJJ4N!p|AZ-HV zPXy8+i;iuMWK?6~HPKu&2nJJ>QDh= zAZ-HVTL5X00lAwa8P%A0&2$Y7b&ZS_42-NyjVAXnOM^rVbd4+&49u;JjV5nluAFSe z5>@Y$n3rCfn4W5-P>{nFkW*Ten4{~KUzA&HrI1$u<`&x;TLUFQGPW9dwzh@}_6i0H zKxtJ&13OzI1vND=)5g{W#MA%@8`u~cDAd$|#X)KeG=X{yfqINIt+^O{GK)(p6&#&? LfUM2&thI~)j`=(_ diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po index 83be64cd16..fab35772bb 100644 --- a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Wojtek Warczakowski , 2016 @@ -9,57 +9,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Listy ACL" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Uprawnienia" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rola" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Usuń" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nowa lista ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Niewystarczający dostęp." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Zgłoszenie dostępu" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Zgłoszenia dostępu" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Brak" @@ -75,36 +75,65 @@ msgstr "Edytuj listy ACL" msgid "View ACLs" msgstr "Przeglądaj listy ACL" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nowe listy ACL dla: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Usuń listę ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Listy ACL dla: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Dostępne uprawnienia" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Przyznane uprawnienia" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Uprawnienia roli \"%(role)s\" dla obiektu \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego." @@ -199,8 +228,10 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego." #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -223,8 +254,5 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo index 9caa6ac7bbaebc661fde374f4abef19516d58806..cfad490f15ccce14d87715b52218a7c39d6e6cba 100644 GIT binary patch delta 86 zcmdnNwu5a$2cxOEu7Rnpk%fYxsg;R^u7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl oor$iIp@N~Am67S>y^OUyK8bnhrHSc4>4K8UmQ2x;7cxx;0R5gA*8l(j delta 85 zcmdnNwu5a$2cxN(uA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl noq?{Ag@S>(m9f#}y^OV!-I=1eeG>E1OB2(9N(v^=XPOBB-a!~% diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po index 97b4a0cef4..1710780c16 100644 --- a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACL's" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissões" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Eliminar" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nenhum" @@ -74,36 +72,65 @@ msgstr "Editar ACL's" msgid "View ACLs" msgstr "Ver ACL's" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo index 48edbdd0999cc922ff0f87a1a378a6690d401731..5829308913b4d19bfa4ca538a19545eba22d9bda 100644 GIT binary patch delta 278 zcmZ3&*TpyCNc}uU28LE<1_l-e1_l*Y1_l`*tqG)6fwUWt76Q^aK$;Io*8^z@Al(O~ z*@5(OsQ7vyZ4cz{1Jc|;`X7)M1JYb<3=ASbS`kQd0BJKItqG*8Qk<}Ai^CSG%015;fi3k5?{D-(;!_n4)Pfg&clMurN8 zW>!X~+6F+t<&#)kq8n0_m{**WSdw34r4W>#lv-4h52T9|i!$>kyRjtm`y}S2mnNpC VS}7Ei#5)B|UcnN*S(sIj2>^X%F4h15 delta 304 zcmeC;Tf#TtNc|2*28LE<1_l-e1_nD;1_l`*?F^(, 2016 @@ -9,57 +9,56 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:31+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissões" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Regras" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Excluir" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nova ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Acesso entrada" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entradas de acesso" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" -msgstr "Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\"" +msgstr "" +"Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nenhum" @@ -75,36 +74,65 @@ msgstr "Editar ACLs" msgid "View ACLs" msgstr "Visualizar ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nova lista de controle de acesso para: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Apagar ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "listas de controle de acesso para: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permissões disponíveis" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permissões outorgadas" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permissões do papel \"%(role)s\" para \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "As permissões inativas foram herdadas de um objeto precedente." @@ -199,8 +227,10 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente." #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -223,8 +253,5 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo index 022af94d80b39166aef5493b7d078f21dcbd0f4d..48f65beb94c580e231a41c2e176aff4d65efe7c0 100644 GIT binary patch delta 89 zcmey&_L*%%2cxOEu7Rnpk%fYxsg;R^u7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl ror$iIp@N~Am67S>y^J0FK8bnhrHSc4>7xAjApglOOwp6qGaUf{bIlr_ delta 89 zcmey&_L*%%2cxN(uA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl roq?{Ag@S>(m9f#}y^I}`Lz$xZeG>E1OB2(9N{aI1gZwA2V>$`|ZM+(t diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po index 74e5cd928e..1287acded5 100644 --- a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACL-uri" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permisiuni" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Șterge" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Accesul insuficient." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nici unul" @@ -74,36 +73,65 @@ msgstr "Editați ACL-uri" msgid "View ACLs" msgstr "Vezi ACL-uri" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo index 9b8f899058d8d34a73f01d99dff9c9e179b6f66e..fe350c6fe13655063be889267c73ecabeec52bf5 100644 GIT binary patch delta 65 zcmZ3_zn*_XJu|Plu7Rnpk%fYxsg;Sv7|M3 Tsa6U_rIU48qBl=vkzxh_Hd+zS delta 65 zcmZ3_zn*_XJu|PFuA!l>k+Fh-k(H^@_$=N;gkok!A(}Fy9f& diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po index b1b5a0d552..ad3c8d2300 100644 --- a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,57 +9,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "СУДы" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Разрешения" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Роль" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Удалить" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Создать СУД" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Неполный доступ." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Элемент доступа" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Элементы доступа" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Пусто" @@ -75,36 +75,65 @@ msgstr "Редактировать СУДы" msgid "View ACLs" msgstr "Просмотр СУДов" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Новый СУД для: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Удалить СУД: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "СУДы для: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Доступные разрешения" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Предоставленные разрешения" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Права роли \"%(role)s\" для \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Отключенные права наследуются от родительского объекта." @@ -199,8 +228,10 @@ msgstr "Отключенные права наследуются от родит #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -223,8 +254,5 @@ msgstr "Отключенные права наследуются от родит #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo index 852ed45a5c9518a766d5e8215bea2eda74701804..d4e513b59b980b360513e40ec86671ec7344071d 100644 GIT binary patch delta 90 zcmbQqF_UA%D@IduT?12HBMSvXQ!5h-T>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA sIul(ZLj^-KDEfLDV9&`bn4&ieGqW)Q0AN-a+5i9m delta 90 zcmbQqF_UA%D@Ic@T|+}%BVz>vBP&xQT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRQ qIzw{>0}Crti^=j#U6Xe*Me+M2=B1Y=rUR7}=fnqlZWdx@X9NIYkr?3s diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po index 336dac372c..b9239d5249 100644 --- a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 08:58+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Pravice" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Pravice" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Nezadosten dostop" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Vstopna točka" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Vstopne točke" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Brez" @@ -74,36 +73,65 @@ msgstr "Uredi dostopne pravice" msgid "View ACLs" msgstr "Preglej dostopne pravice" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Dostopne pravice za %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo index aed8c992d9587d4e6dddb0c340c8eab0ddfa9438..ee68e11262f47b786d6b25900c2cdcda2a49a1ec 100644 GIT binary patch delta 87 zcmbQhGJ$2nc2jd*15;fi3k5?{D-#P{0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X p6I~-i1w%6{Bh!g*y7_$)^U_Nb(}A*OnekzMlgk*RCqHD=2LL7B8Q%Z^ delta 87 zcmbQhGJ$2nc2hH5LqlC7V+8{vD^nv~0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X p16?Bv1p{*{W21?0x+k|YM)CV3=B1Y=rUO-!WyXj3O@6>=001KD8QuT@ diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po index 5ec9a916c8..57756adcdb 100644 --- a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "None" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." #~ msgstr "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s." -#~ msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." -#~ msgstr "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgid "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." +#~ msgstr "" +#~ "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s." #~ msgid "Add new holder for: %s" #~ msgstr "add new holder for: %s" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo index 771d29ca9b58d7610a8462336950520874299ca9..78ae5724d4df8467fcb005e17e3cde0dd995b219 100644 GIT binary patch delta 67 zcmZo;Z)4xEmXX(7*T7WQ$U?!;)XKzS@-9Yckcf${k)eX2nU#_07|M3 Vsa6VA8S&13lhc@@CtqaR3IJUo6Vm_y delta 67 zcmZo;Z)4xEmXX&?*U(Vc$XLO^$ja1c@-9Yckcfe_%LGUA>6CSPFM1^`<36Vd[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/$', + APIObjectACLListView.as_view(), name='accesscontrollist-list' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/$', + APIObjectACLView.as_view(), name='accesscontrollist-detail' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/permissions/$', + APIObjectACLPermissionListView.as_view(), name='accesscontrollist-permission-list' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/permissions/(?P\d+)/$', + APIObjectACLPermissionView.as_view(), name='accesscontrollist-permission-detail' + ), +] diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index cacbca3e17..4e6747b432 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -140,7 +140,8 @@ class ACLListView(SingleObjectListView): def get_queryset(self): return AccessControlList.objects.filter( - content_type=self.object_content_type, object_id=self.content_object.pk + content_type=self.object_content_type, + object_id=self.content_object.pk ) diff --git a/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo index 624326d04b3ae568e8e9a2ef5d91d8080824d5b1..bd541a293fa004f3f0a8fec9186726c34010f2cd 100644 GIT binary patch delta 719 zcmYMyziU%b7{>88F*nAV+9t7Tjf9|>fOsJZNgL8Z;!p=8brf8@h=eSuP5eP{xPsu| zCKrd`zu+Lv5W9#=aT5f$1XJkX;vg;}i1hoED;{|7=bV$9_q^wvJI;Jh`(M+sS4KM* z#vi;$Od~vK_oHS8zlXX-6{&^QROm@U8&UIB zp6foMXkMDQ9x zQ5J=e!oos0Bq@$yCszIeHrWM#G-4WU#7>ZW-#QM=efG`nyf;7Y%GhsOJTu~(iq=7I zr^hRl>c%USwjNXJ32tCD{=i|}!79Af@9*#_ab@MhxPh(2X>33TYp@TW;~*xKT2zxf zykcMm$)S9V;}%N7pV);ZJ${T*_%AwmrsD=CrHETm@^zvtydU{Qjba8r;1I52lKSeD zhjVs&i3Tr@$Sx}lQFeNv;|$qk{2ex8zm7kmoZK|ZPK%htEi`c(*{M22S=bR$N?l_u z_0tJ8 zWvFHy$quBY%AaCu6-jdG$=S=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "صلاحيات غير كافية" @@ -29,7 +31,7 @@ msgstr "صلاحيات غير كافية" msgid "You don't have enough permissions for this operation." msgstr "ليس لديك صلاحيات كافية لهذه العملية." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "لم يتم العثور على الصفحة" @@ -37,14 +39,14 @@ msgstr "لم يتم العثور على الصفحة" msgid "Sorry, but the requested page could not be found." msgstr "عفواً، لا يمكن العثور على الصفحة المطلوبة." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." msgstr "" #: templates/500.html:14 @@ -53,7 +55,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +68,47 @@ msgstr "الاصدار" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "مجهول" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "تفاصيل المستخدم" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "الإجراءات" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +126,10 @@ msgstr "" msgid "Create" msgstr "انشاء" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +144,39 @@ msgstr "تأكيد حذف" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "نعم" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "لا" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "مطلوب" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "حفظ" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "ارسال" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "إلغاء" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +193,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "معرف" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "البحث" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -227,7 +237,9 @@ msgstr "First time login" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "You have just finished installing Mayan EDMS, congratulations!" +msgstr "" +"You have just finished installing Mayan EDMS, " +"congratulations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +264,11 @@ msgstr "Password: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Be sure to change the password to increase security and to disable this message." +msgstr "" +"Be sure to change the password to increase security and to disable this " +"message." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo index 34c948f58e5faec292720230e7083e8c7e6eb305..d3eea4becfd6ecb62ecfc775bdcfca2145afb966 100644 GIT binary patch delta 597 zcmXZZKS%;m9Ki9XKGQ3&)c#l*b&ECFL7J8bVPjB`(C82sh>N&XQ^D=gAL42bS|c1> z8k<^Ln}Yt((A47E)c1GYkNdsPy{Ek2@4b6WeJ9=bw7ynEhMXZ^$T{*f#6ZNuO2yDX z15;SXEDm5h_>-bM~u18q!W9@kO!X`>v-MQPw1Yj}eR{6I~8^~1{n_A$71|70xrF~TStNQ{$G zTtZGEF-ppY5)^5U vxmv1tYdR|{CA(O#3M+oA^*MLc<1F{A;B2csv!A{0DX zA!#oyh2qhRt(GdKTIfYRO+ZhIC-LSV;H}@cj+34J?7R){z1g`={B2#iOh!K{#xrIo z^McvU{8Gb>p(9GwqlXVLgA@1~>#$PLf6Rh_!jwcwyGkk&P$hD#(wMs<^ z#848%u?O32d=RD3kaY|jSx=!P3Q!tcLoT(!Z5%83flXYYG*Y6v_#U_L6UM2pUXi_n zz!*y5x0u8Y?8Z&|{umorU*QPepfsMLy2Sg@#bHe0B1)cbC>z^FY2Y7r;VBMKU)}N` zJIatn5)NSrN6?-^7$+1alB6xNV6chsSe}Hdy8`wxM81d|tu)BzR&C6u%=_WpKd>3q z#FVpoY=hDiy{T5aeu$5DVv$r$gEN~e1%Mayan EDMS, " "congratulations!" -msgstr "Вие приключихте инсталирането на Mayan EDMS, поздравления!" +msgstr "" +"Вие приключихте инсталирането на Mayan EDMS, поздравления!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +262,11 @@ msgstr "Парола: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Моля променете паролата, за да повишите нивото на сигурност и да деактивирате това съобщение." +msgstr "" +"Моля променете паролата, за да повишите нивото на сигурност и да " +"деактивирате това съобщение." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo index 8c10fab49a65957031360465bed8777bc4428d36..6dced26e8a07c690b7fdb3a57f8d8b92296c2a70 100644 GIT binary patch delta 727 zcmYk(y-!n77{~FawS|Hrw7du++BC6^nkH@20%Q zPB*ZS5GI2g+M%!*{stoxFAFSgh5=*3!1o8o#FIYfbDncg&$;(JzhY}KZ$B1VG}<*6 zCwPP=p*H-0Dg5Z>zo8CpU>3i-{5NW!Kd2YJ&L#{ki3Plk5AiWZa2<~Wp4lb? zZMaUS2Mv6NTP{zro4!1QF)X6iJ-}|9bn`E;jofqjC*)_VbhmH~^?^U!{5JM-zU?tc z;xX!=0e05`DZ0CuLCw#i*3BVHZ3VUAXS{=7a16JRpWWb3s-jBEH=Z?>qKk;0r{+}B4tHi&iTi~*+ozRP_?iUG_PcPa@sOffkG$=iN^ZaGC zW~FLXoK@L4PCi^%R2BN$das delta 789 zcmX}q&r1|x9LMozf7!ZPt7G}2A23iDAp1I*wk_Tybl8MA8U zco-y6L28%=CUFy0@HJk=cQ(I=n)m<%JhE{Yf9fReL)E*2dht8R5OW`M_y8wy9n;Kj z4tY3XwO>$$54olBGtS{p8&6YBJ1~n5mQmxL;W=Eh`7Jz6ykp}J$Ynlq)6VXr7Wzkd z<~MPwXiG9Uh?h|ljU$(t=5`ZjZT=PZ5WhizQ zIOeQP=&aQ`n~U*{SlWG3S}I1Bdh;Zajpg!Q5P0FR>xYG0==s-uKQlGy-7Bp`^{7_$ z#)?a&f*bll-t&jOFmS`5;O85K)Mn#TY9>2Ttd^IHWrjSiKODW)ywNri?-`?hWj=Ci R?n3QpRIf%0%Z-)v?q9jUQ~dw{ diff --git a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po index 7121197157..39fc62870a 100644 --- a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po @@ -1,27 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Nedovoljno dozvola" @@ -29,7 +31,7 @@ msgstr "Nedovoljno dozvola" msgid "You don't have enough permissions for this operation." msgstr "Nemate odgovarajuca prava za ovu operaciju." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Stranica nije pronađena" @@ -37,14 +39,14 @@ msgstr "Stranica nije pronađena" msgid "Sorry, but the requested page could not be found." msgstr "Žao nam je, ali tražena stranica ne može biti pronađena." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." msgstr "" #: templates/500.html:14 @@ -53,7 +55,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +68,47 @@ msgstr "Verzija" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimni" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalji o korisniku" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Akcije" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +126,10 @@ msgstr "" msgid "Create" msgstr "Kreirati" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +144,39 @@ msgstr "Potvrditi brisanje" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Da" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Ne" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "potrebno" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Sačuvati" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Podnijeti" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Otkazati" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +193,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifikator" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Pretraga" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Prijava" @@ -227,7 +237,8 @@ msgstr "Prijava - prvi put" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Upravo ste završili instalaciju Mayan EDMS, čestitamo!" +msgstr "" +"Upravo ste završili instalaciju Mayan EDMS, čestitamo!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +263,11 @@ msgstr "Pasvord: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje prikazivanje ove poruke." +msgstr "" +"Ne zaboravite promijeniti pasvord da pojačate sigurnost i onemogućite dalje " +"prikazivanje ove poruke." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo index 177a1872ad647ef33291e9d258dad26b64e7c0e4..1b6283487cf699460a1e72912790a6dd6a988b7c 100644 GIT binary patch delta 233 zcmdnM+RR#iPl#nI0}!wQu?!IV05LZZ*8njHtN>zmAYKW?oIt!0h*^PnHxRP`@j)O4 z$sYsa9!3U+b3mF4h@+VxW~KpYkbEwX2I(t>@~eR~P&vq2AUScWDx<-ZyhGteqrjv6RD|vhp d^U_Nb(}B_{iIbl&Mo;!(^5F-N0IZPl#nI0}!wSu?!H005LZZ_W&^n>;Phr+)g0o1mc50%nHP(ftUq|F9IGD7{~E<&DS`b1@1d$L4 zZPq0tg*q5s+`1G5Nd$EYx=VB_I@l>f3HtuF>1E#ey!+0~zR&wSGn3_y%My!)nUjWA zPv1g+=P{-Q^8pqL#6SxK+Vm3ZO3umzdU*dku;-PJL1hddaJ>Q49co}Pq zNtlFt!*g86g?TK-_n421xE+^}!xZpunlHvYtVRXUh@E&8bMOIf#2M6cudx!}Vg`Og zi}lS91_W(>p(0zsDzpe!5r;VKzzFKTbI2{m!L=Ai4s(rD9o|4)Pr382@D{%pPyrt& zeFbnp?2^QmGV!RE)8;+6;8UI&A%zIJgmYB)PilOK)X;I zNucf@M`AJ)sLVXV2tLgv|C;#1g#O?=-ou}$jNGJPB{+kM_zfzRMdWc8R-sDO>3RzF za`mFV0tbh18WlhR4^ydhkP6JJ`m1TTVY6Sz~sL@|n9|`YE9<)l1F%u4i!v0VwQr}P$q*-nD$Y|iiust{uw?~JD zBmP!r#O}BK%~ze_cx*80KhW>E!^6=5I~K1!KQxe>vh2JzdoX&%jye(l1*fN}Ir+yr fo$AXe$w-a+e4ea-Atfhs@1|Pv+C9l<`AdHRildB` delta 1455 zcmYk+OKeP09LMo9RV_mYRa)=MXg#N9rrO33q^Wp>n6ycyHg(&cwj(-iW-gIN(uGG5 z1XGV#G!Y3af>~Hf*dP+m1yZaeLeiZeBJusr%)-f>`?>d=d+zz)|2cO?ms|=Ce=0A& zWGIc)`P8>QW47a&2^=VQi;bCx_plTn;3RyAlko}q@ioTrBd*6<1}((>Sc0ceMOYeGg?dmB72$GRhK*Q_9jN}}$XIh4r{V?VXGS?h@Fvc}cc}Zuk)Qd& z;ROCg1%8Y)&R~8s!buz6M7`Nx)Pn=$w+82-9?(>92WoX%upZlRH=aR;nlZe?GJZk5 z@d#;9`!%G=+`t)l8;3RFLryyJB{pLnvuo`RqXt|-y3BQ~z}vVA9~Jt?3+=y9sV*za zXP^d`aJ>PQi4NpvdN?SJlD>a{Kh~ZZZVvq$=`&LxsalD9oP?`CL^Kdfh zQ^3`zlpaC4%sE_%qo}2OTJRMXas3|km5eF>1DsSbS`nQ@mM*uEAorHbbwW`<+F1HJ zR8~{<#i%UJlY6+9KqW*~Hndk(P!+g>(buHxstnKJpf}M*(`G8CHc*vjmAX7;E-IBO zN+ogUQmJb#oq~6$QL2ivsHOS8klb807oe84R#UCvWGyvJT}0J}`M>CoNvYI&Dz!@U z?CkO4tgm?6K)=m2mi)=YN{1>2-7f2-?Vy`-J=^VgHr1cb-Y>28l{($la}x)$uO?Ob z>Kj6lNGMw8grl+gXehik9QMa|hg$5RL^?5$3^g-2=0wAhhETXJ6pc91NG#ltS?I5H zcDY_(!c99(wl8(SIve`)*PWaD*QIMa6GNGHzngjH-#cxmo9sR4_VS!=+tIuw8=Nw~ zXkx49ro8ONvVbqs8aNwlvc0K9PmguF52m{MoSoLDhHRp%&nBH->!oZm>196$;=Yo6 K?3wE6zyASZ^QrIv diff --git a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po index 3af714c734..2e159f7bca 100644 --- a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Berny , 2015 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:57+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Erscheinungsbild" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Unzureichende Berechtigungen" @@ -30,7 +32,7 @@ msgstr "Unzureichende Berechtigungen" msgid "You don't have enough permissions for this operation." msgstr "Sie haben unzureichende Berechtigungen für diesen Vorgang." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -38,23 +40,27 @@ msgstr "Seite nicht gefunden" msgid "Sorry, but the requested page could not be found." msgstr "Die angeforderte Seite konnte leider nicht gefunden werden" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Serverfehler" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Es kam zu einem Fehler. Der Fehler wurde per E-Mail and die Administratoren " +"gemeldet und sollte bald behoben werden. Vielen Dank für Ihre Geduld." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung referenzieren: " +msgstr "" +"Wenn Sie Hilfe brauchen, können Sie den Fehler über folgende Kennung " +"referenzieren: " -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Über" @@ -67,47 +73,47 @@ msgstr "Version" msgid "Build number: %(build_number)s" msgstr "Build Nummer: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Veröffentlicht unter der Apache 2.0 Lizenz" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Navigation ein-/ausschalten" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "Profil" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonymer Benutzer" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Benutzerdetails" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Erfolg" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Information" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Warnung" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Fehler" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Aktionen" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Ausklappmenü ein-/ausschalten" @@ -125,6 +131,10 @@ msgstr "%(object)s bearbeiten" msgid "Create" msgstr "Erstellen" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +149,39 @@ msgstr "Löschen bestätigen" msgid "Delete: %(object)s?" msgstr "%(object)s löschen?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Ja" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nein" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "erforderlich" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Speichern" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Absenden" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Abbrechen" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Kein Ergebnis" @@ -180,7 +190,9 @@ msgstr "Kein Ergebnis" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %(total_pages)s)" +msgstr "" +"Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +200,38 @@ msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %( msgid "Total: %(total)s" msgstr "Gesamt: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Bezeichner" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Start" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Erste Schritte" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Bevor Mayan EDMS voll genutzt werden kann, muss folgendes passieren:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Begriffe durch Leerzeichen getrennt" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Suche" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Erweitert" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -228,7 +244,9 @@ msgstr "Erstanmeldung" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Herzlichen Glückwunsch! Sie haben die Installation von Mayan EDMS erfolgreich abgeschlossen. " +msgstr "" +"Herzlichen Glückwunsch! Sie haben die Installation von Mayan EDMS erfolgreich abgeschlossen. " #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +271,11 @@ msgstr "Passwort: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese Nachricht zu deaktivieren." +msgstr "" +"Bitte ändern Sie das Passwort, um die Sicherheit zu erhöhen und diese " +"Nachricht zu deaktivieren." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Anmelden" diff --git a/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo index 21eaaf8a16f9acc1b4baa8fa1e5f6db91cbca6d9..6584aef737d74dce288a9035d2a476350266914c 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m5JrV>5lu8 delta 23 ecmeyx^owai7q6MFp`oskv4Vk-m8sFh>5l\n" "Language-Team: LANGUAGE \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +29,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,7 +37,7 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" @@ -53,7 +53,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +66,47 @@ msgstr "" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +124,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +142,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +191,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "" @@ -254,7 +262,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo index 4a86c3f7e34b1f77549c2cb2716cf8be54bb0417..93c5a969a7f91a968708ff10c92c0becc2d8f0f0 100644 GIT binary patch delta 1713 zcmYk*U1%It7{>9lX_`&aY_^S7Yt!nqNsVa|lWeo5NiQ@-q=^@XrVU7`I@vv&4DRlP zncajSvM8b`3gRGwSZ%9#RlR6Hp%+pK78NA*M*KjfP_%v_qToeu{6Cv@^|0^!=A51L z^`4pYdoFfWzUydw*-*xaUBuOxF%RImO=ue%~5XD@i?+6^9X8%7JIOS{LE`y_TgKo=RQT|FzcuV zet~WHW6i&ipNWyKVQfJ?e+bon7@uZ-GsTT|@HuY7D>#dPq6VHKEn4vjRL3V#6Fpa} zzk)igH!zKFqK@z@WC+vC?q1+nQ>YAFBrR&cgcaSa*BZV=W#S4xgumjwct5lC;)|%~ zFCb%^HM|Kw!@Kb+YJ%>>#zObwcIqkIiAS&lGdPG#3G%NFZ_}VNI)@tgBjjh+xtzdn zk+IDf=b{PkLuKqFYM=r(;3-rFPopw*9<_iAxF0X0j^H}>V?&bs>%l=r)5N2w0VYtX zpQ+WesE$jhFXi!C{e4vb5Aa#Mgg4?eo%QxxJdRJH#`~I!-l1PmncP-kHtlRDl5Nw2 zI?Dri07r2OA4M(jJ>)1&7jX-rK{b$yp4Vay68duVIqxO3AT8z&LYvr4s0?|AhQ$D@avPQ|AKKj-CbbiFCv=?0kv zC+la*1!fJ+jIA~-y7M-S2I7;e&&RuBjYYR$qd$_}Nxx`jJ-h5=ZOQfWVe~`uwZ!Pa zP2pTkBmj%v~>R0GB%!0t!`>vZipXq=khl2qm{PTy?-~DakGA4W<2(nv7uLT z9e1Uib^D#gvdvm&!Ohs9zC||WIyNlX+Aa$=>$yc$^G@i^mpztm>pQIuJs$NX)|#em zz-FW068G#qTn;mCP~WW|np(@^+L?K;=!Q9x?&`L>iJ*(RD7p&j``bp)i_iJI?(DqpbDrm%J@0$S!##2e_v+qeiHU_CxXAHKkGe2ZJLgNr)w0M_AA)b%H@ z0ngw%V~XZd^$YXZ!im?o3_oBa{=zQwvI8IqbsO|?_n=KMJ@2L>K9a3zT+VNz%dNd2d3sIo}+yyQFq)( z8T5H;)y}GYs7l4Kc!pXa#ggk zhVER+Xv03DozTr#gp$!v8`LU|1W{DK28lIE^n%C_?MOfr`&*eR=E=cec99mMq;r@e1jE@4-LlMIbWMTiALg^t>~tqM66Wu9jS5S{%b)e<4if(e;ZCE zQ`wxmxnbU|2@Jcbz#ePw{N3ENlgZ|*8>g7fWOJ6CCmSc5FFgqidV)LIKApDn
! R^RvmElXbr~M%_@;<-fQ8oZkQd diff --git a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po index c98b7266bd..168d72f890 100644 --- a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:41+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -18,11 +18,11 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Apariencia" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permisos insuficientes" @@ -30,7 +30,7 @@ msgstr "Permisos insuficientes" msgid "You don't have enough permissions for this operation." msgstr "No tienes suficientes permisos para esta operación" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Página no encontrada" @@ -38,7 +38,7 @@ msgstr "Página no encontrada" msgid "Sorry, but the requested page could not be found." msgstr "Lo sentimos, la página solicitada no pudo ser encontrada" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Error de servidor" @@ -52,9 +52,9 @@ msgstr "Ha habido un error. Se ha informado a los administradores del sitio vía msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "" +msgstr "Si necesita ayuda, puede hacer referencia a este error mediante el siguiente identificador:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Sobre" @@ -67,47 +67,47 @@ msgstr "Versión" msgid "Build number: %(build_number)s" msgstr "Número de compilación: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Liberado bajo la licencia Apache 2.0 License" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Todos los derechos reservados © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Activar/Desactivar navegación" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "Perfil" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anónimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalles del usuario" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Exitoso" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Información" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Advertencia" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Error" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acciones" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Alternar desplegable" @@ -125,6 +125,10 @@ msgstr "Editar: %(object)s" msgid "Create" msgstr "Crear" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "Ver detalles" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +143,39 @@ msgstr "Confirmar eliminación" msgid "Delete: %(object)s?" msgstr "¿Borrar: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Sí" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "No" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "requerido" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Guardar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Enviar" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Cancelar" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Ningún resultado" @@ -188,34 +192,38 @@ msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(t msgid "Total: %(total)s" msgstr "Total: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificador" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "inicio" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "Tablero" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniciando" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Antes de comenzar a utilizar Mayan EDMS usted necesita lo siguiente:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Términos separados por espacios" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "Buscar páginas " -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Búsqueda" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avanzada" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "Buscar documentos" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Iniciar sesión" @@ -255,7 +263,7 @@ msgid "" "message." msgstr "Asegúrese de cambiar su contraseña para aumentar la seguridad y para desactivar este mensaje" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Entrar" diff --git a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo index db920b01d7947e605fffeb33c84d30cce58d0fd4..475eac79286f28ad7c3be1df88d1982d47e91c9c 100644 GIT binary patch delta 872 zcmYk)Pe>GD7{~EvbpN#K`nOHf(#=Q{TXNUkYBw*2f`X{jv5?j%ky45hqC+cDp1cj6 zlOm+>pv=LbW0xSPF6jnK(5X6iurBHMw+zz5KJ%IPo!R%#^Uky8U$Mfs#=uh}I>{sC zDaY(I4peX<{$LRQViFnPNSaBVlCdmUR?B_uVFK759{#*9y2Rg$?y1w zRXnH*n6+RlYT|zE!Ypb{S5fa>Lw+{TMHAk|ZhV9%@HO(Y&s?;?FPOxV->zlwF6Orw zH(L1svIZN%436LgKEwm~5tpdWHrCLd;!pCX?|mGl{RB1PC)7f>umQj0Vf^j)M;Wx0 z`K?7a*pHON#<2}=V+@ylpQ8qRgTwd^HBp4~IF9vLhiTMAL)eW|*p5r6|G)HI$HI9! z-ufLos8Uz(7GqlvYJwDA#4M^J%cz}~kb;z}2NorDwujUp%EyQr<0#4N< zvkp>ctI!U#d#b!2o!qfDYb151|A#83(2iARg+63ePP^7Zb*u-;CNfS|liHvSdKW5V z&WkGnC%7;@H+#?BtUBqg1%E`(Ci*go)VX*vlS^mal~9{{(uq_uo;;IFW!(3n2Q_2) n`I&|M%=KLSM&2C^U-n*wFF9T?a?6RV7B`AsarNtC2K>1Po@G>= delta 1051 zcmYk)Uq}=|9Ki8eyE`vaOU*1z+swbj!QGh>m-N50Ah5sm_hr*f1h33HA%eJyI*WSh z@VOx9R5Y`TP@?Fur+REoA$!YS>Lux+puWF#g@&E^%#yZrCPBskA|{)g;HMJgZbEjE3p%g;2HGcm^(j(#f)cgE53Kn_Z+#@YZ_Vj9X8@elui9YE>+D(B+yz6 zVKbJqzB=blT){#nuA(e-2W7|ONYLsfN@k|96ThP$ck#L)5Hei=KaUCle-*tV0q)NTTD*S?6>JLphdift>70QQ0cmUf`7QBU9 z@E)$l36%BTV6u_UCptCw7v%#rG-5N&4%~)y*zevSM){YIu>q%10-8rzZ~>3u50p&p zUA2^vhe)EFB4>>tWdBQP7Udk2O6R{KAFg-D#OLh9MA^x5k>4Xl7B6yoO07fL6l*%! z+=R7MVsgq_+G@3LX(0crgenJ1cDh_7?fhov0LeW`zoc3YrX031YDIQ2uhQ@wyd1N$ z#U8_G>bJUVGj8`=16IQBHWT(hEUu0ZUWoN3)XBI#V0POHtG6$nHVT^3?cT3NZGliI z5N&=bteA`kBt; zQn{h*eSge|&gc=H(NokhQ;+LOotYhFHl-(XLuT%#ex)`0qsqh9smFU diff --git a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po index 2d6241282f..7f7974322d 100644 --- a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "مجوز ناکافی" @@ -29,7 +30,7 @@ msgstr "مجوز ناکافی" msgid "You don't have enough permissions for this operation." msgstr "مجوزهای لازم برای انجام این عملیات را ندارید." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "صفحه پیدا نشد." @@ -37,14 +38,14 @@ msgstr "صفحه پیدا نشد." msgid "Sorry, but the requested page could not be found." msgstr "متاسفانه صفحه درخواستی پیدا نشد." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." msgstr "" #: templates/500.html:14 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "درباره" @@ -66,47 +67,47 @@ msgstr "نسخه" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "تحت لیسانس Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "کپی رایت و کپی" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "ناشناس" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "جزئیات کاربر" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "عملیات" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "ویرایش : %(object)s" msgid "Create" msgstr "ایجاد" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "تائید حذف" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "بلی" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "خیر" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "الزامی" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "ذخیره" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "ارسال" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "لغو" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "بی جواب و یا بی جواب" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "مشخصه Identifier" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "خانه" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "عبارات جداکننده فضا" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "جستجو" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "لاگین" @@ -227,7 +236,9 @@ msgstr "دفعه اول لاگین " msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "You have just finished installing Mayan EDMS, congratulations!" +msgstr "" +"You have just finished installing Mayan EDMS, " +"congratulations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -254,7 +265,7 @@ msgid "" "message." msgstr "برای امنیت بیشتر پسورد خود را تغییر دهید" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo index 529f22eb4428b5cc6f186b3a34de4f6e2db19350..d19eb5f2ae2df5cb27b28e150a2dec2ff349da91 100644 GIT binary patch delta 1286 zcmX}rO-K}B9LMozY;$#Wec9ejQ>V4m)UDmo?PZI?E)^M-N(4oQEd<%Y zi?rAwi$HqA4k`m3s$1Z(L#HArkmz7hP~agt^!;s9fA-nW^Pib#=6Rm~%tF(HaPC9M zH*Sb7+8WwR%a}cQdh?qDpfOSL1D5fitL`nnPXp6;;ZgsM7d@ ze@ha=^W+U)J{DyEb>UqO=)p6%51*q}?xP;svJzAcYrWjY4sr(@@g%YalSAES6g6(# z%O9gdKI`S5Pz(81!T#T;Q%r&M_CG?c=oP9)?@%|2^2SARH)^LcsFhwpP4qhM!V%QC zIq!TugQ<{dqiF#et5`?tq}A~JLNKAi1eDa#^ge8$=^^?w6_>T2A#*Xw{Uf@M$P#;U=OE5u$0kHY)L=9`)`hs8(T@!l*Ar zJEBik(MnT^6?#Whp5;miO6X4eW-WK1IBU7z{Y{qJSQ@f|TO!eT#Mx@c;)$+p`JI8f zPL6a%oR}TkoN(gpQ6kWj%w!||>Ev+cTr!(VC+yzT>49`Mg_&e}D3zZM^p*D{hX*et g2L}@NnRMPNJLV3RbriYxf^RH$tn!4FFR7mY1741J1^@s6 delta 1477 zcmY+@OKeP09LMo9R9iz!JzMp-6oYog%#=1tP^qMqCZuh;u;Ch4J38&uy>}#5vq3_d zAVVS&EWFYP!K4uj>7pAe5-dcpX(VFNosC4|`#|nIjl{ks>@ePLYJs!cYxEo^(T8pQ#95129U&U&? ziH*kO&7+{h2VBYzpK&G5;9@Li^m<&0yfV8`@Au&%Jc6ugj-xi>U=NPs0-VBHe1{tU z12^Lg&S8DCoNZ}fEo!0$)DE{`1Y2K4yZ4A)LfsY-IHY%%cY0L-l)%3grYg;#<@Sf1^?ssxqby>rfGB zMn$d*)h~-m@mW;FFIN$NEpUSutZi=N85|GV_2fYVBB%}Q#x6XFiog}D!2&9`4}$h% zY@+=d*Wpjp{9)p*c~+ptS&N9jUL<*u#64(XHt2X2b+TJ{7hjCw!{|Z?sMPUspiZLyfG0(%43gP>Fsi%qxnyvSO&L zGdt`QBjvf!vQazbSe`R#ySDF~w0y@M_KLSEHiaszla6nvGsRbxwV|q(Xd)3!He2yz z+sP-!1ec#&C zVY@?AXMfIfTrW0~b)C`7x!6G3AIzPIrLx0&3r*qP!dUp|!ftzHAZHIaZPqEb_&pq* zQ_-GE, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Apparence" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Droits insuffisants" @@ -30,7 +31,7 @@ msgstr "Droits insuffisants" msgid "You don't have enough permissions for this operation." msgstr "Vous n'avez pas les permissions requises pour cette opération." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Page non trouvée" @@ -38,23 +39,28 @@ msgstr "Page non trouvée" msgid "Sorry, but the requested page could not be found." msgstr "Désolé, la page demandée n'a pu être trouvée." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Erreur du serveur" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Une erreur vient de se produire. Elle a été signalée aux administrateurs du site par courriel et devrait être résolue rapidement. Merci de votre patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Une erreur vient de se produire. Elle a été signalée aux administrateurs du " +"site par courriel et devrait être résolue rapidement. Merci de votre " +"patience." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur grâce à l'identifiant suivant :" +msgstr "" +"Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur " +"grâce à l'identifiant suivant :" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "A propos" @@ -67,47 +73,47 @@ msgstr "Version" msgid "Build number: %(build_number)s" msgstr "Numéro de build : %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Publié sous licence Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Activer la navigation" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonyme" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Détails de l'utilisateur" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succès de l'opération" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Information" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Alerte" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Erreur" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Actions" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Activer la liste déroulante" @@ -125,6 +131,10 @@ msgstr "Modifie r: %(object)s" msgid "Create" msgstr "Créer" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +149,39 @@ msgstr "Confirmer la suppression" msgid "Delete: %(object)s?" msgstr "Supprimer : %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Oui" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Non" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "Requis" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Enregistrer" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Soumettre" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Annuler" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Pas de résultats" @@ -180,7 +190,9 @@ msgstr "Pas de résultats" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %(total_pages)s)" +msgstr "" +"Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +200,40 @@ msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %( msgid "Total: %(total)s" msgstr "Total : %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifiant" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Accueil" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Démarrage" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont nécessaires :" +msgstr "" +"Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont " +"nécessaires :" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Termes séparés par des espaces" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Recherche" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avancé" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Connexion" @@ -228,11 +246,14 @@ msgstr "Première connexion" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Vous venez de finaliser l'installation de Mayan EDMS, félicitations!" +msgstr "" +"Vous venez de finaliser l'installation de Mayan EDMS, " +"félicitations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" -msgstr "Connectez-vous en utilisant les informations d'identification suivantes :" +msgstr "" +"Connectez-vous en utilisant les informations d'identification suivantes :" #: templates/appearance/login.html:26 #, python-format @@ -253,9 +274,11 @@ msgstr "Mot de passe : %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Assurez-vous de modifier votre mot de passe pour accroître la sécurité et pour ne plus avoir ce message." +msgstr "" +"Assurez-vous de modifier votre mot de passe pour accroître la sécurité et " +"pour ne plus avoir ce message." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Connexion" diff --git a/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo index 7a32ce29ecefd4c976e373aa051d1dbb35ad3afd..459ab876b6ef14847d9c68738f845748ae7652b0 100644 GIT binary patch delta 227 zcmeywx{tN~o)F7a1|VPuVi_O~0b*_-?g3&D*a5^Kxt&1F3B(71m=%am12GE_Uj$+{ zAif5~Aa!?vxSx@M;VF>j0^(981_p5;-2kNdfb(dPnE?PMt|nXn delta 279 zcmdnT`iZsvo)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~}2AZ7*P+d#|$#1Da( z4TzrsF%J;G1!9o;UqIZ?$iTn^#9To3Bqjz1aUeYxNb>>dtw0)RjvB)eAOmFiDIhHd zq%Q+$kO8lNG*B;?%`tJR2Ty2mYLP-pYDr>dPVvM$p}c0ghK9OE#tH^TR;EUi?HHwj zA_m5~MurMThE@hM0TW##Lj^-KDPHL$r zlwym;tkBk6mG!@%)$F;<0N+CGdzr|xDUhJoP}Me`_ExM zUdB46Gjab9Q&`M}Y21l(Sbz&yhM$qcSj?vJY}|?^s0GwuH#T7|j$;WvMBVoSt8f-K z;YYN2zWGFl#hPW*%D!PW{>J@S&a!p=Br;@9VIKA%hl%my;t=Zkls`U=?~0ROXgYHO}NIG8dKV zLezpPumNjP^IY(~l2860FfhyjbC`dq2jo$(UJRlp8p8uPftp|z_0hdTE%Y5~2ffE* z_!pJYqpY3^nOd3_rt&B%X-%{e)nCDL*S4Sfr8K>j9;nr8VuezwE#=Z0X&a#hDN7sC zKxemqqU@@aDzidaQ%S=#hnCV?C{$O~L~o}Mp`Ju+WOO)|j3=T_cf5Zfk&NSLEHM;MKev1GI$|S( hW3j=3s56vI|FJK6S95<@-ub{S%Uj70S?O@W+yDQ1d0YSh delta 1447 zcmYk+T}YEr9LMqVl=-sqr8l#*dbG^SHs?$;i;U``SF$j{DDq)Gn6bIBJ>GQDZqg_U zj1^Q+&_xyzQ4ET_sEdLkh@cmUD6b5Hz?<;0==+<4JnZaq&hza2&w2jmJbPUcyTsglt+2S%)!T4fKRayUtkfwK_7m=4*ZT=Fu)I7jok(F2PAG!+b_p;}YbO*^Ij0j-}Xv%xQX13vux<#&Isb#0q?m z8vhg5;3UpsezTZmXUWdK z$4v1xjDJuIKT8_tGrze)qYFn-Pxc2DxP<(!!Aews9Xa=+cIPlQV;3I8i^x#(4ezs! zKTvT-NQ1`TMBTrW>p#SlZakrJ9G_$M958An{Z1r?@lXTL;8Hw?^>`bVk$0#k{(wsL zPh5mn@$}Y}qcYKoOkvtl@%9yye+B5|f>Pd%hwvm4!;E1$zDDicIIhA8oP~u9QpV<@ z0#@Myti?KPMP;xDHU3=AOE{l?x`g~|Wp}vHfDcel@C_AkD(7FkOuvAQV{UUDHPKx> zf@7$FWvqs#sljy^Ld7|T*~5uicpNukGDTwtjeDq6|3bDddypWTowaIE6i8{-+o7_7 zsy9Yu^)%VwdH@waRokGmqQ&TS)OPD_(l)51w4aq!rAdcLPt`)ziC1Zw#whcGzMR6zW+DSL=BplD}wLLcxO=fNs)LI30uj@Jek<7Eg3ahxq-`MC6 zHQB*XTXQHqUR2r9;ty{2hc?=c!M3L6`XI%(-${D@&V)0Nj5uB_(PkfT65*J=(}~6- zZql{4M%535bNxUxyuB~V6oGIox-GrI*O|WLJ4%#+zCowYZL>2IzTeht)|&Y|Z^)|X pa1yb||Haz9j-8A}5+m+N^>U!>n2^xOf@O%Ip8`UfZBruzT@ diff --git a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po index 52c931c5b5..116d3b0482 100644 --- a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-09-24 10:35+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Aspetto" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permessi insufficienti" @@ -30,7 +31,7 @@ msgstr "Permessi insufficienti" msgid "You don't have enough permissions for this operation." msgstr "Non hai i permessi per effettuare questa operazione." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina non trovata" @@ -38,23 +39,27 @@ msgstr "Pagina non trovata" msgid "Sorry, but the requested page could not be found." msgstr "Scusa ma la pagina richiesta non è disponibile" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Errore del server" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "C'è stato un errore. Questo è stato riportato all'amministratore del sito via e-mail e dovrebbe essere risolto presto. Grazie per la pazienza.." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"C'è stato un errore. Questo è stato riportato all'amministratore del sito " +"via e-mail e dovrebbe essere risolto presto. Grazie per la pazienza.." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Se hai bisogno di assistenza, ti puoi riferire a questo errore con questo numero:" +msgstr "" +"Se hai bisogno di assistenza, ti puoi riferire a questo errore con questo " +"numero:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informazioni" @@ -67,47 +72,47 @@ msgstr "Versione" msgid "Build number: %(build_number)s" msgstr "Build numbero: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Rilasciato sotto la licenza Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Cambia navigazione" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Dettagli utente" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Riuscito" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informazione" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Attenzione" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Errore" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Azioni " -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Apri dropdown" @@ -125,6 +130,10 @@ msgstr "Modifica: %(object)s" msgid "Create" msgstr "Crea" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +148,39 @@ msgstr "Conferma la cancellazione" msgid "Delete: %(object)s?" msgstr "Cancella: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Si" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "No" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "richiesto" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Salva" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Conferma" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Annullare" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Nessun risultato" @@ -180,7 +189,9 @@ msgstr "Nessun risultato" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di %(total_pages)s)" +msgstr "" +"Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +199,38 @@ msgstr "Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di %(t msgid "Total: %(total)s" msgstr "Totale: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificatore" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniziare" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Prima di usare completamente Mayan EDMS hai bisogno di:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Parole separate da spazi" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Cerca" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avanzato" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -253,9 +268,11 @@ msgstr "Password: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Ricordati di cambiare la password per aumentare la sicurezza e disabilitare questo messaggio." +msgstr "" +"Ricordati di cambiare la password per aumentare la sicurezza e disabilitare " +"questo messaggio." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Accedi" diff --git a/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo index aa2466015269383e0f8743d5aaabfb9886ef49cb..1e08c8d5735e857deab10e936dfa91cf11c79e0c 100644 GIT binary patch delta 1289 zcmX}rPe>GD7{~E<%v@bv*R;&Cbk+P*y0yEynHv?-!NM)mtONs_L_`ob)(s1S?UG%B zqD8`_A|Z(FP|HA5Ev~&5!tj6=`!88`)Wh}yL=*63O1n=Q)T*exV@Nfb4qn;na zQapvNOlK1A4GUPoAB(siA7dFVVI6)ze#T-pUH70Lt56$g!2xW?Vw}Y)ypDSA0XAU{ z^Y9INS>L>4z-G;7)Xu(PGycX#tY_Q${{V8y9KsSDM1IER5XK4A{|oN*MV#e4i`rzoM$}3!}JS1DzZ+ z-+ol7dT|(!p-Pp*v}%+`IGUgiHE|oR!zi|5uX}w4D>=W2O6?8QeUDHjdV$K+7gVG_ zQ1ksk&0pvvYOFw=kNe2KUb-X~w8N{o1?N$bKSQPNIcnlpxE5dIR{V}FSV`R!=|0qb zJxFjSj#_94_uwdMLw8Y`%9fJ3Sa&p%&ApsiufjF1>6a`oE@# zSm%G+!Dypn>B)7ZgVl%zLJ*NsQ zS*k~+U!~Lgpr-QZvsTmBq^zifYGl-Tn4hzpv4WK4{PZ+fPHj=S!aHM;Xlsb(joZ_y;9%08nx3>%iDWD=kT^Y-OeJvIPEI5;S?{Pn oZcmM$wa3R|fvL%n!|_Z>@vt*f?9X$q_~tF=pufw?%#|(u1$umVsQ>@~ delta 1468 zcmY+^U2IHg9LMozsyfVSt0=Wy>rhqH)Xa2Mb{30>AdQ!jZg9b=KE|}uGm|qjT*+)U zyONb&kP_0wOCmvB2ssgPvDx58Ynpwijacl$ z9DarOumK;U#{Yv0aTF_9-_)}$4QxP7)P&mMB5c7G*o=Eo-~Wb;HOFuYo~!IB?8dD) zhzvEa@DI}X7wTXa34=Cr4Hc1_G@9=YmUzaDaI*)WpmMm3)s?%SQ4^d;O?(w~vH)9g zWW4`9&gAoFRH*B#$DV6LrEWbcatE*u`%&{9sV4r)$x%AA&>-%>)8n7tpEU_W(Joc~nFEweTxCR^i{+gw4#V9d1H} zt_#oNF61&FX_Trk%}>~XI#~{<;V-xpPoc)&MS^2SumYc90$-H4>Evb#qjkbvNb1Tj z5|nqV6R2oI3cr3GDq29l7!^fDMUyK9Dp9JUp-3qjN~xltl<4#-rP(x%RJ~|=nY8;3 zs@`~&_A$)YsGO^4qwKq!I(=3IbvlQtQ>iG5WbJ>2;FhB?2bI<~EwzlB@2D~AT!pfr$|fBz zvv*5p@NZ;l#l)Qli|Kq2t{x6Gt, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Justin Albstbstmeijer \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Uiterlijk" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permissies zijn ontoereikend" @@ -30,7 +32,7 @@ msgstr "Permissies zijn ontoereikend" msgid "You don't have enough permissions for this operation." msgstr "U heeft niet genoeg permissies voor deze operatie." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina niet gevonden" @@ -38,23 +40,28 @@ msgstr "Pagina niet gevonden" msgid "Sorry, but the requested page could not be found." msgstr "Excuses, maar de opgevraagde pagina kan niet worden gevonden." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Server fout" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Er heeft een fout plaatsgevonden. Dit is gerapporteerd via email aan de beheerders van deze site en zou snel verholpen moeten worden. Bedankt voor uw geduld." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Er heeft een fout plaatsgevonden. Dit is gerapporteerd via email aan de " +"beheerders van deze site en zou snel verholpen moeten worden. Bedankt voor " +"uw geduld." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Als u hulp nodig heeft, kunt u naar deze fout refereren via de volgende identifier:" +msgstr "" +"Als u hulp nodig heeft, kunt u naar deze fout refereren via de volgende " +"identifier:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informatie" @@ -67,47 +74,47 @@ msgstr "Versie" msgid "Build number: %(build_number)s" msgstr "Build nummer: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Vrijgegeven onder de Apache 2.0 licentie" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Toggle navigatie" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anoniem" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "gebruiker gegevens" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succes" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informatie" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Waarschuwing" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Fout" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acties" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Toggle Dropdown" @@ -125,6 +132,10 @@ msgstr "Aanpassen: %(object)s" msgid "Create" msgstr "Maak aan" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +150,39 @@ msgstr "Bevestig verwijdering" msgid "Delete: %(object)s?" msgstr "Verwijder: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Ja" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nee" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "Verplicht" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Opslaan" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Verstuur" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Onderbreek" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Geen resultaten" @@ -180,7 +191,9 @@ msgstr "Geen resultaten" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van %(total_pages)s)" +msgstr "" +"Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +201,40 @@ msgstr "Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van % msgid "Total: %(total)s" msgstr "Totaal: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifier" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Thuis" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Beginnen" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Voordat u volledig gebruik kunt maken van Mayan EDMS heeft u het volgende nodig:" +msgstr "" +"Voordat u volledig gebruik kunt maken van Mayan EDMS heeft u het volgende " +"nodig:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Door spatie onderbroken voorwaarden" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Zoek" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Geavanceerd" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Aanmelden" @@ -228,7 +247,8 @@ msgstr "Eerste aanmelding" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "U heeft de installatie volbracht Mayan EDMS, gefeliciteerd!" +msgstr "" +"U heeft de installatie volbracht Mayan EDMS, gefeliciteerd!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +273,11 @@ msgstr "Wachtwoord: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Pas het wachtwoord aan om de beveiliging te verbeteren en om deze melding uit te schakelen." +msgstr "" +"Pas het wachtwoord aan om de beveiliging te verbeteren en om deze melding " +"uit te schakelen." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Meld u aan" diff --git a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo index 692170a67308d87bc07a9f7c5ef90f7620141055..3f4556b61a73ba5968f47aa991d578b2271a554f 100644 GIT binary patch delta 1475 zcmYMzT}YEr9LMqVlxfbUW^b02kDAk^t37k8Tu$kxys$ERA*c%{hzPdHW{_lzF0#6- zMi=E(f&_X|v5=tdx)6fwN+^P&s4glfx+n;OzQ6fohn?qh&Uw!Jf6vvrsoKn&ih`Sl z6ee#bKe3ECfTx%9Ae}2PW(AI75oT~DUdCd)h910)-8hAN@h5J@5Q7Wx2x|OEEX7`I zVmgy_J51mjUQFT!oW*jS#~OT#{EWqHYA?bvtVC^~5qq!&OK==3@dj$#4Epc^F2k4T zVSV$O0-H6TP&@mA4fq@Dv6gM?eJ9dn4&o|2hWt#Nhl7Kt_Y-dWB#u*`Ms3vL+E(K} zJb_2Cob}B#1s^^}`kMEypHWfxff4+Phq0M^r)b8onxkAo-M|#b)=BT9HaLq4(NomC z&+#}epu*imr;K9MOF=u&pe7o}b$A_hvb(4WUb*e>u!{OGtiUzi#Sr;W^K_!x4T}S(l&Anxl-|0(&GC3lytQ|vY)KQ6e}gdmj9#_lAs#gq=i^- zDea`R$*rx&jpS;#-hfTy5ZNYY6bB_;t4^d(Ly3c%K)$qiBl;wFxOJhh)wy+rNdN3w zvcjYr(I>0aNY-bqq>w4hYgHjN8 ziYErn#s~VN_V7^lkLOgTd+2N`J`~uWOr1$b?Zj}tnvR9{(m`)xjfq&yu{-Rb9km-1 z^-i!o7P5UlTgA3m*spTFJ=o@i?6I-@3pzQx>aZO~C2E-9U$6F9@c(GX-=-1nw2}WW lTK!Aynrdl5R$QDn#JnxJxsrJ+H|2d~pC}A*G-SDO}lle=OkOlvZfOmqEcMf>IQ=7p*@7O$vGi^ z2rGl=n4^~c?@r0JKn@C_$_Y5?=XgUa1wvR zV>m+4(>RB1cnKB%A#TG@aM+l-`KoonU3`KQzv6CO!|m8c^s~4dnKDOF^T)9ZCy{5G zcTfxQa0-jqfw!>-e?rCoj&WSWM|i&3#j+IGgSt^aYK22Mh(~Y$-$tE(ABi;|;Ny51 z`Iyf+ICvFz;V-D`){u|+o5Mw1M=ksU+t|(X%|{GQ<5g5<>!=%VV}Ik=i@L#!Enh`d zX9^GFX*`KbNT_*$tCVpSmDu-egEGI5y6*$zl=%bey76BO-oStH5T4>H)$SrHgJsl> zuAwr!iOTc`RQ!Lf`Swm0%lCb_1COFgH-Wm3-(L(|d4{wsq$Or)_7mBCx6 z`Ln3N_ppJBsKC9{Nf{2KUbb;m=`M5V#xK#vuTk-1zFSm1c9(&S^JPQvKJA=uyuz&`W32 zpP~2BH#hw;9iR`=+5P7BJ{eY{VI=x;Q1HURwrXT&(Vg+EvR8CVZpE9mDqg8j4nJ)l zh_qX?Ud7Gj!&_T=BAufN$4MkpmYqx=PBtEH?VTD;*r`O)v64>O9v!x6u?e?aNxWWi z{c_%|1f{ffCYY;u^VS)+G_&B&2etBi&Kj$Y)HZ#8AzR=fBQrr^ym2r#-B^mf8BDl- zw(4fRv{lTP%+H&tx3yxMf?M9&qgOOwx+So5Qip zAq|H#ZI3y&b?#hqUf0lmg$ivMc9rhc({~{mxsF-szR|LCv*F q!NTl9&dUcrd&Q2;xrJO9?>Z3aKH)M|UHRs0h4lQ~yxTar{r>-G;m#fa diff --git a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po index cd6198e81a..c9065aa5cc 100644 --- a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Wojtek Warczakowski , 2016 # Wojtek Warczakowski , 2016 @@ -9,21 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Wygląd" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Niewystarczające uprawnienia" @@ -31,7 +34,7 @@ msgstr "Niewystarczające uprawnienia" msgid "You don't have enough permissions for this operation." msgstr "Nie masz wystarczających uprawnień do tej operacji." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Nie znaleziono strony" @@ -39,23 +42,27 @@ msgstr "Nie znaleziono strony" msgid "Sorry, but the requested page could not be found." msgstr "Przepraszamy, ale żądana strona nie została znaleziona." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Błąd serwera" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Wystąpił błąd. Wiadomość o tym została przekazana do administratorów i wkrótce problem zostanie rozwiązany. Dziękujemy za cierpliwość." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Wystąpił błąd. Wiadomość o tym została przekazana do administratorów i " +"wkrótce problem zostanie rozwiązany. Dziękujemy za cierpliwość." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Jeśli potrzebujesz pomocy, możesz odwołać się do tego błędu poprzez następujący identyfikator:" +msgstr "" +"Jeśli potrzebujesz pomocy, możesz odwołać się do tego błędu poprzez " +"następujący identyfikator:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informacje" @@ -68,47 +75,47 @@ msgstr "Wersja" msgid "Build number: %(build_number)s" msgstr "Numer wersji: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Wydano na licencji Apache 2.0 License" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Prawa autorskie © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Rozwiń nawigację" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimowy" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Dane użytkownika" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Sukces" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informacja" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Ostrzeżenie" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Błąd" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Akcje" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Rozwiń listę" @@ -126,6 +133,10 @@ msgstr "Edytuj: %(object)s" msgid "Create" msgstr "Utwórz" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -140,39 +151,39 @@ msgstr "Potwierdź usunięcie" msgid "Delete: %(object)s?" msgstr "Usunąć: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Tak" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nie" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "wymagane" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Zapisz" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Wykonaj" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Anuluj" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Brak wyników" @@ -181,7 +192,9 @@ msgstr "Brak wyników" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z %(total_pages)s)" +msgstr "" +"Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -189,34 +202,38 @@ msgstr "Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z %(tota msgid "Total: %(total)s" msgstr "Razem: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identyfikator" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Strona główna" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Rozpoczynamy" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Zanim w pełni zaczniesz używać Mayan EDMS musisz:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Słowa rozdzielone spacjami" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Szukaj" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Zaawansowane" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Logowanie" @@ -254,9 +271,11 @@ msgstr "Hasło: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Aby poprawić bezpieczeństwo i usunąć ten komunikat, nie zapomnij zmienić hasła." +msgstr "" +"Aby poprawić bezpieczeństwo i usunąć ten komunikat, nie zapomnij zmienić " +"hasła." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Zaloguj" diff --git a/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo index ae5be274c101d565eb23db2a6953af1bc2447434..4fbbed9e0e31ae1e993a63f76f1f828dc658ee11 100644 GIT binary patch delta 714 zcmYk(J4hT+6vpwpy6dX(xjr^NkOg1W=*+Ma-E9?Y6c+^%v~UWQZPcK#5wWpU5C*Za z5Ynefqn(9_iDDxmAfg}&YLP1T{y!bT!<_q@J2TvS&fNW~zm;p(iRiW=n#gAIKiN*6 zMHq;w0%PLnV+rOlhl^N*N8$TZtYCf-KEK5z^GB@0Na33aEM?w`pN&~FUEIWYFo1k( zhQbeW7-c?zT6hXOaXx&$gDPMb9sC~7|DX!KLN0U1;Nb%nV+)IJ(Of6S+28E5yIvgP zB>oEL9jva7yRjZKs6unth+~+*uc*Jbj^((A4fq4A@dVY#C907dl;dU7 z8Ou)Fc4=!h47S=S4mqN`GD7{~F~-PzS#|4#WYEd~+AWMOAS)4d4M!9#~Yq=8YKI(dn%p{EEs6$l-IJV+ga4w09>zuoa+W?2kfvjb=YB!i?s0S*j7i{AYzK-TUq6+zpE`E*jMjmP+Z$~w76}e;vaSX3v z1MfEv8C2*tK;8I{DjG1xs`oL4%I8r#@CZ9`9aZovyo@_&;{o>K5o*2f*o>#xgMYCd zZ7y28-wZHNXT!)fGlAN=DICB%$YD14Q6W$9I=+bVLsUVZki-1oN1gt{N&Jo4i4h)- zzG^jR`_+Ff^o>%ST0k#R#R_%SS{>E8zZ8vCp#CrVbm~@xpNIZSY-TmILn=m}RH4ol z+6i{cu2$Yba#6EHOZXsmWKEYA{IEa%zG=4XFFOT)B^MOS;cZiYc-b*8 zd}8%7lNn8WuH(7c%y{_5dK`L*d#PKw#ktkooS$`;4xT4E>yp9Zhqw74+)JKx++@At WykB+-C1-UdC%(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Certifique-se de que altera a senha para aumentar a segurança e que desativa esta mensagem." +msgstr "" +"Certifique-se de que altera a senha para aumentar a segurança e que desativa " +"esta mensagem." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo index 000377ce15a485075ec7c08ab7f2f21432b9a9de..3d8418ddbdbd5938e772a043c274cd1bfbc9b14d 100644 GIT binary patch delta 1289 zcmX}rO-PhM9LMo_%v@btU$fRMU0>2o-EvpAmraF&sDqN3NnnsqA|{9{yBib*n}^J9 z(PoE)4niHQD0!j|)ggjz1s#GQNGOQNLs1~qsqb%lXxQ1$%skILGxPsH&#$@{wds## zxpRinLETJ!W*Ku3PpsjOayHkPwRjFan8tj(j0JcVy?7J*@HXznRjkGclk@NhYW{I7 z!eMOTaVGBGFpuS2Sip_=7)$UC*5WeqGZs(NxCe{TkJ>;G`>`DhaR&W(4K?pBHsTWI z;CuA4zWG3d&6+Q$ovmOK{=uzS$F_C-5He(XaUBjIKV$P3#&Oj3d3SsPXXr1YHX0^u zrMM3V@hFzCzFDNvh)}$gx-Owk*ub$hzZsR92z3MTLvUO_!*8MV+4)WmWIb%H8Xih|gQ zt=Nm>sFOcIGGv;milFAIX!GqMaivbAZzEjlsl z{4YCbZE|}XP^qeM`%TzFjZg#Bv|bDqon9x>r=h|@O(@&?mt%!}yW1CAsP%52tYqJ8 zMM!B=MD)q31gUzLRFqmpMemSGt1-@l+$GBy%}ZI%cTc_L)D)CizFncVXehEf5RS$= z_GG%fRqc#)gd*WUcxNmUZE2%;d+cN?G?1_-lM{9-o`?ndL>#CSY&$2(Ho oV^5BqvBySZfvMEV{r#Ez!XYPFSefHo_dT+lk>X}6vrzK(FLlIvDF6Tf delta 1458 zcmY+@OGs2v9LMo9K6A=PWog>uYWXPBbWA1lQ4wL06k;uEQMd6{BkBzESQSh~1(i`T z1<|5NA~yxaK#!G#2oXeJEkepg5Y)z?5P}f;{;spA!<_rMbLO6N{^$R{^Q!Dud3<_F z#w|l@p|7NW@EEfjhts*xo@5x4iBB;bpW^}?!yJ5#UYx}J_!+li9g|jLKW5=2)cot1 zhqtlDn7A2DJ@6iv^1~Ds;S3gF7PHH+2pKY4P~)ALkNc55%~4b!4)$OO7veY;<2%&+ zZ&-;ln8yBQ8DVK+F>0Z;s0gdE3R|!OkDz|PfXp?QaS`4?KISf$27HLi@FVKE8RTPT zxm?6KRN&`H<6`zVH@P{84^bzZLoJ*~ek-vQwZM*)dr;Ns!6rP2`*0YUYCho$%J>y^ z;=80l^B*8X<`L?-XBgMX$GAC+Z?FR^*?m1as0Xj1Cf-JsXax1#Gt>sNScrdc1s3EQ zvjjI_Ikux)A}r;*gIe!wF8NnvR~X=95?oH=ePk`;r4D)*icl%rgepZRYC#8;v3^vl zPobVahwJbTDuA)n?_W>{`i`3SGmrdhVmhn0qZdoC3pMUX1=x>gFpR40FVw#!hgA+> zC2GObT$G8csEtQZ^CwUTdW$OE6t>}XoSSZLN*B+kB!HC8eUZRDWwmZ-id>uPglZe< zDuo0Xc>y=q6? zZtXRscSxtR=svpIS~^wyuaR{(tE*7itJ7ASxY~(aZU43wzHFdZ(aE|YL1uX} zmXY*ibOi^UWK~woQy8-Sjuml2cG!+OeOA;74@Q!AvMW5sVEGH7O$47&y*!zOXiM$$5;Z9;6IO*_2(27N3y2 Bt}Orn diff --git a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po index 8255aa7b29..200a7d9dae 100644 --- a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:36+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Aparência" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permissão insuficiente" @@ -30,7 +31,7 @@ msgstr "Permissão insuficiente" msgid "You don't have enough permissions for this operation." msgstr "Você não tem permissões suficientes para essa operação." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Página não encontrada" @@ -38,23 +39,27 @@ msgstr "Página não encontrada" msgid "Sorry, but the requested page could not be found." msgstr "Desculpe, mas a página solicitada não pôde ser encontrada." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Erro de servidor" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Houve um erro. Os administradores da página foram informados por e-mail e deverão corrigir em breve. Obrigado pela paciência." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Houve um erro. Os administradores da página foram informados por e-mail e " +"deverão corrigir em breve. Obrigado pela paciência." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Se você precisar de ajuda, você pode fazer referência a este erro através do seguinte identificador:" +msgstr "" +"Se você precisar de ajuda, você pode fazer referência a este erro através do " +"seguinte identificador:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Sobre" @@ -67,47 +72,47 @@ msgstr "Versão" msgid "Build number: %(build_number)s" msgstr "Número de compilação: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Lançado sob a licença Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Todos os direitos reservados © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Ativar/desativar navegação" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anônimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalhes do usuário" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Sucesso" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informação" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Advertência" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Erro" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Ações" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Mostrar/esconder menu" @@ -125,6 +130,10 @@ msgstr "Editar: %(object)s" msgid "Create" msgstr "Criar" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +148,39 @@ msgstr "Confirmar Exclusão" msgid "Delete: %(object)s?" msgstr "Excluir: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Sim" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Não" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "requerido" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Salvar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Enviar" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Cancelar" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Nenhum resultado" @@ -180,7 +189,9 @@ msgstr "Nenhum resultado" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(total_pages)s)" +msgstr "" +"Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +199,38 @@ msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(t msgid "Total: %(total)s" msgstr "Total: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificador" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Início" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniciando" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Antes de começar a usar Mayan EDMS você precisa do seguinte:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Termos de espaço separado" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Pesquisa" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avançada" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Iniciar sessão" @@ -228,7 +243,8 @@ msgstr "Primeiro início de sessão" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Você acaba de terminar de instalar Maia EDMS , parabéns!" +msgstr "" +"Você acaba de terminar de instalar Maia EDMS , parabéns!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +269,11 @@ msgstr "Senha: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Certifique-se de alterar a senha para aumentar a segurança e para desativar esta mensagem." +msgstr "" +"Certifique-se de alterar a senha para aumentar a segurança e para desativar " +"esta mensagem." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Entrar" diff --git a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo index c8b033d399a73d72853f5b93a9281d1dbc93d307..3e4e1cecea432db28080346e4b5a5d928cb18424 100644 GIT binary patch delta 1000 zcmXxjJ!lhQ9LMn|CNU;a+s2yIwrbScDsm->IbR~8NCzo_#8~LiAzUGrK+Qptc2YAt zI7m>`*=)KP9TYk_ba2&4C{98J5fm#96~Dja`f&f}bI(hj=ehq~J|_OeTN|;!BSV=a z#)-Vo7#r{GqM{W2#su*OhHxIkSjHk&@e;nn-MEFCw~hNT80hy8V}kY=4&qrnW=zY> zaH9=wc>~KhK>IF6@Bv2g369`%)ciHnq2Hs<`VG0vcPefC6Q|I}Wc8m$9dH_TKpWHS zZ!UWSt~aoXTKJyV?s&dL9?HByW#}yy@CWX}E3Cdw_O7Eg8l+SG2`aUdSj8!v$A=hZ zf3v9@{DlW_8@bF7oufF4!)W6PoJB2IL(N~oy?7s$iN~mnJw>IwgIs2fY8uy3^R}?1 zfxlErt)G0K#Bo&rHB_qd$YtiJa#;4-&rk>H;3<58I`}8l?>0~yeMS9l6K8RP(`np| zl7BMRdtZl9i>YW4m7zYp55~Lg9c+2yqdiEBbZ`5w`r5Aozq_x4G2g;@ zD`i`m3(2&d%U-ln*;Fc0ELf$=YPC^yYu1d@tmKlJRGN8NE0a#9&*d`qnG_|GcN$G= zuI|(t%TCj+=aMCNu~Kik*l_Aqx19+s4&!5XJ7YAIPPnQ HqaXeQ>0oAP delta 1078 zcmXxjUr1A77{~En3&(=X}QWRCMeHV; ziM6I>+e=i}ztPL;OLq~BY1#;j&{s40YE#MDy=#?MOQ6YXbE)iVS`M~Bbpz^N|0s5O zb=kD3TZnChNsZ@9jCE+b zIO_~vv}dO6d`~`ixU>=&FWJGdreRV=dpeV}^0^DAN6N2*pM8PUgk5-hqr6lX_JuT; Stm9Zk*U38b>b>-|zVZ*I1$n># diff --git a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po index da6e701d83..a49e389e5f 100644 --- a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Stefaniu Criste , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-04-17 13:14+0000\n" -"Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "permisiuni insuficiente" @@ -30,7 +32,7 @@ msgstr "permisiuni insuficiente" msgid "You don't have enough permissions for this operation." msgstr "Nu aveți permisiuni suficiente pentru această operație." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina nu a fost gasită" @@ -38,14 +40,14 @@ msgstr "Pagina nu a fost gasită" msgid "Sorry, but the requested page could not be found." msgstr "Ne pare rău, dar pagina solicitată nu a putut fi găsit." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." msgstr "" #: templates/500.html:14 @@ -54,7 +56,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Despre" @@ -67,47 +69,47 @@ msgstr "Versiune" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "anonim" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "detalii utilizator" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succes" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informație" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Alertă" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Eroare" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acţiuni" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -125,6 +127,10 @@ msgstr "Modifică %(object)s" msgid "Create" msgstr "Creează" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +145,39 @@ msgstr "Confirmă stergerea" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Da" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nu" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "necesar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "salvează" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Trimiteţi" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Anulează" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -188,34 +194,40 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "ID" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Acasă" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Să începem" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Înainte de a putea utiliza Mayan EDMS în totalitate, trebuie sa faceți următoarele:" +msgstr "" +"Înainte de a putea utiliza Mayan EDMS în totalitate, trebuie sa faceți " +"următoarele:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Căută" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Conectare" @@ -228,7 +240,8 @@ msgstr "Prima autentificare" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Tocmai ați terminat de instalat Mayan EDMS, felicitări!" +msgstr "" +"Tocmai ați terminat de instalat Mayan EDMS, felicitări!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +266,11 @@ msgstr "Parola: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Asigurați-vă că pentru a schimba parola pentru a spori securitatea și pentru a dezactiva acest mesaj." +msgstr "" +"Asigurați-vă că pentru a schimba parola pentru a spori securitatea și pentru " +"a dezactiva acest mesaj." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Înscriere" diff --git a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo index c78354810cbbefb2817e2e8cc5594a3475d32c06..9043ef9ac1c1e62e2efcb8502852670fba7fb0f8 100644 GIT binary patch delta 1287 zcmX}rOGs2v9LMot2 zdA|8XhsB!jsFf{X9WLV*tY+Cd-iAz>4$Q@Fyp;>PP$@fub$A&M;3TFqgB6UIu^LO6)WTb^4f{};d4zhOW>DuX zpca%*8nl20EWtMgoeiaPIg5&8c{=RFg9@HuzUjTdnMD|sW8x)I!qcTqc>MSU$lQ16C| z?Q~!^Ca@Q^ptr~eWwz4v5~{okZK9c0uKFv;Q2K`IYvoF715H^7(G-*|{YeF|NfShE6mt^hs`W#zJMOamFeQ z2~5{o+0aX?vMTCnBq<&Gns`^!wbw+WG4?apv}N~aCN2ASR*hv>WqYi=o&Khq z2uDIKWBc3{&CG=S!GJfgBN7bznh1A$G?Dao$D>1ubJ1ih9`Sa@PWQ)?F-%0`gR!wu qcXw`kbZB5WI?x~S#)rpd-6!qVoO+jizTiQIea!RIvd@;ZTK@plvVj8t delta 1481 zcmYk+OKeP09LMo9HCl$M7FFtTz538j&5S;xUJ0on9*q=<4L3}hQf9X8@;T!~dQnuiB58_%KIU%@GO9V?7U zn!95a-s3c0e8ibJf>SY@)(dbZ^2n?}JztA?*ocg2_Ms*c#U0pzlkhbb;agPu?^uE( zn8o;J2Gdf*B2-6R{cNn^C*718Z;>ZpSX9sriHjS;l-FyZ=KN z)US_DXJY~CK8Q)pbPa_&*o2qxC$cx@WbSCi2dEGZVkr(`11e04)CMlaxDyxR5!A$c za3c;NT^c{juEu;+y$yN9UoTpCpqU*-P2?(0#}L!h-Z!AOs2R6m3>Df}I2Yd_b28s> zG5$g=U{?NUgc`7b`(vnnE}^lfe;U!Zr8z^h!Q0!b6qAo@C# zG!Wx@Nvl?3+r6z)IY_2^@2r%gK1ZD+MU*4qrQ|G7D70TSWKE)$tP`)ad=zhcv|=UB zm3M&jIVmYZTBSvfkd+pZwI%;2j)Avr+A>9>N<%H9P)!bz=aY3X{!jX2T1wWz<5(DW z$P_xAe#htE*nT+blxBDOrgzx;qgFiHVaM!5^njI!#tz4wn>kB-Io5$_!ft7Go=qt7 z<<<2om71{<=mRK-uDl7$l4YF diff --git a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po index b3fcb7f110..10ccccc637 100644 --- a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po @@ -1,28 +1,31 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-07-14 11:22+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Внешний вид" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Недостаточно прав" @@ -30,7 +33,7 @@ msgstr "Недостаточно прав" msgid "You don't have enough permissions for this operation." msgstr "У вас недостаточно прав для этой операции." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Страница не найдена" @@ -38,23 +41,27 @@ msgstr "Страница не найдена" msgid "Sorry, but the requested page could not be found." msgstr "Извините, но запрашиваемая страница не найдена." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Ошибка сервера" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Тут какая-то ошибка. Её нужно сообщить администрации сайта по электронной почте, и она будет исправлена. Спасибо за терпение." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Тут какая-то ошибка. Её нужно сообщить администрации сайта по электронной " +"почте, и она будет исправлена. Спасибо за терпение." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Если вам нужна помощь, вы можете сослаться на эту ошибку по следующему идентификатору:" +msgstr "" +"Если вам нужна помощь, вы можете сослаться на эту ошибку по следующему " +"идентификатору:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Инфо" @@ -67,47 +74,47 @@ msgstr "Версия" msgid "Build number: %(build_number)s" msgstr "Версия сборки: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Выпущено под лицензией Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "© 2011-2015 Roberto Rosario, все права защищены." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Переключение навигации" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Анонимно" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "сведения о пользователе" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Успех" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Информация" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Предупреждение" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Ошибка" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Действия" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Переключение выпадающего списка" @@ -125,6 +132,10 @@ msgstr "Редактировать: %(object)s" msgid "Create" msgstr "Создать" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +150,39 @@ msgstr "Подтвердить удаление" msgid "Delete: %(object)s?" msgstr "Удалить: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Да" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Нет" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "требуется" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Сохранить" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Подтвердить" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Отменить" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Нет результатов" @@ -180,7 +191,9 @@ msgstr "Нет результатов" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Всего (%(start)s - %(end)s из %(total)s) (Страница %(page_number)s из %(total_pages)s)" +msgstr "" +"Всего (%(start)s - %(end)s из %(total)s) (Страница %(page_number)s из " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +201,40 @@ msgstr "Всего (%(start)s - %(end)s из %(total)s) (Страница %(page msgid "Total: %(total)s" msgstr "Всего: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Идентификатор" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Начало" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Приступая к работе" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Вам кое-что понадобится, прежде чем вы начнёте полноценно использовать Mayan EDMS:" +msgstr "" +"Вам кое-что понадобится, прежде чем вы начнёте полноценно использовать Mayan " +"EDMS:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Поисковые запросы через пробел" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Поиск" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Дополнительно" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Войти" @@ -228,7 +247,8 @@ msgstr "Первое время входа в систему" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Вы только что закончили установку Mayan EDMS, поздравляем!" +msgstr "" +"Вы только что закончили установку Mayan EDMS, поздравляем!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +273,11 @@ msgstr "Пароль: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Обязательно измените пароль для повышения безопасности и отключения этого сообщения." +msgstr "" +"Обязательно измените пароль для повышения безопасности и отключения этого " +"сообщения." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Вход" diff --git a/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo index 4aeea11ec00626dba25a71b50b3d464873e27f88..3951a6def8f61534e884d69901da69eecdf7c7b1 100644 GIT binary patch delta 64 zcmdnMvVmp7B3^S{15;fi3k5?{D-+9!>!m>gCb~w33WjD@My3<5ck%lq=B1Y=rl(pd S6z9YTdrnSZjGla&F%!pDL2FAKZh6+Z8Rt9DhuXjx@WQ^kXNz6+x TO-xUd z9Sm{l?BFI2A}HukaPF>)-xpjwc=x#+ckjJil>IjApLye2G4e!#XcA+@qQ=Cy!wg2) zgDqUghrj)ylu}u~3z$Y52hhVVT*7f&Mgxyf&eyQ0R9#)Lkc&-}gE30McU;3ZcB7{& zbwkkwlmxG2lZL+V6g$|5dsLMMj!_!8WE#N+ns|#7c#j74)d!1VHri<84@#mUT}|RN z_Tx65;UV^72k9qihGmjm?#WBa$Pv;Y>HZCAj(i~mEFKP+27h&4R?&q_{lie!h`hVFI4+B A@Bjb+ delta 543 zcmXZY&ui0Q9LMn|ZR}=U+qGUcQOrTAum+OUcF>(Rdn~pn{+JgDEX0ULw6S>W#^}k@ zh(i!|86MnWP^lNSpi&UMDc(E?`x`tAda3Vk@gdLiN*U@5)T*MZZ@IFe=m$-$mF^xsil4}}@t!WdvFMn2sgpr_>pN^cY z(l{SK)|R!x;6Tf2d1J$i+~7f5-DrDHLieE;ucpq&zY~X*s%hJ%Q#LH8R&h-0vSp=P zP4k-93EIJ<(5$F(Q)Gnx*Z$GRy};NQy$}7^NqzeVsp?VK diff --git a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po index 54ea773fe8..58022fb61f 100644 --- a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Không tìm thấy trang" @@ -37,14 +38,14 @@ msgstr "Không tìm thấy trang" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" #: templates/500.html:11 msgid "" -"There's been an error. It's been reported to the site administrators via " -"e-mail and should be fixed shortly. Thanks for your patience." +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." msgstr "" #: templates/500.html:14 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Phiên bản" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonymous" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Chi tiết người dùng" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Các thao tác" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "Tạo" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "Xác nhận xóa" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "yêu cầu" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Tìm kiếm" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Đăng nhập" @@ -227,7 +236,9 @@ msgstr "Đăng nhập lần đầu" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Bạn đã cài đặt xong Hệ thống quản lý tài liệu điện tử Mayan EDMS. Xin chúc mừng bạn!" +msgstr "" +"Bạn đã cài đặt xong Hệ thống quản lý tài liệu điện tử Mayan EDMS. Xin chúc mừng bạn!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +263,11 @@ msgstr "Mật khẩu: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Bạn nên thay đổi mật khẩu để tăng tính bảo mật và để không nhìn thấy lời nhắc này nữa." +msgstr "" +"Bạn nên thay đổi mật khẩu để tăng tính bảo mật và để không nhìn thấy lời " +"nhắc này nữa." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo index f1b389e29bffb750dabc37bc9acdc11ab3ba7d21..3b99d287aaef008f0d4f1ce6dabf57af2f45a493 100644 GIT binary patch delta 780 zcmXxiJxH5D9LMpCCNb8SXc}K?sz$`OAz&VSe90ii(xFs*8x#@I2%?K_E+S;G4lW`* zx|VKTI#e@=IEadfn^QsP%hu4vSt&xlzjz+p^SS@s^W6RKxx0;hiRFI9{QHK|Onps_ z`;6(ra0w5}H!Q;gEXQLU!wU>zy!2^2ff3?XRKJ6DIDl0+jxD%g1&vWU z9x#OO$zqScFoBw|z$1)zIE4RD{e#RV-=W5bZ9I*yi0APou460iU=$Bg-<@Na_06^I z_>KwUpQsEUtdFP#d}P;-5!3=MYNAo=BsLMx+IRyyi8pQh6*X@jJMai|Z)p6sFC;l& zHf|cIDx8n0D7K8LMkPTm#lKW(`<1YErK0;0FSeeJw2`*{fbNwNeJ)CppRM8)&s>1z&JAyRw)`dS{_V?}xuo*_Y~eQ%-*}?PhugyqiEm sJv}KWolN&;9M`)KY(JAv?j(A<^d`ha7h%L4fkBesbr;s% zV0bYa4Cz7!yNmAD<=DlD#jY&d&HjNP_WeDc4xaNlFOTPU-abcvL_0@O-zP<~$X6sA zO5GMc6r^38!S8qm_wX?uqKS9B)A1ahr@e^MU&4#{1ZQy>uVGua*YK=T9W|tKiGdyT z;~u8)0Ewagp$`oT31DIx<9HMAB0p87kiZSJ@s(~5Fi3k7W!`O+4gEwf@zt10o{m5G z2$QTLfKB|!X}m$1ILN-N0tppP!3OBAj@0$pDbM=MoEQe$niwT zvKV=U^3XU0H_cPZJCM7->h`z~N7tsvar#C>&%_8=&ugv9^2?Rc2Vd9-6*9J+adKAH zDdwI2mOnvHHkWa1%dv~uLVw@i>o?4D_(7#vU#-+@MXTL-cK_k%o4IS4.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2fa4e7;text-decoration:none}a:hover,a:focus{color:#157ab5;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#317eac}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2fa4e7}a.text-primary:hover,a.text-primary:focus{color:#178acc}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#2fa4e7}a.bg-primary:hover,a.bg-primary:focus{background-color:#178acc}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#555555;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555555;background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default:focus,.btn-default.focus{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:hover{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#555555;background-color:#d4d4d4;border-color:rgba(0,0,0,0.1)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default .badge{color:#ffffff;background-color:#555555}.btn-primary{color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#178acc;border-color:#105b87}.btn-primary:hover{color:#ffffff;background-color:#178acc;border-color:#1684c2}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#178acc;border-color:#1684c2}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1474ac;border-color:#105b87}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary .badge{color:#2fa4e7;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#73a839;border-color:#73a839}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#59822c;border-color:#324919}.btn-success:hover{color:#ffffff;background-color:#59822c;border-color:#547a29}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#59822c;border-color:#547a29}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#476723;border-color:#324919}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#73a839;border-color:#73a839}.btn-success .badge{color:#73a839;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#033c73;border-color:#033c73}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#022241;border-color:#000000}.btn-info:hover{color:#ffffff;background-color:#022241;border-color:#011d37}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#022241;border-color:#011d37}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#01101f;border-color:#000000}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#033c73;border-color:#033c73}.btn-info .badge{color:#033c73;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#dd5600;border-color:#dd5600}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#aa4200;border-color:#5e2400}.btn-warning:hover{color:#ffffff;background-color:#aa4200;border-color:#a03e00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#aa4200;border-color:#a03e00}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#863400;border-color:#5e2400}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#dd5600;border-color:#dd5600}.btn-warning .badge{color:#dd5600;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#c71c22;border-color:#c71c22}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#9a161a;border-color:#570c0f}.btn-danger:hover{color:#ffffff;background-color:#9a161a;border-color:#911419}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#9a161a;border-color:#911419}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#7b1115;border-color:#570c0f}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#c71c22;border-color:#c71c22}.btn-danger .badge{color:#c71c22;background-color:#ffffff}.btn-link{color:#2fa4e7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#157ab5;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2fa4e7}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2fa4e7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#2fa4e7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2fa4e7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#2fa4e7;border-color:#1995dc}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#dddddd}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#dddddd;background-color:transparent}.navbar-default .navbar-toggle{border-color:#178acc}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#178acc}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#1995dc}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#178acc;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#dddddd;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#dddddd}.navbar-inverse{background-color:#033c73;border-color:#022f5a}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#022f5a}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#022f5a}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#022a50}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#022f5a;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#2fa4e7;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#157ab5;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#2fa4e7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#178acc}.label-success{background-color:#73a839}.label-success[href]:hover,.label-success[href]:focus{background-color:#59822c}.label-info{background-color:#033c73}.label-info[href]:hover,.label-info[href]:focus{background-color:#022241}.label-warning{background-color:#dd5600}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#aa4200}.label-danger{background-color:#c71c22}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#9a161a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2fa4e7;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2fa4e7;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2fa4e7}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#2fa4e7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#73a839}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#033c73}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#dd5600}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#c71c22}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e6f4fc}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#555555;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#555555}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#dddddd}.panel-primary>.panel-heading{color:#ffffff;background-color:#2fa4e7;border-color:#dddddd}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-primary>.panel-heading .badge{color:#2fa4e7;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-success{border-color:#dddddd}.panel-success>.panel-heading{color:#468847;background-color:#73a839;border-color:#dddddd}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-success>.panel-heading .badge{color:#73a839;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-info{border-color:#dddddd}.panel-info>.panel-heading{color:#3a87ad;background-color:#033c73;border-color:#dddddd}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-info>.panel-heading .badge{color:#033c73;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-warning{border-color:#dddddd}.panel-warning>.panel-heading{color:#c09853;background-color:#dd5600;border-color:#dddddd}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-warning>.panel-heading .badge{color:#dd5600;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-danger{border-color:#dddddd}.panel-danger>.panel-heading{color:#b94a48;background-color:#c71c22;border-color:#dddddd}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-danger>.panel-heading .badge{color:#c71c22;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-webkit-gradient(linear, left top, left bottom, from(#54b4eb), color-stop(60%, #2fa4e7), to(#1d9ce5));background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);border-bottom:1px solid #178acc;-webkit-filter:none;filter:none;-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-default .badge{background-color:#fff;color:#2fa4e7}.navbar-inverse{background-image:-webkit-linear-gradient(#04519b, #044687 60%, #033769);background-image:-o-linear-gradient(#04519b, #044687 60%, #033769);background-image:-webkit-gradient(linear, left top, left bottom, from(#04519b), color-stop(60%, #044687), to(#033769));background-image:linear-gradient(#04519b, #044687 60%, #033769);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff033769', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #022241}.navbar-inverse .badge{background-color:#fff;color:#033c73}.navbar .navbar-nav>li>a,.navbar-brand{text-shadow:0 1px 0 rgba(0,0,0,0.1)}@media (max-width:767px){.navbar .dropdown-header{color:#fff}.navbar .dropdown-menu a{color:#fff}}.btn{text-shadow:0 1px 0 rgba(0,0,0,0.1)}.btn .caret{border-top-color:#fff}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(60%, #fff), to(#f5f5f5));background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #e6e6e6}.btn-default:hover{color:#555555}.btn-default .caret{border-top-color:#555555}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(60%, #fff), to(#f5f5f5));background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #e6e6e6}.btn-primary{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-webkit-gradient(linear, left top, left bottom, from(#54b4eb), color-stop(60%, #2fa4e7), to(#1d9ce5));background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #178acc}.btn-success{background-image:-webkit-linear-gradient(#88c149, #73a839 60%, #699934);background-image:-o-linear-gradient(#88c149, #73a839 60%, #699934);background-image:-webkit-gradient(linear, left top, left bottom, from(#88c149), color-stop(60%, #73a839), to(#699934));background-image:linear-gradient(#88c149, #73a839 60%, #699934);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff88c149', endColorstr='#ff699934', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #59822c}.btn-info{background-image:-webkit-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:-o-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:-webkit-gradient(linear, left top, left bottom, from(#04519b), color-stop(60%, #033c73), to(#02325f));background-image:linear-gradient(#04519b, #033c73 60%, #02325f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff02325f', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #022241}.btn-warning{background-image:-webkit-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:-o-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff6707), color-stop(60%, #dd5600), to(#c94e00));background-image:linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff6707', endColorstr='#ffc94e00', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #aa4200}.btn-danger{background-image:-webkit-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:-o-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:-webkit-gradient(linear, left top, left bottom, from(#e12b31), color-stop(60%, #c71c22), to(#b5191f));background-image:linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe12b31', endColorstr='#ffb5191f', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #9a161a}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-warning .panel-heading,.panel-danger .panel-heading,.panel-info .panel-heading,.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css deleted file mode 100644 index 2c959bdc61..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2780e3;text-decoration:none}a:hover,a:focus{color:#165ba8;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #e6e6e6}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#ff7518;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2780e3}a.text-primary:hover,a.text-primary:focus{color:#1967be}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2780e3}a.bg-primary:hover,a.bg-primary:focus{background-color:#1967be}.bg-success{background-color:#3fb618}a.bg-success:hover,a.bg-success:focus{background-color:#2f8912}.bg-info{background-color:#9954bb}a.bg-info:hover,a.bg-info:focus{background-color:#7e3f9d}.bg-warning{background-color:#ff7518}a.bg-warning:hover,a.bg-warning:focus{background-color:#e45c00}.bg-danger{background-color:#ff0039}a.bg-danger:hover,a.bg-danger:focus{background-color:#cc002e}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #e6e6e6}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #e6e6e6}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #e6e6e6;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#3fb618}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#379f15}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#9954bb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#8d46b0}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff7518}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#fe6600}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff0039}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#e60033}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:43px;padding:10px 18px;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#e6e6e6;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:43px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:64px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:64px;line-height:64px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:64px;line-height:64px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:64px;min-height:40px;padding:19px 30px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:53.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:43px;height:43px;line-height:43px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:64px;height:64px;line-height:64px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#3fb618}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff7518}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff0039}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:24.9999994px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 18px;font-size:15px;line-height:1.42857143;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#222222;border-color:#222222}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#090909;border-color:#000000}.btn-default:hover{color:#ffffff;background-color:#090909;border-color:#040404}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#090909;border-color:#040404}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#000000;border-color:#000000}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#222222;border-color:#222222}.btn-default .badge{color:#222222;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#1967be;border-color:#10427b}.btn-primary:hover{color:#ffffff;background-color:#1967be;border-color:#1862b5}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#1967be;border-color:#1862b5}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#15569f;border-color:#10427b}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2780e3;border-color:#2780e3}.btn-primary .badge{color:#2780e3;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3fb618;border-color:#3fb618}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2f8912;border-color:#184509}.btn-success:hover{color:#ffffff;background-color:#2f8912;border-color:#2c8011}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2f8912;border-color:#2c8011}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#24690e;border-color:#184509}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3fb618;border-color:#3fb618}.btn-success .badge{color:#3fb618;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9954bb;border-color:#9954bb}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#7e3f9d;border-color:#522967}.btn-info:hover{color:#ffffff;background-color:#7e3f9d;border-color:#783c96}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#7e3f9d;border-color:#783c96}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#6a3484;border-color:#522967}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9954bb;border-color:#9954bb}.btn-info .badge{color:#9954bb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff7518;border-color:#ff7518}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e45c00;border-color:#983d00}.btn-warning:hover{color:#ffffff;background-color:#e45c00;border-color:#da5800}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e45c00;border-color:#da5800}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c04d00;border-color:#983d00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff7518;border-color:#ff7518}.btn-warning .badge{color:#ff7518;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff0039;border-color:#ff0039}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#cc002e;border-color:#80001c}.btn-danger:hover{color:#ffffff;background-color:#cc002e;border-color:#c2002b}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#cc002e;border-color:#c2002b}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#a80026;border-color:#80001c}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ff0039;border-color:#ff0039}.btn-danger .badge{color:#ff0039;background-color:#ffffff}.btn-link{color:#2780e3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#165ba8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2780e3}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2780e3}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:64px;line-height:64px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 18px;font-size:15px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#e6e6e6;border:1px solid #cccccc;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:0}.input-group-addon.input-lg{padding:18px 30px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#e6e6e6}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#e6e6e6;border-color:#2780e3}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#e6e6e6 #e6e6e6 #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2780e3}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3.5px;margin-bottom:3.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3.5px;margin-bottom:3.5px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#222222;border-color:#121212}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#090909}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#121212}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#090909;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#2780e3;border-color:#1967be}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#1967be}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#1a6ecc}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#1967be;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ffffff;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#ffffff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 18px;line-height:1.42857143;text-decoration:none;color:#2780e3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#165ba8;background-color:#e6e6e6;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 30px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:0}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#e6e6e6}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#222222}.label-default[href]:hover,.label-default[href]:focus{background-color:#090909}.label-primary{background-color:#2780e3}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1967be}.label-success{background-color:#3fb618}.label-success[href]:hover,.label-success[href]:focus{background-color:#2f8912}.label-info{background-color:#9954bb}.label-info[href]:hover,.label-info[href]:focus{background-color:#7e3f9d}.label-warning{background-color:#ff7518}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e45c00}.label-danger{background-color:#ff0039}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#cc002e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2780e3;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2780e3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#e6e6e6}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#cccccc}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2780e3}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#3fb618;border-color:#4e9f15;color:#ffffff}.alert-success hr{border-top-color:#438912}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#9954bb;border-color:#7643a8;color:#ffffff}.alert-info hr{border-top-color:#693c96}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff7518;border-color:#ff4309;color:#ffffff}.alert-warning hr{border-top-color:#ee3800}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ff0039;border-color:#f0005e;color:#ffffff}.alert-danger hr{border-top-color:#d60054}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#2780e3;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3fb618}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9954bb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff7518}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff0039}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#e6e6e6;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2780e3;border-color:#dddddd}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#dceafa}.list-group-item-success{color:#ffffff;background-color:#3fb618}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#379f15}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#9954bb}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#8d46b0}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff7518}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#fe6600}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff0039}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#e60033}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#2780e3}.panel-primary>.panel-heading{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2780e3}.panel-primary>.panel-heading .badge{color:#2780e3;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2780e3}.panel-success{border-color:#4e9f15}.panel-success>.panel-heading{color:#ffffff;background-color:#3fb618;border-color:#4e9f15}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#4e9f15}.panel-success>.panel-heading .badge{color:#3fb618;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#4e9f15}.panel-info{border-color:#7643a8}.panel-info>.panel-heading{color:#ffffff;background-color:#9954bb;border-color:#7643a8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#7643a8}.panel-info>.panel-heading .badge{color:#9954bb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#7643a8}.panel-warning{border-color:#ff4309}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff7518;border-color:#ff4309}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff4309}.panel-warning>.panel-heading .badge{color:#ff7518;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff4309}.panel-danger{border-color:#f0005e}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff0039;border-color:#f0005e}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f0005e}.panel-danger>.panel-heading .badge{color:#ff0039;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f0005e}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-inverse .badge{background-color:#fff;color:#2780e3}body{-webkit-font-smoothing:antialiased}.text-primary,.text-primary:hover{color:#2780e3}.text-success,.text-success:hover{color:#3fb618}.text-danger,.text-danger:hover{color:#ff0039}.text-warning,.text-warning:hover{color:#ff7518}.text-info,.text-info:hover{color:#9954bb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a,.table .success a,table .warning a,.table .warning a,table .danger a,.table .danger a,table .info a,.table .info a{color:#fff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff7518}.has-warning .form-control,.has-warning .form-control:focus,.has-warning .input-group-addon{border:1px solid #ff7518}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ff0039}.has-error .form-control,.has-error .form-control:focus,.has-error .input-group-addon{border:1px solid #ff0039}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#3fb618}.has-success .form-control,.has-success .form-control:focus,.has-success .input-group-addon{border:1px solid #3fb618}.nav-pills>li>a{border-radius:0}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:none}.close{text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{opacity:1}.alert{border:none}.alert .alert-link{text-decoration:underline;color:#fff}.label{border-radius:0}.progress{height:8px;-webkit-box-shadow:none;box-shadow:none}.progress .progress-bar{font-size:8px;line-height:8px}.panel-heading,.panel-footer{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#333333}a.list-group-item-success.active{background-color:#3fb618}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#379f15}a.list-group-item-warning.active{background-color:#ff7518}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#fe6600}a.list-group-item-danger.active{background-color:#ff0039}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#e60033}.modal .close{color:#333333}.popover{color:#333333} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css deleted file mode 100644 index b3d808f985..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#888888;background-color:#060606}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2a9fd6;text-decoration:none}a:hover,a:focus{color:#2a9fd6;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#282828;border:1px solid #282828;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #282828}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#ffffff}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#888888}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:56px}h2,.h2{font-size:45px}h3,.h3{font-size:34px}h4,.h4{font-size:24px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#ff8800;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#888888}.text-primary{color:#2a9fd6}a.text-primary:hover,a.text-primary:focus{color:#2180ac}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2a9fd6}a.bg-primary:hover,a.bg-primary:focus{background-color:#2180ac}.bg-success{background-color:#77b300}a.bg-success:hover,a.bg-success:focus{background-color:#558000}.bg-info{background-color:#9933cc}a.bg-info:hover,a.bg-info:focus{background-color:#7a29a3}.bg-warning{background-color:#ff8800}a.bg-warning:hover,a.bg-warning:focus{background-color:#cc6d00}.bg-danger{background-color:#cc0000}a.bg-danger:hover,a.bg-danger:focus{background-color:#990000}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #282828}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #888888}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #282828}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#555555}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #282828;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#282828;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:#181818}caption{padding-top:8px;padding-bottom:8px;color:#888888;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #282828}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282828}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #282828}.table .table{background-color:#060606}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #282828}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #282828}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#080808}.table-hover>tbody>tr:hover{background-color:#282828}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#282828}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#1b1b1b}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#77b300}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#669a00}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#9933cc}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#8a2eb8}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff8800}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#e67a00}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#cc0000}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#b30000}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #282828}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#888888;border:0;border-bottom:1px solid #282828}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#888888}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#888888;background-color:#ffffff;background-image:none;border:1px solid #282828;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#888888;opacity:1}.form-control:-ms-input-placeholder{color:#888888}.form-control::-webkit-input-placeholder{color:#888888}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#adafae;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#77b300}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff8800}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#cc0000}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#c8c8c8}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#424242;border-color:#424242}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#282828;border-color:#020202}.btn-default:hover{color:#ffffff;background-color:#282828;border-color:#232323}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#282828;border-color:#232323}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#161616;border-color:#020202}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#424242;border-color:#424242}.btn-default .badge{color:#424242;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#2180ac;border-color:#15506c}.btn-primary:hover{color:#ffffff;background-color:#2180ac;border-color:#1f79a3}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#2180ac;border-color:#1f79a3}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1b698e;border-color:#15506c}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2a9fd6;border-color:#2a9fd6}.btn-primary .badge{color:#2a9fd6;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#77b300;border-color:#77b300}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#558000;border-color:#223300}.btn-success:hover{color:#ffffff;background-color:#558000;border-color:#4e7600}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#558000;border-color:#4e7600}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#3d5c00;border-color:#223300}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#77b300;border-color:#77b300}.btn-success .badge{color:#77b300;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9933cc;border-color:#9933cc}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#7a29a3;border-color:#4c1966}.btn-info:hover{color:#ffffff;background-color:#7a29a3;border-color:#74279b}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#7a29a3;border-color:#74279b}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#652287;border-color:#4c1966}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9933cc;border-color:#9933cc}.btn-info .badge{color:#9933cc;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff8800;border-color:#ff8800}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#cc6d00;border-color:#804400}.btn-warning:hover{color:#ffffff;background-color:#cc6d00;border-color:#c26700}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#cc6d00;border-color:#c26700}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a85a00;border-color:#804400}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff8800;border-color:#ff8800}.btn-warning .badge{color:#ff8800;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#cc0000;border-color:#cc0000}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#990000;border-color:#4d0000}.btn-danger:hover{color:#ffffff;background-color:#990000;border-color:#8f0000}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#990000;border-color:#8f0000}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#750000;border-color:#4d0000}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#cc0000;border-color:#cc0000}.btn-danger .badge{color:#cc0000;background-color:#ffffff}.btn-link{color:#2a9fd6;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a9fd6;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#888888;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#222222;border:1px solid #444444;border:1px solid rgba(255,255,255,0.1);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:rgba(255,255,255,0.1)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ffffff;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2a9fd6}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2a9fd6}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#888888}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#888888;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#888888;text-align:center;background-color:#adafae;border:1px solid #282828;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#222222}.nav>li.disabled>a{color:#888888}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#888888;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#222222;border-color:#2a9fd6}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #282828}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:transparent transparent #282828}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ffffff;background-color:#2a9fd6;border:1px solid #282828;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#060606}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2a9fd6}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#060606}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#060606;border-color:#282828}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#888888}.navbar-default .navbar-nav>li>a{color:#888888}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#888888;background-color:transparent}.navbar-default .navbar-toggle{border-color:#282828}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#282828}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#282828}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#888888}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#888888;background-color:transparent}}.navbar-default .navbar-link{color:#888888}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#888888}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#888888}.navbar-inverse{background-color:#222222;border-color:#080808}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#888888}.navbar-inverse .navbar-nav>li>a{color:#888888}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#aaaaaa;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#888888}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#aaaaaa;background-color:transparent}}.navbar-inverse .navbar-link{color:#888888}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#888888}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#aaaaaa}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#222222;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ffffff}.breadcrumb>.active{color:#888888}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#222222;border:1px solid #282828;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#2a9fd6;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#2a9fd6;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#888888;background-color:#222222;border-color:#282828;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#222222;border:1px solid #282828;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#2a9fd6}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#888888;background-color:#222222;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#424242}.label-default[href]:hover,.label-default[href]:focus{background-color:#282828}.label-primary{background-color:#2a9fd6}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#2180ac}.label-success{background-color:#77b300}.label-success[href]:hover,.label-success[href]:focus{background-color:#558000}.label-info{background-color:#9933cc}.label-info[href]:hover,.label-info[href]:focus{background-color:#7a29a3}.label-warning{background-color:#ff8800}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#cc6d00}.label-danger{background-color:#cc0000}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#990000}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2a9fd6;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2a9fd6;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#151515}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#000000}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#282828;border:1px solid #282828;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2a9fd6}.thumbnail .caption{padding:9px;color:#888888}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#77b300;border-color:#809a00;color:#ffffff}.alert-success hr{border-top-color:#6a8000}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#9933cc;border-color:#6e2caf;color:#ffffff}.alert-info hr{border-top-color:#61279b}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff8800;border-color:#f05800;color:#ffffff}.alert-warning hr{border-top-color:#d64f00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#cc0000;border-color:#bd001f;color:#ffffff}.alert-danger hr{border-top-color:#a3001b}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#222222;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#2a9fd6;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#77b300}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9933cc}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff8800}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#cc0000}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#222222;border:1px solid #282828}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#888888}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ffffff}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#888888;background-color:#484848}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#adafae;color:#888888;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#888888}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#d5ecf7}.list-group-item-success{color:#ffffff;background-color:#77b300}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#669a00}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#9933cc}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#8a2eb8}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff8800}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#e67a00}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#cc0000}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#b30000}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#222222;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#3c3c3c;border-top:1px solid #282828;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #282828}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #282828}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #282828}.panel-default{border-color:#282828}.panel-default>.panel-heading{color:#888888;background-color:#3c3c3c;border-color:#282828}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#282828}.panel-default>.panel-heading .badge{color:#3c3c3c;background-color:#888888}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#282828}.panel-primary{border-color:#2a9fd6}.panel-primary>.panel-heading{color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2a9fd6}.panel-primary>.panel-heading .badge{color:#2a9fd6;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2a9fd6}.panel-success{border-color:#809a00}.panel-success>.panel-heading{color:#ffffff;background-color:#77b300;border-color:#809a00}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#809a00}.panel-success>.panel-heading .badge{color:#77b300;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#809a00}.panel-info{border-color:#6e2caf}.panel-info>.panel-heading{color:#ffffff;background-color:#9933cc;border-color:#6e2caf}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#6e2caf}.panel-info>.panel-heading .badge{color:#9933cc;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#6e2caf}.panel-warning{border-color:#f05800}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff8800;border-color:#f05800}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f05800}.panel-warning>.panel-heading .badge{color:#ff8800;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f05800}.panel-danger{border-color:#bd001f}.panel-danger>.panel-heading{color:#ffffff;background-color:#cc0000;border-color:#bd001f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bd001f}.panel-danger>.panel-heading .badge{color:#cc0000;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bd001f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#151515;border:1px solid #030303;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#202020;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #282828;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #282828}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#202020;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#181818;border-bottom:1px solid #0b0b0b;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#202020}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#202020}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#202020}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#202020;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.text-primary,.text-primary:hover{color:#2a9fd6}.text-success,.text-success:hover{color:#77b300}.text-danger,.text-danger:hover{color:#cc0000}.text-warning,.text-warning:hover{color:#ff8800}.text-info,.text-info:hover{color:#9933cc}.bg-success,.bg-info,.bg-warning,.bg-danger{color:#fff}table,.table{color:#fff}table a:not(.btn),.table a:not(.btn){color:#fff;text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .text-muted,.table .text-muted{color:#888888}.table-responsive>.table{background-color:#181818}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff8800}.has-warning .form-control,.has-warning .form-control:focus,.has-warning .input-group-addon{border-color:#ff8800}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#cc0000}.has-error .form-control,.has-error .form-control:focus,.has-error .input-group-addon{border-color:#cc0000}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#77b300}.has-success .form-control,.has-success .form-control:focus,.has-success .input-group-addon{border-color:#77b300}legend{color:#fff}.input-group-addon{background-color:#424242}.nav-tabs a,.nav-pills a,.breadcrumb a,.pager a{color:#fff}.alert .alert-link,.alert a{color:#ffffff;text-decoration:underline}.alert .close{text-decoration:none}.close{color:#fff;text-decoration:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#282828}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#282828}a.list-group-item-success.active{background-color:#77b300}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#669a00}a.list-group-item-warning.active{background-color:#ff8800}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#e67a00}a.list-group-item-danger.active{background-color:#cc0000}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#b30000}.jumbotron h1,.jumbotron h2,.jumbotron h3,.jumbotron h4,.jumbotron h5,.jumbotron h6{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css deleted file mode 100644 index c640607347..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#ffffff;background-color:#222222}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#0ce3ac;text-decoration:none}a:hover,a:focus{color:#0ce3ac;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:2px;line-height:1.42857143;background-color:#222222;border:1px solid #464545;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #464545}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#f39c12;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#375a7f}a.text-primary:hover,a.text-primary:focus{color:#28415b}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#375a7f}a.bg-primary:hover,a.bg-primary:focus{background-color:#28415b}.bg-success{background-color:#00bc8c}a.bg-success:hover,a.bg-success:focus{background-color:#008966}.bg-info{background-color:#3498db}a.bg-info:hover,a.bg-info:focus{background-color:#217dbb}.bg-warning{background-color:#f39c12}a.bg-warning:hover,a.bg-warning:focus{background-color:#c87f0a}.bg-danger{background-color:#e74c3c}a.bg-danger:hover,a.bg-danger:focus{background-color:#d62c1a}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid transparent}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #464545}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #464545;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#303030;background-color:#ebebeb;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #464545}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #464545}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #464545}.table .table{background-color:#222222}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #464545}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #464545}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#3d3d3d}.table-hover>tbody>tr:hover{background-color:#464545}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#464545}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#393838}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#00bc8c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#00a379}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#3498db}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#258cd1}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f39c12}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#e08e0b}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#e74c3c}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#e43725}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #464545}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#ffffff;border:0;border-bottom:1px solid transparent}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#464545}.form-control{display:block;width:100%;height:45px;padding:10px 15px;font-size:15px;line-height:1.42857143;color:#464545;background-color:#ffffff;background-image:none;border:1px solid #f1f1f1;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#ffffff;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(255,255,255,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(255,255,255,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#ebebeb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:45px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:35px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:66px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:35px;line-height:35px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:35px;line-height:35px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:35px;min-height:34px;padding:7px 9px;font-size:13px;line-height:1.5}.input-lg{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:66px;line-height:66px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:66px;line-height:66px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:66px;min-height:40px;padding:19px 27px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:56.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:45px;height:45px;line-height:45px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:66px;height:66px;line-height:66px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:35px;height:35px;line-height:35px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#00bc8c}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#f39c12}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#e74c3c}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:24.9999994px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:7px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 15px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#464545;border-color:#464545}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2c2c2c;border-color:#060606}.btn-default:hover{color:#ffffff;background-color:#2c2c2c;border-color:#272727}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2c2c2c;border-color:#272727}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1a1a1a;border-color:#060606}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#464545;border-color:#464545}.btn-default .badge{color:#464545;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#375a7f;border-color:#375a7f}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#28415b;border-color:#101b26}.btn-primary:hover{color:#ffffff;background-color:#28415b;border-color:#253c54}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#28415b;border-color:#253c54}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1d2f43;border-color:#101b26}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#375a7f;border-color:#375a7f}.btn-primary .badge{color:#375a7f;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#00bc8c;border-color:#00bc8c}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#008966;border-color:#003d2d}.btn-success:hover{color:#ffffff;background-color:#008966;border-color:#007f5e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#008966;border-color:#007f5e}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#00654b;border-color:#003d2d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#00bc8c;border-color:#00bc8c}.btn-success .badge{color:#00bc8c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#3498db;border-color:#3498db}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#217dbb;border-color:#16527a}.btn-info:hover{color:#ffffff;background-color:#217dbb;border-color:#2077b2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#217dbb;border-color:#2077b2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#1c699d;border-color:#16527a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3498db;border-color:#3498db}.btn-info .badge{color:#3498db;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f39c12;border-color:#f39c12}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#c87f0a;border-color:#7f5006}.btn-warning:hover{color:#ffffff;background-color:#c87f0a;border-color:#be780a}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#c87f0a;border-color:#be780a}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a66908;border-color:#7f5006}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f39c12;border-color:#f39c12}.btn-warning .badge{color:#f39c12;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#e74c3c;border-color:#e74c3c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#d62c1a;border-color:#921e12}.btn-danger:hover{color:#ffffff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#b62516;border-color:#921e12}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#e74c3c;border-color:#e74c3c}.btn-danger .badge{color:#e74c3c;background-color:#ffffff}.btn-link{color:#0ce3ac;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0ce3ac;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#303030;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#464545}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ebebeb;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#375a7f}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#375a7f}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:66px;line-height:66px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:35px;line-height:35px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 15px;font-size:15px;font-weight:normal;line-height:1;color:#464545;text-align:center;background-color:#464545;border:1px solid transparent;border-radius:4px}.input-group-addon.input-sm{padding:6px 9px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:18px 27px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#303030}.nav>li.disabled>a{color:#605e5e}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#605e5e;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#303030;border-color:#0ce3ac}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #464545}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#464545 #464545 #464545}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#00bc8c;background-color:#222222;border:1px solid #464545;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ebebeb}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#222222}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#375a7f}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ebebeb}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#222222}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:7.5px;margin-bottom:7.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7.5px;margin-bottom:7.5px}.navbar-btn.btn-sm{margin-top:12.5px;margin-bottom:12.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#375a7f;border-color:transparent}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#28415b}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#28415b}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#28415b}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#28415b;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#28415b}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#00bc8c}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#00bc8c}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#00bc8c;border-color:transparent}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#00a379}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#aaaaaa;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#008966}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#008966}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#009871}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#00a379;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#00a379}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#aaaaaa;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#375a7f}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#375a7f}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#aaaaaa}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#464545;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ffffff}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 15px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#00bc8c;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#00dba3;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#00dba3;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#ffffff;background-color:#007053;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 27px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:6px 9px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#00bc8c;border:1px solid transparent;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#00dba3}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dddddd;background-color:#00bc8c;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#464545}.label-default[href]:hover,.label-default[href]:focus{background-color:#2c2c2c}.label-primary{background-color:#375a7f}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#28415b}.label-success{background-color:#00bc8c}.label-success[href]:hover,.label-success[href]:focus{background-color:#008966}.label-info{background-color:#3498db}.label-info[href]:hover,.label-info[href]:focus{background-color:#217dbb}.label-warning{background-color:#f39c12}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#c87f0a}.label-danger{background-color:#e74c3c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#d62c1a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#464545;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#375a7f;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#303030}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#161616}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:2px;margin-bottom:21px;line-height:1.42857143;background-color:#222222;border:1px solid #464545;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0ce3ac}.thumbnail .caption{padding:9px;color:#ffffff}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#00bc8c;border-color:#00bc8c;color:#ffffff}.alert-success hr{border-top-color:#00a379}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#3498db;border-color:#3498db;color:#ffffff}.alert-info hr{border-top-color:#258cd1}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f39c12;border-color:#f39c12;color:#ffffff}.alert-warning hr{border-top-color:#e08e0b}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#e74c3c;border-color:#e74c3c;color:#ffffff}.alert-danger hr{border-top-color:#e43725}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#ebebeb;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#375a7f;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#00bc8c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3498db}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f39c12}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#e74c3c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#303030;border:1px solid #464545}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#0ce3ac}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#0bcb9a}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#0ce3ac;background-color:transparent}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#ebebeb;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#375a7f;border-color:#375a7f}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a8c0da}.list-group-item-success{color:#ffffff;background-color:#00bc8c}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#00a379}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#3498db}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#258cd1}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#f39c12}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#e08e0b}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#e74c3c}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#e43725}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#303030;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#464545;border-top:1px solid #464545;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #464545}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #464545}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #464545}.panel-default{border-color:#464545}.panel-default>.panel-heading{color:#ffffff;background-color:#303030;border-color:#464545}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#464545}.panel-default>.panel-heading .badge{color:#303030;background-color:#ffffff}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#464545}.panel-primary{border-color:#375a7f}.panel-primary>.panel-heading{color:#ffffff;background-color:#375a7f;border-color:#375a7f}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#375a7f}.panel-primary>.panel-heading .badge{color:#375a7f;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#375a7f}.panel-success{border-color:#00bc8c}.panel-success>.panel-heading{color:#ffffff;background-color:#00bc8c;border-color:#00bc8c}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00bc8c}.panel-success>.panel-heading .badge{color:#00bc8c;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00bc8c}.panel-info{border-color:#3498db}.panel-info>.panel-heading{color:#ffffff;background-color:#3498db;border-color:#3498db}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3498db}.panel-info>.panel-heading .badge{color:#3498db;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3498db}.panel-warning{border-color:#f39c12}.panel-warning>.panel-heading{color:#ffffff;background-color:#f39c12;border-color:#f39c12}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f39c12}.panel-warning>.panel-heading .badge{color:#f39c12;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f39c12}.panel-danger{border-color:#e74c3c}.panel-danger>.panel-heading{color:#ffffff;background-color:#e74c3c;border-color:#e74c3c}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#e74c3c}.panel-danger>.panel-heading .badge{color:#e74c3c;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#e74c3c}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#303030;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#303030;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.7;filter:alpha(opacity=70)}.modal-header{padding:15px;border-bottom:1px solid #464545;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #464545}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#303030;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#282828;border-bottom:1px solid #1c1c1c;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#303030}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#303030}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#303030}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#303030;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border-width:0}.navbar-default .badge{background-color:#fff;color:#375a7f}.navbar-inverse .badge{background-color:#fff;color:#00bc8c}.navbar-brand{line-height:1}.navbar-form .form-control{background-color:white}.navbar-form .form-control:focus{border-color:white}.btn{border-width:2px}.btn:active{-webkit-box-shadow:none;box-shadow:none}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.text-primary,.text-primary:hover{color:#4673a3}.text-success,.text-success:hover{color:#00bc8c}.text-danger,.text-danger:hover{color:#e74c3c}.text-warning,.text-warning:hover{color:#f39c12}.text-info,.text-info:hover{color:#3498db}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success>th>a,.table .success>th>a,table .warning>th>a,.table .warning>th>a,table .danger>th>a,.table .danger>th>a,table .info>th>a,.table .info>th>a,table .success>td>a,.table .success>td>a,table .warning>td>a,.table .warning>td>a,table .danger>td>a,.table .danger>td>a,table .info>td>a,.table .info>td>a,table .success>a,.table .success>a,table .warning>a,.table .warning>a,table .danger>a,.table .danger>a,table .info>a,.table .info>a{color:#fff}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border:none}table-bordered>thead>tr>th,.table-bordered>thead>tr>th,table-bordered>tbody>tr>th,.table-bordered>tbody>tr>th,table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>th,table-bordered>thead>tr>td,.table-bordered>thead>tr>td,table-bordered>tbody>tr>td,.table-bordered>tbody>tr>td,table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #464545}input,textarea{color:#464545}.form-control,input,textarea{border:2px hidden transparent;-webkit-box-shadow:none;box-shadow:none}.form-control:focus,input:focus,textarea:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f39c12}.has-warning .form-control,.has-warning .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{border-color:#f39c12}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#e74c3c}.has-error .form-control,.has-error .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{border-color:#e74c3c}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#00bc8c}.has-success .form-control,.has-success .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{border-color:#00bc8c}.input-group-addon{color:#ffffff}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:#464545}.nav-tabs>li>a,.nav-pills>li>a{color:#fff}.pager a,.pager a:hover{color:#fff}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{background-color:#007053}.breadcrumb a{color:#fff}.close{text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{opacity:1}.alert .alert-link{color:#fff;text-decoration:underline}.progress{height:10px;-webkit-box-shadow:none;box-shadow:none}.progress .progress-bar{font-size:10px;line-height:10px}.well{-webkit-box-shadow:none;box-shadow:none}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#464545}a.list-group-item-success.active{background-color:#00bc8c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#00a379}a.list-group-item-warning.active{background-color:#f39c12}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#e08e0b}a.list-group-item-danger.active{background-color:#e74c3c}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#e43725}.popover{color:#ffffff}.panel-default>.panel-heading{background-color:#464545} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css index e24ad33222..acc88cc2d3 100644 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css +++ b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css @@ -268,8 +268,8 @@ th { } @font-face { font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + src: url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.eot'); + src: url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } .glyphicon { position: relative; diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css deleted file mode 100644 index 28ef0c6326..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=News+Cycle:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Georgia,"Times New Roman",Times,serif;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#eb6864;text-decoration:none}a:hover,a:focus{color:#e22620;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;line-height:1.1;color:#000000}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#eb6864}a.text-primary:hover,a.text-primary:focus{color:#e53c37}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#eb6864}a.bg-primary:hover,a.bg-primary:focus{background-color:#e53c37}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#777777;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.42857143;color:#777777}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:56px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:56px;line-height:56px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:56px;line-height:56px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:56px;min-height:40px;padding:15px 16px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:56px;height:56px;line-height:56px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#b7b7b7}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#999999;border-color:#999999}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#808080;border-color:#595959}.btn-default:hover{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#6e6e6e;border-color:#595959}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#999999;border-color:#999999}.btn-default .badge{color:#999999;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#e53c37;border-color:#b81c18}.btn-primary:hover{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#dc221c;border-color:#b81c18}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#eb6864;border-color:#eb6864}.btn-primary .badge{color:#eb6864;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#22b24c;border-color:#22b24c}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1a873a;border-color:#0e471e}.btn-success:hover{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#14692d;border-color:#0e471e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#22b24c;border-color:#22b24c}.btn-success .badge{color:#22b24c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#336699;border-color:#336699}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#264c73;border-color:#132639}.btn-info:hover{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#1d3b58;border-color:#132639}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#336699;border-color:#336699}.btn-info .badge{color:#336699;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f5e625;border-color:#f5e625}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ddce0a;border-color:#948a07}.btn-warning:hover{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#bbae09;border-color:#948a07}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f5e625;border-color:#f5e625}.btn-warning .badge{color:#f5e625;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#f57a00;border-color:#f57a00}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c26100;border-color:#763b00}.btn-danger:hover{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#9e4f00;border-color:#763b00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#f57a00;border-color:#f57a00}.btn-danger .badge{color:#f57a00;background-color:#ffffff}.btn-link{color:#eb6864;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#e22620;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#eb6864}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#eb6864}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:56px;line-height:56px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:normal;line-height:1;color:#777777;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#eb6864}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#eb6864}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:10.5px;margin-bottom:10.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:10.5px;margin-bottom:10.5px}.navbar-btn.btn-sm{margin-top:14.5px;margin-bottom:14.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#eeeeee}.navbar-default .navbar-brand{color:#000000}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-text{color:#000000}.navbar-default .navbar-nav>li>a{color:#000000}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#eeeeee}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#eeeeee;color:#000000}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#000000}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#000000}.navbar-default .navbar-link:hover{color:#000000}.navbar-default .btn-link{color:#000000}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#000000}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#eb6864;border-color:#e53c37}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#e53c37}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#e53c37}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#e74944}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#e74b47;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#eb6864;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#e22620;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#eb6864}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#e53c37}.label-success{background-color:#22b24c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1a873a}.label-info{background-color:#336699}.label-info[href]:hover,.label-info[href]:focus{background-color:#264c73}.label-warning{background-color:#f5e625}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ddce0a}.label-danger{background-color:#f57a00}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c26100}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#eb6864;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#eb6864;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#eb6864}.thumbnail .caption{padding:9px;color:#777777}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#eb6864;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#22b24c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#336699}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f5e625}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#f57a00}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#eb6864;border-color:#eb6864}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#ffffff}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#777777;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#777777}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#eb6864}.panel-primary>.panel-heading{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eb6864}.panel-primary>.panel-heading .badge{color:#eb6864;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eb6864}.panel-success{border-color:#22b24c}.panel-success>.panel-heading{color:#468847;background-color:#22b24c;border-color:#22b24c}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#22b24c}.panel-success>.panel-heading .badge{color:#22b24c;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#22b24c}.panel-info{border-color:#336699}.panel-info>.panel-heading{color:#3a87ad;background-color:#336699;border-color:#336699}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#336699}.panel-info>.panel-heading .badge{color:#336699;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#336699}.panel-warning{border-color:#f5e625}.panel-warning>.panel-heading{color:#c09853;background-color:#f5e625;border-color:#f5e625}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f5e625}.panel-warning>.panel-heading .badge{color:#f5e625;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f5e625}.panel-danger{border-color:#f57a00}.panel-danger>.panel-heading{color:#b94a48;background-color:#f57a00;border-color:#f57a00}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f57a00}.panel-danger>.panel-heading .badge{color:#f57a00;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f57a00}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{font-size:18px;font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700}.navbar-default .badge{background-color:#000;color:#fff}.navbar-inverse .badge{background-color:#fff;color:#eb6864}.navbar-brand{font-size:inherit;font-weight:700;text-transform:uppercase}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f57a00}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f57a00}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#eb6864}.has-error .form-control,.has-error .form-control:focus{border-color:#eb6864}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#22b24c}.has-success .form-control,.has-success .form-control:focus{border-color:#22b24c}.badge{padding-bottom:4px;vertical-align:3px;font-size:10px}.jumbotron h1,.jumbotron h2,.jumbotron h3,.jumbotron h4,.jumbotron h5,.jumbotron h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;color:#000}.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css deleted file mode 100644 index fd97f41138..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#158cba;text-decoration:none}a:hover,a:focus{color:#158cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:#333333}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#ff851b;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#158cba}a.text-primary:hover,a.text-primary:focus{color:#106a8c}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#158cba}a.bg-primary:hover,a.bg-primary:focus{background-color:#106a8c}.bg-success{background-color:#28b62c}a.bg-success:hover,a.bg-success:focus{background-color:#1f8c22}.bg-info{background-color:#75caeb}a.bg-info:hover,a.bg-info:focus{background-color:#48b9e5}.bg-warning{background-color:#ff851b}a.bg-warning:hover,a.bg-warning:focus{background-color:#e76b00}.bg-danger{background-color:#ff4136}a.bg-danger:hover,a.bg-danger:focus{background-color:#ff1103}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:2px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#28b62c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#23a127}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#75caeb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#5fc1e8}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff851b}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ff7701}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff4136}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ff291c}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:8px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:7px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #e7e7e7;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:28px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:52px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:8px;padding-bottom:8px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-sm{height:28px;line-height:28px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:28px;line-height:28px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:28px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-lg{height:52px;line-height:52px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:38px;padding:14px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:52px;height:52px;line-height:52px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:28px;height:28px;line-height:28px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#28b62c}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff851b}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff4136}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:8px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:8px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:18.3333329px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:5px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:7px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.btn-default:focus,.btn-default.focus{color:#555555;background-color:#d5d5d5;border-color:#a2a2a2}.btn-default:hover{color:#555555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#555555;background-color:#c3c3c3;border-color:#a2a2a2}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#eeeeee;border-color:#e2e2e2}.btn-default .badge{color:#eeeeee;background-color:#555555}.btn-primary{color:#ffffff;background-color:#158cba;border-color:#127ba3}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#106a8c;border-color:#052531}.btn-primary:hover{color:#ffffff;background-color:#106a8c;border-color:#0c516c}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#106a8c;border-color:#0c516c}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#0c516c;border-color:#052531}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#158cba;border-color:#127ba3}.btn-primary .badge{color:#158cba;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#28b62c;border-color:#23a127}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1f8c22;border-color:#0c390e}.btn-success:hover{color:#ffffff;background-color:#1f8c22;border-color:#186f1b}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1f8c22;border-color:#186f1b}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#186f1b;border-color:#0c390e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#28b62c;border-color:#23a127}.btn-success .badge{color:#28b62c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#75caeb;border-color:#5fc1e8}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#48b9e5;border-color:#1984ae}.btn-info:hover{color:#ffffff;background-color:#48b9e5;border-color:#29ade0}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#48b9e5;border-color:#29ade0}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#29ade0;border-color:#1984ae}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#75caeb;border-color:#5fc1e8}.btn-info .badge{color:#75caeb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff851b;border-color:#ff7701}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e76b00;border-color:#813c00}.btn-warning:hover{color:#ffffff;background-color:#e76b00;border-color:#c35b00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e76b00;border-color:#c35b00}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c35b00;border-color:#813c00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff851b;border-color:#ff7701}.btn-warning .badge{color:#ff851b;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff4136;border-color:#ff291c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#ff1103;border-color:#9c0900}.btn-danger:hover{color:#ffffff;background-color:#ff1103;border-color:#de0c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#ff1103;border-color:#de0c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#de0c00;border-color:#9c0900}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ff4136;border-color:#ff291c}.btn-danger .badge{color:#ff4136;background-color:#ffffff}.btn-link{color:#158cba;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#158cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.btn-sm,.btn-group-sm>.btn{padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid #e7e7e7;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eeeeee}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#333333;background-color:transparent}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#158cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#eeeeee}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:28px;line-height:28px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:7px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #e7e7e7;border-radius:4px}.input-group-addon.input-sm{padding:4px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg{padding:13px 16px;font-size:18px;border-radius:5px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#ffffff}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#ffffff;border-color:#158cba}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #e7e7e7}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #e7e7e7}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #e7e7e7;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#158cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:11px;margin-bottom:11px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#333333}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-default .navbar-text{color:#555555}.navbar-default .navbar-nav>li>a{color:#999999}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-default .navbar-toggle{border-color:#eeeeee}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ffffff}.navbar-default .navbar-toggle .icon-bar{background-color:#999999}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-default .navbar-link{color:#999999}.navbar-default .navbar-link:hover{color:#333333}.navbar-default .btn-link{color:#999999}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#eeeeee}.navbar-inverse{background-color:#ffffff;border-color:#e6e6e6}.navbar-inverse .navbar-brand{color:#999999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-text{color:#999999}.navbar-inverse .navbar-nav>li>a{color:#999999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#eeeeee}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#eeeeee}.navbar-inverse .navbar-toggle .icon-bar{background-color:#999999}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-inverse .navbar-link{color:#999999}.navbar-inverse .navbar-link:hover{color:#333333}.navbar-inverse .btn-link{color:#999999}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#333333}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#eeeeee}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#fafafa;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:">\00a0";padding:0 5px;color:#999999}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:7px 12px;line-height:1.42857143;text-decoration:none;color:#555555;background-color:#eeeeee;border:1px solid #e2e2e2;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#158cba;border-color:#127ba3;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#eeeeee;border-color:#e2e2e2;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:13px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:5px;border-top-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:5px;border-top-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:4px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#eeeeee;border:1px solid #e2e2e2;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#eeeeee;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#158cba}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#106a8c}.label-success{background-color:#28b62c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1f8c22}.label-info{background-color:#75caeb}.label-info[href]:hover,.label-info[href]:focus{background-color:#48b9e5}.label-warning{background-color:#ff851b}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e76b00}.label-danger{background-color:#ff4136}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#ff1103}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#158cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#158cba;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:5px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#158cba}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#28b62c;border-color:#24a528;color:#ffffff}.alert-success hr{border-top-color:#209023}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#75caeb;border-color:#40b5e3;color:#ffffff}.alert-info hr{border-top-color:#29ade0}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff851b;border-color:#ff7701;color:#ffffff}.alert-warning hr{border-top-color:#e76b00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ff4136;border-color:#ff1103;color:#ffffff}.alert-danger hr{border-top-color:#e90d00}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#fafafa;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#158cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#28b62c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#75caeb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff851b}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff4136}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#158cba;border-color:#158cba}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a6dff5}.list-group-item-success{color:#ffffff;background-color:#28b62c}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#23a127}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#75caeb}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#5fc1e8}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff851b}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#ff7701}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff4136}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ff291c}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#ffffff;background-color:#158cba;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#158cba;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#ffffff;background-color:#28b62c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#28b62c;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#ffffff;background-color:#75caeb;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#75caeb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff851b;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#ff851b;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff4136;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#ff4136;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border-width:0 1px 4px 1px}.btn{padding:9px 12px 7px;border-width:0 1px 4px 1px;font-size:12px;font-weight:bold;text-transform:uppercase}.btn:hover{margin-top:1px;border-bottom-width:3px}.btn:active{margin-top:2px;border-bottom-width:2px;-webkit-box-shadow:none;box-shadow:none}.btn-lg,.btn-group-lg>.btn{padding:15px 16px 13px;line-height:15px}.btn-sm,.btn-group-sm>.btn{padding:6px 10px 4px}.btn-xs,.btn-group-xs>.btn{padding:3px 5px 1px}.btn-default:hover,.btn-default:focus,.btn-group.open .dropdown-toggle.btn-default{background-color:#eeeeee;border-color:#e2e2e2}.btn-primary:hover,.btn-primary:focus,.btn-group.open .dropdown-toggle.btn-primary{background-color:#158cba;border-color:#127ba3}.btn-success:hover,.btn-success:focus,.btn-group.open .dropdown-toggle.btn-success{background-color:#28b62c;border-color:#23a127}.btn-info:hover,.btn-info:focus,.btn-group.open .dropdown-toggle.btn-info{background-color:#75caeb;border-color:#5fc1e8}.btn-warning:hover,.btn-warning:focus,.btn-group.open .dropdown-toggle.btn-warning{background-color:#ff851b;border-color:#ff7701}.btn-danger:hover,.btn-danger:focus,.btn-group.open .dropdown-toggle.btn-danger{background-color:#ff4136;border-color:#ff291c}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.navbar-btn:hover{margin-top:8px}.navbar-btn:active{margin-top:9px}.navbar-btn.btn-sm:hover{margin-top:11px}.navbar-btn.btn-sm:active{margin-top:12px}.navbar-btn.btn-xs:hover{margin-top:15px}.navbar-btn.btn-xs:active{margin-top:16px}.btn-group-vertical .btn+.btn:hover{border-top-width:1px}.btn-group-vertical .btn+.btn:active{border-top-width:2px}.text-primary,.text-primary:hover{color:#158cba}.text-success,.text-success:hover{color:#28b62c}.text-danger,.text-danger:hover{color:#ff4136}.text-warning,.text-warning:hover{color:#ff851b}.text-info,.text-info:hover{color:#75caeb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a:not(.btn),.table .success a:not(.btn),table .warning a:not(.btn),.table .warning a:not(.btn),table .danger a:not(.btn),.table .danger a:not(.btn),table .info a:not(.btn),.table .info a:not(.btn){color:#fff}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border-color:transparent}.form-control{-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}label{font-weight:normal}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff851b}.has-warning .form-control,.has-warning .form-control:focus{border:1px solid #ff851b;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-warning .input-group-addon{border:1px solid #ff851b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ff4136}.has-error .form-control,.has-error .form-control:focus{border:1px solid #ff4136;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-error .input-group-addon{border:1px solid #ff4136}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#28b62c}.has-success .form-control,.has-success .form-control:focus{border:1px solid #28b62c;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-success .input-group-addon{border:1px solid #28b62c}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{margin-top:6px;border-color:#e7e7e7;color:#333333;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus,.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{padding-bottom:16px;margin-top:0}.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{border-color:#e7e7e7}.nav-tabs>li.disabled>a:hover,.nav-tabs>li.disabled>a:focus{padding-top:10px;padding-bottom:10px;margin-top:6px}.nav-tabs.nav-justified>li{vertical-align:bottom}.dropdown-menu{margin-top:0;border-width:0 1px 4px 1px;border-top-width:1px;-webkit-box-shadow:none;box-shadow:none}.breadcrumb{border-color:#ededed;border-style:solid;border-width:0 1px 4px 1px}.pagination>li>a,.pager>li>a,.pagination>li>span,.pager>li>span{position:relative;top:0;border-width:0 1px 4px 1px;color:#555555;font-size:12px;font-weight:bold;text-transform:uppercase}.pagination>li>a:hover,.pager>li>a:hover,.pagination>li>span:hover,.pager>li>span:hover{top:1px;border-bottom-width:3px}.pagination>li>a:active,.pager>li>a:active,.pagination>li>span:active,.pager>li>span:active{top:2px;border-bottom-width:2px}.pagination>.disabled>a:hover,.pager>.disabled>a:hover,.pagination>.disabled>span:hover,.pager>.disabled>span:hover{top:0;border-width:0 1px 4px 1px}.pagination>.disabled>a:active,.pager>.disabled>a:active,.pagination>.disabled>span:active,.pager>.disabled>span:active{top:0;border-width:0 1px 4px 1px}.pager>li>a,.pager>li>span,.pager>.disabled>a,.pager>.disabled>span,.pager>li>a:hover,.pager>li>span:hover,.pager>.disabled>a:hover,.pager>.disabled>span:hover,.pager>li>a:active,.pager>li>span:active,.pager>.disabled>a:active,.pager>.disabled>span:active{border-left-width:2px;border-right-width:2px}.close{color:#fff;text-decoration:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}.alert{border-width:0 1px 4px 1px}.alert .alert-link{font-weight:normal;color:#fff;text-decoration:underline}.label{font-weight:normal}.progress{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.1);box-shadow:inset 0 2px 0 rgba(0,0,0,0.1)}.progress-bar{-webkit-box-shadow:inset 0 -4px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -4px 0 rgba(0,0,0,0.15)}.well{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.05);box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#dddddd}a.list-group-item-success.active{background-color:#28b62c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#23a127}a.list-group-item-warning.active{background-color:#ff851b}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#ff7701}a.list-group-item-danger.active{background-color:#ff4136}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ff291c}.jumbotron{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.05);box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}.panel{border:1px solid #e7e7e7;border-width:0 1px 4px 1px}.panel-default .close{color:#555555}.modal .close{color:#555555}.popover{color:#555555} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css deleted file mode 100644 index 85fffdd95d..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.846;color:#666666;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2196f3;text-decoration:none}a:hover,a:focus{color:#0a6ebd;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.846;background-color:#ffffff;border:1px solid #dddddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:23px;margin-bottom:23px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:#444444}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#bbbbbb}h1,.h1,h2,.h2,h3,.h3{margin-top:23px;margin-bottom:11.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:11.5px;margin-bottom:11.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:56px}h2,.h2{font-size:45px}h3,.h3{font-size:34px}h4,.h4{font-size:24px}h5,.h5{font-size:20px}h6,.h6{font-size:14px}p{margin:0 0 11.5px}.lead{margin-bottom:23px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#ffe0b2;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#bbbbbb}.text-primary{color:#2196f3}a.text-primary:hover,a.text-primary:focus{color:#0c7cd5}.text-success{color:#4caf50}a.text-success:hover,a.text-success:focus{color:#3d8b40}.text-info{color:#9c27b0}a.text-info:hover,a.text-info:focus{color:#771e86}.text-warning{color:#ff9800}a.text-warning:hover,a.text-warning:focus{color:#cc7a00}.text-danger{color:#e51c23}a.text-danger:hover,a.text-danger:focus{color:#b9151b}.bg-primary{color:#fff;background-color:#2196f3}a.bg-primary:hover,a.bg-primary:focus{background-color:#0c7cd5}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#e1bee7}a.bg-info:hover,a.bg-info:focus{background-color:#d099d9}.bg-warning{background-color:#ffe0b2}a.bg-warning:hover,a.bg-warning:focus{background-color:#ffcb7f}.bg-danger{background-color:#f9bdbb}a.bg-danger:hover,a.bg-danger:focus{background-color:#f5908c}.page-header{padding-bottom:10.5px;margin:46px 0 23px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:11.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:23px}dt,dd{line-height:1.846}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #bbbbbb}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:11.5px 23px;margin:0 0 23px;font-size:16.25px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.846;color:#bbbbbb}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:23px;font-style:normal;line-height:1.846}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:3px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:11px;margin:0 0 11.5px;font-size:12px;line-height:1.846;word-break:break-all;word-wrap:break-word;color:#212121;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#bbbbbb;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:23px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.846;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#e1bee7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#d8abe0}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ffe0b2}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ffd699}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f9bdbb}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#f7a6a4}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:17.25px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:23px;font-size:19.5px;line-height:inherit;color:#212121;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.846;color:#666666}.form-control{display:block;width:100%;height:37px;padding:6px 16px;font-size:13px;line-height:1.846;color:#666666;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#bbbbbb;opacity:1}.form-control:-ms-input-placeholder{color:#bbbbbb}.form-control::-webkit-input-placeholder{color:#bbbbbb}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:transparent;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:37px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:45px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:23px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:35px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-lg{height:45px;line-height:45px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}.form-group-lg select.form-control{height:45px;line-height:45px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:45px;min-height:40px;padding:11px 16px;font-size:17px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:46.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:37px;height:37px;line-height:37px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:45px;height:45px;line-height:45px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#4caf50}.has-success .form-control{border-color:#4caf50;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#3d8b40;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #92cf94;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #92cf94}.has-success .input-group-addon{color:#4caf50;border-color:#4caf50;background-color:#dff0d8}.has-success .form-control-feedback{color:#4caf50}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ff9800}.has-warning .form-control{border-color:#ff9800;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#cc7a00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffc166;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffc166}.has-warning .input-group-addon{color:#ff9800;border-color:#ff9800;background-color:#ffe0b2}.has-warning .form-control-feedback{color:#ff9800}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#e51c23}.has-error .form-control{border-color:#e51c23;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#b9151b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ef787c;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ef787c}.has-error .input-group-addon{color:#e51c23;border-color:#e51c23;background-color:#f9bdbb}.has-error .form-control-feedback{color:#e51c23}.has-feedback label~.form-control-feedback{top:28px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a6a6a6}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px;font-size:17px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 16px;font-size:13px;line-height:1.846;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#444444;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#444444;background-color:#ffffff;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#444444;background-color:#d4d4d4;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:transparent}.btn-default .badge{color:#ffffff;background-color:#444444}.btn-primary{color:#ffffff;background-color:#2196f3;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#0a68b4;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2196f3;border-color:transparent}.btn-primary .badge{color:#2196f3;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#4caf50;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#327334;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#4caf50;border-color:transparent}.btn-success .badge{color:#4caf50;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9c27b0;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#5d1769;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9c27b0;border-color:transparent}.btn-info .badge{color:#9c27b0;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff9800;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a86400;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff9800;border-color:transparent}.btn-warning .badge{color:#ff9800;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#e51c23;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#991216;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#e51c23;border-color:transparent}.btn-danger .badge{color:#e51c23;background-color:#ffffff}.btn-link{color:#2196f3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0a6ebd;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#bbbbbb;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.846;color:#666666;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#141414;background-color:#eeeeee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2196f3}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#bbbbbb}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.846;color:#bbbbbb;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 16px;font-size:13px;font-weight:normal;line-height:1;color:#666666;text-align:center;background-color:transparent;border:1px solid transparent;border-radius:3px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#bbbbbb}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#bbbbbb;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#2196f3}.nav .nav-divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid transparent}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.846;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee transparent}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#666666;background-color:transparent;border:1px solid transparent;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid transparent}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:3px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2196f3}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid transparent}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:64px;margin-bottom:23px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:3px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:20.5px 15px;font-size:17px;line-height:23px;height:64px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:15px;margin-bottom:15px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:23px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:23px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:20.5px;padding-bottom:20.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:13.5px;margin-bottom:13.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:13.5px;margin-bottom:13.5px}.navbar-btn.btn-sm{margin-top:17px;margin-bottom:17px}.navbar-btn.btn-xs{margin-top:21px;margin-bottom:21px}.navbar-text{margin-top:20.5px;margin-bottom:20.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:transparent}.navbar-default .navbar-brand{color:#666666}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#212121;background-color:transparent}.navbar-default .navbar-text{color:#bbbbbb}.navbar-default .navbar-nav>li>a{color:#666666}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#212121;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#212121;background-color:#eeeeee}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:rgba(0,0,0,0.5)}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#eeeeee;color:#212121}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#666666}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#212121;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#212121;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#666666}.navbar-default .navbar-link:hover{color:#212121}.navbar-default .btn-link{color:#666666}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#212121}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#2196f3;border-color:transparent}.navbar-inverse .navbar-brand{color:#b2dbfb}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#bbbbbb}.navbar-inverse .navbar-nav>li>a{color:#b2dbfb}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#0c7cd5}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:rgba(0,0,0,0.5)}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#0c84e4}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#0c7cd5;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#b2dbfb}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#0c7cd5}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#b2dbfb}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#b2dbfb}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:23px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#bbbbbb}.pagination{display:inline-block;padding-left:0;margin:23px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 16px;line-height:1.846;text-decoration:none;color:#2196f3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#0a6ebd;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#2196f3;border-color:#2196f3;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#bbbbbb;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:23px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#bbbbbb;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#bbbbbb}.label-default[href]:hover,.label-default[href]:focus{background-color:#a2a2a2}.label-primary{background-color:#2196f3}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#0c7cd5}.label-success{background-color:#4caf50}.label-success[href]:hover,.label-success[href]:focus{background-color:#3d8b40}.label-info{background-color:#9c27b0}.label-info[href]:hover,.label-info[href]:focus{background-color:#771e86}.label-warning{background-color:#ff9800}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#cc7a00}.label-danger{background-color:#e51c23}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#b9151b}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#bbbbbb;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2196f3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f9f9f9}.jumbotron h1,.jumbotron .h1{color:#444444}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#e0e0e0}.container .jumbotron,.container-fluid .jumbotron{border-radius:3px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:59px}}.thumbnail{display:block;padding:4px;margin-bottom:23px;line-height:1.846;background-color:#ffffff;border:1px solid #dddddd;border-radius:3px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2196f3}.thumbnail .caption{padding:9px;color:#666666}.alert{padding:15px;margin-bottom:23px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#4caf50}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#3d8b40}.alert-info{background-color:#e1bee7;border-color:#cba4dd;color:#9c27b0}.alert-info hr{border-top-color:#c191d6}.alert-info .alert-link{color:#771e86}.alert-warning{background-color:#ffe0b2;border-color:#ffc599;color:#ff9800}.alert-warning hr{border-top-color:#ffb67f}.alert-warning .alert-link{color:#cc7a00}.alert-danger{background-color:#f9bdbb;border-color:#f7a4af;color:#e51c23}.alert-danger hr{border-top-color:#f58c9a}.alert-danger .alert-link{color:#b9151b}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:23px;margin-bottom:23px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:23px;color:#ffffff;text-align:center;background-color:#2196f3;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#4caf50}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9c27b0}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff9800}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#e51c23}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#bbbbbb;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#bbbbbb}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2196f3;border-color:#2196f3}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e3f2fd}.list-group-item-success{color:#4caf50;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#4caf50}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#4caf50;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#4caf50;border-color:#4caf50}.list-group-item-info{color:#9c27b0;background-color:#e1bee7}a.list-group-item-info,button.list-group-item-info{color:#9c27b0}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#9c27b0;background-color:#d8abe0}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#9c27b0;border-color:#9c27b0}.list-group-item-warning{color:#ff9800;background-color:#ffe0b2}a.list-group-item-warning,button.list-group-item-warning{color:#ff9800}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ff9800;background-color:#ffd699}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ff9800;border-color:#ff9800}.list-group-item-danger{color:#e51c23;background-color:#f9bdbb}a.list-group-item-danger,button.list-group-item-danger{color:#e51c23}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#e51c23;background-color:#f7a6a4}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#e51c23;border-color:#e51c23}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:23px;background-color:#ffffff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:23px}.panel-group .panel{margin-bottom:0;border-radius:3px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#212121;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#212121}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#2196f3}.panel-primary>.panel-heading{color:#ffffff;background-color:#2196f3;border-color:#2196f3}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2196f3}.panel-primary>.panel-heading .badge{color:#2196f3;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2196f3}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#ffffff;background-color:#4caf50;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#4caf50;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#cba4dd}.panel-info>.panel-heading{color:#ffffff;background-color:#9c27b0;border-color:#cba4dd}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#cba4dd}.panel-info>.panel-heading .badge{color:#9c27b0;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#cba4dd}.panel-warning{border-color:#ffc599}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff9800;border-color:#ffc599}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ffc599}.panel-warning>.panel-heading .badge{color:#ff9800;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ffc599}.panel-danger{border-color:#f7a4af}.panel-danger>.panel-heading{color:#ffffff;background-color:#e51c23;border-color:#f7a4af}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f7a4af}.panel-danger>.panel-heading .badge{color:#e51c23;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f7a4af}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f9f9f9;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:normal;line-height:1;color:#000000;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid transparent;min-height:16.846px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.846}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid transparent}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.846;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#727272;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#727272}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#727272}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.846;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:rgba(0,0,0,0);border-top-color:rgba(0,0,0,0.075);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:rgba(0,0,0,0);border-right-color:rgba(0,0,0,0.075)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0.075);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0.075)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border:none;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.3);box-shadow:0 1px 2px rgba(0,0,0,0.3)}.navbar-brand{font-size:24px}.navbar-inverse .form-control{color:#fff}.navbar-inverse .form-control::-moz-placeholder{color:#b2dbfb;opacity:1}.navbar-inverse .form-control:-ms-input-placeholder{color:#b2dbfb}.navbar-inverse .form-control::-webkit-input-placeholder{color:#b2dbfb}.navbar-inverse .form-control[type=text],.navbar-inverse .form-control[type=password]{-webkit-box-shadow:inset 0 -1px 0 #b2dbfb;box-shadow:inset 0 -1px 0 #b2dbfb}.navbar-inverse .form-control[type=text]:focus,.navbar-inverse .form-control[type=password]:focus{-webkit-box-shadow:inset 0 -2px 0 #fff;box-shadow:inset 0 -2px 0 #fff}.btn-default{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-default:focus{background-color:#ffffff}.btn-default:hover,.btn-default:active:hover{background-color:#f0f0f0}.btn-default:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:-o-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-primary{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-primary:focus{background-color:#2196f3}.btn-primary:hover,.btn-primary:active:hover{background-color:#0d87e9}.btn-primary:active{background-color:#0b76cc;background-image:-webkit-radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-image:-o-radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-image:radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-success{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-success:focus{background-color:#4caf50}.btn-success:hover,.btn-success:active:hover{background-color:#439a46}.btn-success:active{background-color:#39843c;background-image:-webkit-radial-gradient(circle, #39843c 10%, #4caf50 11%);background-image:-o-radial-gradient(circle, #39843c 10%, #4caf50 11%);background-image:radial-gradient(circle, #39843c 10%, #4caf50 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-info{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-info:focus{background-color:#9c27b0}.btn-info:hover,.btn-info:active:hover{background-color:#862197}.btn-info:active{background-color:#701c7e;background-image:-webkit-radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-image:-o-radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-image:radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-warning{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-warning:focus{background-color:#ff9800}.btn-warning:hover,.btn-warning:active:hover{background-color:#e08600}.btn-warning:active{background-color:#c27400;background-image:-webkit-radial-gradient(circle, #c27400 10%, #ff9800 11%);background-image:-o-radial-gradient(circle, #c27400 10%, #ff9800 11%);background-image:radial-gradient(circle, #c27400 10%, #ff9800 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-danger{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-danger:focus{background-color:#e51c23}.btn-danger:hover,.btn-danger:active:hover{background-color:#cb171e}.btn-danger:active{background-color:#b0141a;background-image:-webkit-radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-image:-o-radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-image:radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-link{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-link:focus{background-color:#ffffff}.btn-link:hover,.btn-link:active:hover{background-color:#f0f0f0}.btn-link:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:-o-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn{text-transform:uppercase;border:none;-webkit-box-shadow:1px 1px 4px rgba(0,0,0,0.4);box-shadow:1px 1px 4px rgba(0,0,0,0.4);-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.btn-link{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#444444}.btn-link:hover,.btn-link:focus{-webkit-box-shadow:none;box-shadow:none;color:#444444;text-decoration:none}.btn-default.disabled{background-color:rgba(0,0,0,0.1);color:rgba(0,0,0,0.4);opacity:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:0}body{-webkit-font-smoothing:antialiased;letter-spacing:.1px}p{margin:0 0 1em}input,button{-webkit-font-smoothing:antialiased;letter-spacing:.1px}a{-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.table-hover>tbody>tr,.table-hover>tbody>tr>th,.table-hover>tbody>tr>td{-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}label{font-weight:normal}textarea,textarea.form-control,input.form-control,input[type=text],input[type=password],input[type=email],input[type=number],[type=text].form-control,[type=password].form-control,[type=email].form-control,[type=tel].form-control,[contenteditable].form-control{padding:0;border:none;border-radius:0;-webkit-appearance:none;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px}textarea:focus,textarea.form-control:focus,input.form-control:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=number]:focus,[type=text].form-control:focus,[type=password].form-control:focus,[type=email].form-control:focus,[type=tel].form-control:focus,[contenteditable].form-control:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3}textarea[disabled],textarea.form-control[disabled],input.form-control[disabled],input[type=text][disabled],input[type=password][disabled],input[type=email][disabled],input[type=number][disabled],[type=text].form-control[disabled],[type=password].form-control[disabled],[type=email].form-control[disabled],[type=tel].form-control[disabled],[contenteditable].form-control[disabled],textarea[readonly],textarea.form-control[readonly],input.form-control[readonly],input[type=text][readonly],input[type=password][readonly],input[type=email][readonly],input[type=number][readonly],[type=text].form-control[readonly],[type=password].form-control[readonly],[type=email].form-control[readonly],[type=tel].form-control[readonly],[contenteditable].form-control[readonly]{-webkit-box-shadow:none;box-shadow:none;border-bottom:1px dotted #ddd}textarea.input-sm,textarea.form-control.input-sm,input.form-control.input-sm,input[type=text].input-sm,input[type=password].input-sm,input[type=email].input-sm,input[type=number].input-sm,[type=text].form-control.input-sm,[type=password].form-control.input-sm,[type=email].form-control.input-sm,[type=tel].form-control.input-sm,[contenteditable].form-control.input-sm{font-size:12px}textarea.input-lg,textarea.form-control.input-lg,input.form-control.input-lg,input[type=text].input-lg,input[type=password].input-lg,input[type=email].input-lg,input[type=number].input-lg,[type=text].form-control.input-lg,[type=password].form-control.input-lg,[type=email].form-control.input-lg,[type=tel].form-control.input-lg,[contenteditable].form-control.input-lg{font-size:17px}select,select.form-control{border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:0;padding-right:0\9;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);-webkit-background-size:13px 13px;background-size:13px;background-repeat:no-repeat;background-position:right center;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px;line-height:1.5}select::-ms-expand,select.form-control::-ms-expand{display:none}select.input-sm,select.form-control.input-sm{font-size:12px}select.input-lg,select.form-control.input-lg{font-size:17px}select:focus,select.form-control:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=)}select[multiple],select.form-control[multiple]{background:none}.radio label,.radio-inline label,.checkbox label,.checkbox-inline label{padding-left:25px}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="radio"],.checkbox-inline input[type="radio"],.radio input[type="checkbox"],.radio-inline input[type="checkbox"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{margin-left:-25px}input[type="radio"],.radio input[type="radio"],.radio-inline input[type="radio"]{position:relative;margin-top:6px;margin-right:4px;vertical-align:top;border:none;background-color:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}input[type="radio"]:focus,.radio input[type="radio"]:focus,.radio-inline input[type="radio"]:focus{outline:none}input[type="radio"]:before,.radio input[type="radio"]:before,.radio-inline input[type="radio"]:before,input[type="radio"]:after,.radio input[type="radio"]:after,.radio-inline input[type="radio"]:after{content:"";display:block;width:18px;height:18px;border-radius:50%;-webkit-transition:240ms;-o-transition:240ms;transition:240ms}input[type="radio"]:before,.radio input[type="radio"]:before,.radio-inline input[type="radio"]:before{position:absolute;left:0;top:-3px;background-color:#2196f3;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}input[type="radio"]:after,.radio input[type="radio"]:after,.radio-inline input[type="radio"]:after{position:relative;top:-3px;border:2px solid #666666}input[type="radio"]:checked:before,.radio input[type="radio"]:checked:before,.radio-inline input[type="radio"]:checked:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}input[type="radio"]:disabled:checked:before,.radio input[type="radio"]:disabled:checked:before,.radio-inline input[type="radio"]:disabled:checked:before{background-color:#bbbbbb}input[type="radio"]:checked:after,.radio input[type="radio"]:checked:after,.radio-inline input[type="radio"]:checked:after{border-color:#2196f3}input[type="radio"]:disabled:after,.radio input[type="radio"]:disabled:after,.radio-inline input[type="radio"]:disabled:after,input[type="radio"]:disabled:checked:after,.radio input[type="radio"]:disabled:checked:after,.radio-inline input[type="radio"]:disabled:checked:after{border-color:#bbbbbb}input[type="checkbox"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:relative;border:none;margin-bottom:-4px;-webkit-appearance:none;appearance:none;cursor:pointer}input[type="checkbox"]:focus,.checkbox input[type="checkbox"]:focus,.checkbox-inline input[type="checkbox"]:focus{outline:none}input[type="checkbox"]:focus:after,.checkbox input[type="checkbox"]:focus:after,.checkbox-inline input[type="checkbox"]:focus:after{border-color:#2196f3}input[type="checkbox"]:after,.checkbox input[type="checkbox"]:after,.checkbox-inline input[type="checkbox"]:after{content:"";display:block;width:18px;height:18px;margin-top:-2px;margin-right:5px;border:2px solid #666666;border-radius:2px;-webkit-transition:240ms;-o-transition:240ms;transition:240ms}input[type="checkbox"]:checked:before,.checkbox input[type="checkbox"]:checked:before,.checkbox-inline input[type="checkbox"]:checked:before{content:"";position:absolute;top:0;left:6px;display:table;width:6px;height:12px;border:2px solid #fff;border-top-width:0;border-left-width:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}input[type="checkbox"]:checked:after,.checkbox input[type="checkbox"]:checked:after,.checkbox-inline input[type="checkbox"]:checked:after{background-color:#2196f3;border-color:#2196f3}input[type="checkbox"]:disabled:after,.checkbox input[type="checkbox"]:disabled:after,.checkbox-inline input[type="checkbox"]:disabled:after{border-color:#bbbbbb}input[type="checkbox"]:disabled:checked:after,.checkbox input[type="checkbox"]:disabled:checked:after,.checkbox-inline input[type="checkbox"]:disabled:checked:after{background-color:#bbbbbb;border-color:transparent}.has-warning input:not([type=checkbox]),.has-warning .form-control,.has-warning input.form-control[readonly],.has-warning input[type=text][readonly],.has-warning [type=text].form-control[readonly],.has-warning input:not([type=checkbox]):focus,.has-warning .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #ff9800;box-shadow:inset 0 -2px 0 #ff9800}.has-error input:not([type=checkbox]),.has-error .form-control,.has-error input.form-control[readonly],.has-error input[type=text][readonly],.has-error [type=text].form-control[readonly],.has-error input:not([type=checkbox]):focus,.has-error .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #e51c23;box-shadow:inset 0 -2px 0 #e51c23}.has-success input:not([type=checkbox]),.has-success .form-control,.has-success input.form-control[readonly],.has-success input[type=text][readonly],.has-success [type=text].form-control[readonly],.has-success input:not([type=checkbox]):focus,.has-success .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #4caf50;box-shadow:inset 0 -2px 0 #4caf50}.has-warning .input-group-addon,.has-error .input-group-addon,.has-success .input-group-addon{color:#666666;border-color:transparent;background-color:transparent}.nav-tabs>li>a,.nav-tabs>li>a:focus{margin-right:0;background-color:transparent;border:none;color:#666666;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus:hover{background-color:transparent;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus{border:none;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3}.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus:hover{border:none;color:#2196f3}.nav-tabs>li.disabled>a{-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd}.nav-tabs.nav-justified>li>a,.nav-tabs.nav-justified>li>a:hover,.nav-tabs.nav-justified>li>a:focus,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:none}.nav-tabs .dropdown-menu{margin-top:0}.dropdown-menu{margin-top:0;border:none;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.alert{border:none;color:#fff}.alert-success{background-color:#4caf50}.alert-info{background-color:#9c27b0}.alert-warning{background-color:#ff9800}.alert-danger{background-color:#e51c23}.alert a:not(.close),.alert .alert-link{color:#fff;font-weight:bold}.alert .close{color:#fff}.badge{padding:3px 6px 5px}.progress{position:relative;z-index:1;height:6px;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress-bar:last-child{border-radius:0 3px 3px 0}.progress-bar:last-child:before{display:block;content:"";position:absolute;width:100%;height:100%;left:0;right:0;z-index:-1;background-color:#cae6fc}.progress-bar-success:last-child.progress-bar:before{background-color:#c7e7c8}.progress-bar-info:last-child.progress-bar:before{background-color:#edc9f3}.progress-bar-warning:last-child.progress-bar:before{background-color:#ffe0b3}.progress-bar-danger:last-child.progress-bar:before{background-color:#f28e92}.close{font-size:34px;font-weight:300;line-height:24px;opacity:0.6;-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.close:hover{opacity:1}.list-group-item{padding:15px}.list-group-item-text{color:#bbbbbb}.well{border-radius:0;-webkit-box-shadow:none;box-shadow:none}.panel{border:none;border-radius:2px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.panel-heading{border-bottom:none}.panel-footer{border-top:none}.popover{border:none;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.carousel-caption h1,.carousel-caption h2,.carousel-caption h3,.carousel-caption h4,.carousel-caption h5,.carousel-caption h6{color:inherit} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css deleted file mode 100644 index 3fb40860a3..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Raleway:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Georgia,"Times New Roman",Times,serif;font-size:16px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#4582ec;text-decoration:none}a:hover,a:focus{color:#134fb8;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:22px;margin-bottom:22px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#b3b3b3}h1,.h1,h2,.h2,h3,.h3{margin-top:22px;margin-bottom:11px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:11px;margin-bottom:11px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:41px}h2,.h2{font-size:34px}h3,.h3{font-size:28px}h4,.h4{font-size:20px}h5,.h5{font-size:16px}h6,.h6{font-size:14px}p{margin:0 0 11px}.lead{margin-bottom:22px;font-size:18px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:24px}}small,.small{font-size:87%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#b3b3b3}.text-primary{color:#4582ec}a.text-primary:hover,a.text-primary:focus{color:#1863e6}.text-success{color:#3fad46}a.text-success:hover,a.text-success:focus{color:#318837}.text-info{color:#5bc0de}a.text-info:hover,a.text-info:focus{color:#31b0d5}.text-warning{color:#f0ad4e}a.text-warning:hover,a.text-warning:focus{color:#ec971f}.text-danger{color:#d9534f}a.text-danger:hover,a.text-danger:focus{color:#c9302c}.bg-primary{color:#fff;background-color:#4582ec}a.bg-primary:hover,a.bg-primary:focus{background-color:#1863e6}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:10px;margin:44px 0 22px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:11px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:22px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #b3b3b3}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:11px 22px;margin:0 0 22px;font-size:20px;border-left:5px solid #4582ec}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#333333}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #4582ec;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:22px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10.5px;margin:0 0 11px;font-size:15px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#b3b3b3;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:22px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:16.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:22px;font-size:24px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:16px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:40px;padding:8px 12px;font-size:16px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #dddddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:40px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:33px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:57px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:22px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:38px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-sm{height:33px;line-height:33px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:33px;line-height:33px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:33px;min-height:36px;padding:6px 10px;font-size:14px;line-height:1.5}.input-lg{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-lg{height:57px;line-height:57px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:57px;line-height:57px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:57px;min-height:42px;padding:15px 16px;font-size:20px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:50px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:40px;height:40px;line-height:40px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:57px;height:57px;line-height:57px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:33px;height:33px;line-height:33px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3fad46}.has-success .form-control{border-color:#3fad46;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#318837;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #81d186;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #81d186}.has-success .input-group-addon{color:#3fad46;border-color:#3fad46;background-color:#dff0d8}.has-success .form-control-feedback{color:#3fad46}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#f0ad4e}.has-warning .form-control{border-color:#f0ad4e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#ec971f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f8d9ac;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f8d9ac}.has-warning .input-group-addon{color:#f0ad4e;border-color:#f0ad4e;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#f0ad4e}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#c9302c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f2dede}.has-error .form-control-feedback{color:#d9534f}.has-feedback label~.form-control-feedback{top:27px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:31px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:20px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:14px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:16px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333333;background-color:#ffffff;border-color:#dddddd}.btn-default:focus,.btn-default.focus{color:#333333;background-color:#e6e6e6;border-color:#9d9d9d}.btn-default:hover{color:#333333;background-color:#e6e6e6;border-color:#bebebe}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333333;background-color:#e6e6e6;border-color:#bebebe}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333333;background-color:#d4d4d4;border-color:#9d9d9d}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#dddddd}.btn-default .badge{color:#ffffff;background-color:#333333}.btn-primary{color:#ffffff;background-color:#4582ec;border-color:#4582ec}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#1863e6;border-color:#1045a1}.btn-primary:hover{color:#ffffff;background-color:#1863e6;border-color:#175fdd}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#1863e6;border-color:#175fdd}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1455c6;border-color:#1045a1}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#4582ec;border-color:#4582ec}.btn-primary .badge{color:#4582ec;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3fad46;border-color:#3fad46}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#318837;border-color:#1d5020}.btn-success:hover{color:#ffffff;background-color:#318837;border-color:#2f8034}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#318837;border-color:#2f8034}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#286d2c;border-color:#1d5020}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3fad46;border-color:#3fad46}.btn-success .badge{color:#3fad46;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1f7e9a}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1f7e9a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#5bc0de}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ec971f;border-color:#b06d0f}.btn-warning:hover{color:#ffffff;background-color:#ec971f;border-color:#eb9316}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ec971f;border-color:#eb9316}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#d58512;border-color:#b06d0f}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning .badge{color:#f0ad4e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d9534f}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:#8b211e}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:#8b211e}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d9534f}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#4582ec;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#134fb8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#b3b3b3;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:14px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:16px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#4582ec}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#4582ec}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#b3b3b3}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:14px;line-height:1.42857143;color:#b3b3b3;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:57px;line-height:57px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:33px;line-height:33px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:16px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#eeeeee;border:1px solid #dddddd;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:14px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:20px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#b3b3b3}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#b3b3b3;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#4582ec}.nav .nav-divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#4582ec}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:65px;margin-bottom:22px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:21.5px 15px;font-size:20px;line-height:22px;height:65px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:15.5px;margin-bottom:15.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:22px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:22px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:21.5px;padding-bottom:21.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:12.5px;margin-bottom:12.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:12.5px;margin-bottom:12.5px}.navbar-btn.btn-sm{margin-top:16px;margin-bottom:16px}.navbar-btn.btn-xs{margin-top:21.5px;margin-bottom:21.5px}.navbar-text{margin-top:21.5px;margin-bottom:21.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#dddddd}.navbar-default .navbar-brand{color:#4582ec}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-text{color:#333333}.navbar-default .navbar-nav>li>a{color:#4582ec}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dddddd}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#4582ec}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#4582ec}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#333333;background-color:transparent}}.navbar-default .navbar-link{color:#4582ec}.navbar-default .navbar-link:hover{color:#4582ec}.navbar-default .btn-link{color:#4582ec}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#4582ec}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#333333}.navbar-inverse{background-color:#ffffff;border-color:#dddddd}.navbar-inverse .navbar-brand{color:#333333}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-text{color:#333333}.navbar-inverse .navbar-nav>li>a{color:#333333}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#dddddd}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#dddddd}.navbar-inverse .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#333333}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#333333}.navbar-inverse .navbar-link:hover{color:#333333}.navbar-inverse .btn-link{color:#333333}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#333333}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:22px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#b3b3b3}.pagination{display:inline-block;padding-left:0;margin:22px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#333333;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#4582ec;border-color:#4582ec}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#4582ec;border-color:#4582ec;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#b3b3b3;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:20px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:14px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:22px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#4582ec}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#b3b3b3;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#ffffff}.label-default[href]:hover,.label-default[href]:focus{background-color:#e6e6e6}.label-primary{background-color:#4582ec}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1863e6}.label-success{background-color:#3fad46}.label-success[href]:hover,.label-success[href]:focus{background-color:#318837}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:14px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#4582ec;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#4582ec;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f7f7f7}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:24px;font-weight:200}.jumbotron>hr{border-top-color:#dedede}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:72px}}.thumbnail{display:block;padding:4px;margin-bottom:22px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#4582ec}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:22px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#3fad46;border-color:#3fad46;color:#ffffff}.alert-success hr{border-top-color:#389a3e}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#5bc0de;color:#ffffff}.alert-info hr{border-top-color:#46b8da}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f0ad4e;border-color:#f0ad4e;color:#ffffff}.alert-warning hr{border-top-color:#eea236}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#d9534f;border-color:#d9534f;color:#ffffff}.alert-danger hr{border-top-color:#d43f3a}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:22px;margin-bottom:22px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:14px;line-height:22px;color:#ffffff;text-align:center;background-color:#4582ec;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3fad46}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#b3b3b3;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#b3b3b3}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#4582ec;border-color:#4582ec}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fefeff}.list-group-item-success{color:#3fad46;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3fad46}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#3fad46;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#3fad46;border-color:#3fad46}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#f0ad4e;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#f0ad4e}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#f0ad4e;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.list-group-item-danger{color:#d9534f;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#d9534f}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#d9534f;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#d9534f;border-color:#d9534f}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:22px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:18px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#ffffff;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:22px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#4582ec}.panel-primary>.panel-heading{color:#ffffff;background-color:#4582ec;border-color:#4582ec}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#4582ec}.panel-primary>.panel-heading .badge{color:#4582ec;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#4582ec}.panel-success{border-color:#3fad46}.panel-success>.panel-heading{color:#ffffff;background-color:#3fad46;border-color:#3fad46}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3fad46}.panel-success>.panel-heading .badge{color:#3fad46;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3fad46}.panel-info{border-color:#5bc0de}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#5bc0de}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#5bc0de}.panel-warning{border-color:#f0ad4e}.panel-warning>.panel-heading{color:#ffffff;background-color:#f0ad4e;border-color:#f0ad4e}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f0ad4e}.panel-warning>.panel-heading .badge{color:#f0ad4e;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f0ad4e}.panel-danger{border-color:#d9534f}.panel-danger>.panel-heading{color:#ffffff;background-color:#d9534f;border-color:#d9534f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9534f}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9534f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f7f7f7;border:1px solid #e5e5e5;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:24px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:16px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:16px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.navbar-nav,.navbar-form{margin-left:0;margin-right:0}.navbar-nav>li>a{margin:12.5px 6px;padding:8px 12px;border:1px solid transparent;border-radius:4px}.navbar-nav>li>a:hover{border:1px solid #ddd}.navbar-nav>.active>a,.navbar-nav>.active>a:hover{border:1px solid #ddd}.navbar-default .navbar-nav>.active>a:hover{color:#4582ec}.navbar-inverse .navbar-nav>.active>a:hover{color:#333333}.navbar-brand{padding-top:12.5px;padding-bottom:12.5px;line-height:1.9}@media (min-width:768px){.navbar .navbar-nav>li>a{padding:8px 12px}}@media (max-width:768px - 1){.navbar .navbar-nav>li>a{margin:0}}.btn{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}legend{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.input-group-addon{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border:1px solid #ddd}.pagination{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 24px}.pager{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.pager a{color:#333333}.pager a:hover{border-color:transparent;color:#fff}.pager .disabled a{border-color:#dddddd}.close{color:#fff;text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}.alert .alert-link{color:#ffffff;text-decoration:underline}.label{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal}.label-default{border:1px solid #ddd;color:#333333}.badge{padding:1px 7px 5px;vertical-align:2px;font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal}.panel{-webkit-box-shadow:none;box-shadow:none}.panel-default .close{color:#333333}.modal .close{color:#333333} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css deleted file mode 100644 index 48ff1700ef..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,500");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#3e3f3a;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#93c54b;text-decoration:none}a:hover,a:focus{color:#79a736;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #f8f5f0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#98978b}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#98978b}.text-primary{color:#325d88}a.text-primary:hover,a.text-primary:focus{color:#244363}.text-success{color:#93c54b}a.text-success:hover,a.text-success:focus{color:#79a736}.text-info{color:#29abe0}a.text-info:hover,a.text-info:focus{color:#1b8dbb}.text-warning{color:#f47c3c}a.text-warning:hover,a.text-warning:focus{color:#ef5c0e}.text-danger{color:#d9534f}a.text-danger:hover,a.text-danger:focus{color:#c9302c}.bg-primary{color:#fff;background-color:#325d88}a.bg-primary:hover,a.bg-primary:focus{background-color:#244363}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #f8f5f0}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #98978b}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #dfd7ca}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#3e3f3a}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dfd7ca;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#8e8c84;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#98978b;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dfd7ca}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dfd7ca}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dfd7ca}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dfd7ca}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dfd7ca}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f8f5f0}.table-hover>tbody>tr:hover{background-color:#f8f5f0}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f8f5f0}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#f0e9df}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dfd7ca}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:inherit;border:0;border-bottom:1px solid transparent}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:13px;font-size:14px;line-height:1.42857143;color:#3e3f3a}.form-control{display:block;width:100%;height:46px;padding:12px 16px;font-size:14px;line-height:1.42857143;color:#3e3f3a;background-color:#ffffff;background-image:none;border:1px solid #dfd7ca;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#dfd7ca;opacity:1}.form-control:-ms-input-placeholder{color:#dfd7ca}.form-control::-webkit-input-placeholder{color:#dfd7ca}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#f8f5f0;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:46px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:66px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:13px;padding-bottom:13px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:66px;line-height:66px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:66px;line-height:66px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:66px;min-height:38px;padding:21px 30px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:57.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:46px;height:46px;line-height:46px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:66px;height:66px;line-height:66px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#93c54b}.has-success .form-control{border-color:#93c54b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#79a736;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c1de98;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c1de98}.has-success .input-group-addon{color:#93c54b;border-color:#93c54b;background-color:#dff0d8}.has-success .form-control-feedback{color:#93c54b}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#f47c3c}.has-warning .form-control{border-color:#f47c3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#ef5c0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f9bd9d;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f9bd9d}.has-warning .input-group-addon{color:#f47c3c;border-color:#f47c3c;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#f47c3c}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#c9302c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f2dede}.has-error .form-control-feedback{color:#d9534f}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#7f8177}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:13px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:33px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:13px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:27.666666px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:12px 16px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#3e3f3a;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#121210;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#3e3f3a;border-color:transparent}.btn-default .badge{color:#3e3f3a;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#325d88;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1b3249;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#325d88;border-color:transparent}.btn-primary .badge{color:#325d88;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#93c54b;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#658c2d;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#93c54b;border-color:transparent}.btn-success .badge{color:#93c54b;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#29abe0;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#17759c;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#29abe0;border-color:transparent}.btn-info .badge{color:#29abe0;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f47c3c;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#ce4f0c;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f47c3c;border-color:transparent}.btn-warning .badge{color:#f47c3c;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:transparent}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#93c54b;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#79a736;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#dfd7ca;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #dfd7ca;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#f8f5f0}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#98978b;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#98978b;background-color:#f8f5f0}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#98978b;text-decoration:none;outline:0;background-color:#f8f5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#dfd7ca}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#dfd7ca;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:66px;line-height:66px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:12px 16px;font-size:14px;font-weight:normal;line-height:1;color:#3e3f3a;text-align:center;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:20px 30px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f8f5f0}.nav>li.disabled>a{color:#dfd7ca}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#dfd7ca;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#f8f5f0;border-color:#93c54b}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dfd7ca}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#dfd7ca #dfd7ca #dfd7ca}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#98978b;background-color:#ffffff;border:1px solid #dfd7ca;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dfd7ca}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dfd7ca;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#98978b;background-color:#f8f5f0}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dfd7ca}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dfd7ca;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:20px 15px;font-size:18px;line-height:20px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:20px;padding-bottom:20px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:7px;margin-bottom:7px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7px;margin-bottom:7px}.navbar-btn.btn-sm{margin-top:15px;margin-bottom:15px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:20px;margin-bottom:20px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#3e3f3a;border-color:#3e3f3a}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#8e8c84}.navbar-default .navbar-nav>li>a{color:#98978b}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#393a35}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#393a35}.navbar-default .navbar-toggle .icon-bar{background-color:#98978b}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#3e3f3a}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#393a35;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#98978b}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#393a35}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#98978b}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#98978b}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#93c54b;border-color:#93c54b}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#dfd7ca}.navbar-inverse .navbar-nav>li>a{color:#6b9430}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#89be3d}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#89be3d}.navbar-inverse .navbar-toggle .icon-bar{background-color:#6b9430}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#81b33a}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#89be3d;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#93c54b}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#93c54b}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#6b9430}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#89be3d}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#6b9430}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#6b9430}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f8f5f0;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#dfd7ca}.breadcrumb>.active{color:#98978b}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:12px 16px;line-height:1.42857143;text-decoration:none;color:#98978b;background-color:#f8f5f0;border:1px solid #dfd7ca;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#8e8c84;background-color:#dfd7ca;border-color:#dfd7ca}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#8e8c84;background-color:#dfd7ca;border-color:#dfd7ca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#dfd7ca;background-color:#f8f5f0;border-color:#dfd7ca;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:20px 30px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#dfd7ca}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dfd7ca;background-color:#f8f5f0;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#3e3f3a}.label-default[href]:hover,.label-default[href]:focus{background-color:#242422}.label-primary{background-color:#325d88}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#244363}.label-success{background-color:#93c54b}.label-success[href]:hover,.label-success[href]:focus{background-color:#79a736}.label-info{background-color:#29abe0}.label-info[href]:hover,.label-info[href]:focus{background-color:#1b8dbb}.label-warning{background-color:#f47c3c}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ef5c0e}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#93c54b;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ffffff;background-color:#93c54b}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f8f5f0}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e8decd}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#93c54b}.thumbnail .caption{padding:9px;color:#3e3f3a}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#93c54b;border-color:transparent;color:#ffffff}.alert-success hr{border-top-color:rgba(0,0,0,0)}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#29abe0;border-color:transparent;color:#ffffff}.alert-info hr{border-top-color:rgba(0,0,0,0)}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f47c3c;border-color:transparent;color:#ffffff}.alert-warning hr{border-top-color:rgba(0,0,0,0)}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#d9534f;border-color:transparent;color:#ffffff}.alert-danger hr{border-top-color:rgba(0,0,0,0)}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#325d88;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#93c54b}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#29abe0}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f47c3c}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dfd7ca}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#3e3f3a}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:inherit}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#3e3f3a;background-color:#f8f5f0}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#f8f5f0;color:#dfd7ca;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#dfd7ca}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#3e3f3a;background-color:#f8f5f0;border-color:#dfd7ca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#3e3f3a}.list-group-item-success{color:#93c54b;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#93c54b}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#93c54b;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#93c54b;border-color:#93c54b}.list-group-item-info{color:#29abe0;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#29abe0}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#29abe0;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#29abe0;border-color:#29abe0}.list-group-item-warning{color:#f47c3c;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#f47c3c}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#f47c3c;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#f47c3c;border-color:#f47c3c}.list-group-item-danger{color:#d9534f;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#d9534f}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#d9534f;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#d9534f;border-color:#d9534f}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f8f5f0;border-top:1px solid #dfd7ca;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dfd7ca}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dfd7ca}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dfd7ca}.panel-default{border-color:#dfd7ca}.panel-default>.panel-heading{color:#3e3f3a;background-color:#f8f5f0;border-color:#dfd7ca}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dfd7ca}.panel-default>.panel-heading .badge{color:#f8f5f0;background-color:#3e3f3a}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dfd7ca}.panel-primary{border-color:#325d88}.panel-primary>.panel-heading{color:#ffffff;background-color:#325d88;border-color:#325d88}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#325d88}.panel-primary>.panel-heading .badge{color:#325d88;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#325d88}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#93c54b;background-color:#93c54b;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#93c54b;background-color:#93c54b}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#29abe0;background-color:#29abe0;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#29abe0;background-color:#29abe0}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#f47c3c;background-color:#f47c3c;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#f47c3c;background-color:#f47c3c}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#d9534f;background-color:#d9534f;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#d9534f}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f8f5f0;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 0 0 transparent;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #f8f5f0;border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #f8f5f0;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #f8f5f0}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#3e3f3a;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#3e3f3a}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#3e3f3a}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #dfd7ca;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f8f5f0;border-bottom:1px solid #f0e9df;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#b9a78a;border-top-color:#dfd7ca;bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#b9a78a;border-right-color:#dfd7ca}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#b9a78a;border-bottom-color:#dfd7ca;top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#b9a78a;border-left-color:#dfd7ca}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.sandstone{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.navbar .nav>li>a{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.navbar-form input,.navbar-form .form-control{border:none}.btn{border:none;font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.btn:hover{border-color:transparent}.btn-lg{line-height:26px}.btn-default:hover{background-color:#393a35}input,.form-control{-webkit-box-shadow:none;box-shadow:none}input:focus,.form-control:focus{border-color:#dfd7ca;-webkit-box-shadow:none;box-shadow:none}.nav{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:#dfd7ca}.nav-tabs>li>a{background-color:#f8f5f0;border-color:#dfd7ca;color:#98978b}.nav-tabs>li.disabled>a:hover{background-color:#f8f5f0}.nav-pills a{color:#98978b}.nav-pills li>a{border:1px solid transparent}.nav-pills li.active>a,.nav-pills li>a:hover{border-color:#dfd7ca}.nav-pills li.disabled>a{border-color:transparent}.breadcrumb{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase;border:1px solid #dfd7ca}.breadcrumb a{color:#98978b}.pagination{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.pager{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.pager li>a{color:#98978b}.dropdown-menu>li>a{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.alert a,.alert .alert-link{color:#fff}.tooltip{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.progress{border-radius:10px;background-color:#dfd7ca;-webkit-box-shadow:none;box-shadow:none}.progress-bar{-webkit-box-shadow:none;box-shadow:none}.list-group-item{padding:16px 24px}.well{-webkit-box-shadow:none;box-shadow:none}.panel{-webkit-box-shadow:none;box-shadow:none}.panel .panel-heading,.panel .panel-title{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase;color:#fff}.panel .panel-footer{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.panel-default .panel-heading,.panel-default .panel-title,.panel-default .panel-footer{color:#98978b} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css deleted file mode 100644 index 4439b67524..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#777777;background-color:#fcfcfc}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#d9230f;text-decoration:none}a:hover,a:focus{color:#91170a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fcfcfc;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #dddddd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:#444444}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#808080}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#808080}.text-primary{color:#d9230f}a.text-primary:hover,a.text-primary:focus{color:#a91b0c}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#d9230f}a.bg-primary:hover,a.bg-primary:focus{background-color:#a91b0c}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #808080}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #dddddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#808080}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dddddd;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#444444;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#808080;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#fcfcfc}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#777777;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:13px;line-height:1.42857143;color:#777777}.form-control{display:block;width:100%;height:36px;padding:8px 12px;font-size:13px;line-height:1.42857143;color:#777777;background-color:#ffffff;background-image:none;border:1px solid #dddddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#dddddd;opacity:1}.form-control:-ms-input-placeholder{color:#dddddd}.form-control::-webkit-input-placeholder{color:#dddddd}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#dddddd;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:36px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:53px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:18px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:31px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:30px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}select.input-lg{height:53px;line-height:53px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:53px;line-height:53px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:53px;min-height:35px;padding:15px 16px;font-size:17px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:45px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:36px;height:36px;line-height:36px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:53px;height:53px;line-height:53px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:23px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#b7b7b7}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:17px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#474949;border-color:#474949}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2e2f2f;border-color:#080808}.btn-default:hover{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1c1d1d;border-color:#080808}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#474949;border-color:#474949}.btn-default .badge{color:#474949;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#d9230f;border-color:#d9230f}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#a91b0c;border-color:#621007}.btn-primary:hover{color:#ffffff;background-color:#a91b0c;border-color:#a01a0b}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#a91b0c;border-color:#a01a0b}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#881609;border-color:#621007}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#d9230f;border-color:#d9230f}.btn-primary .badge{color:#d9230f;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#469408;border-color:#469408}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2f6405;border-color:#0d1b01}.btn-success:hover{color:#ffffff;background-color:#2f6405;border-color:#2b5a05}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2f6405;border-color:#2b5a05}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#1f4204;border-color:#0d1b01}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#469408;border-color:#469408}.btn-success .badge{color:#469408;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#029acf;border-color:#029acf}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#02749c;border-color:#013c51}.btn-info:hover{color:#ffffff;background-color:#02749c;border-color:#016d92}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#02749c;border-color:#016d92}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#015a79;border-color:#013c51}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#029acf;border-color:#029acf}.btn-info .badge{color:#029acf;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#9b479f;border-color:#9b479f}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#79377c;border-color:#452047}.btn-warning:hover{color:#ffffff;background-color:#79377c;border-color:#723475}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#79377c;border-color:#723475}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#612c63;border-color:#452047}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#9b479f;border-color:#9b479f}.btn-warning .badge{color:#9b479f;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9831f;border-color:#d9831f}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#ac6819;border-color:#69400f}.btn-danger:hover{color:#ffffff;background-color:#ac6819;border-color:#a36317}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#ac6819;border-color:#a36317}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#8d5514;border-color:#69400f}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9831f;border-color:#d9831f}.btn-danger .badge{color:#d9831f;background-color:#ffffff}.btn-link{color:#d9230f;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#91170a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#808080;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#444444;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#d9230f}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#d9230f}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#808080}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#808080;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:53px;line-height:53px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:13px;font-weight:normal;line-height:1;color:#777777;text-align:center;background-color:#dddddd;border:1px solid #dddddd;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:17px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#dddddd}.nav>li.disabled>a{color:#808080}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#808080;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#dddddd;border-color:#d9230f}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#dddddd #dddddd #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#fcfcfc;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fcfcfc}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#d9230f}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fcfcfc}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:18px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:11px 15px;font-size:17px;line-height:18px;height:40px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:5.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:11px;padding-bottom:11px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:2px;margin-bottom:2px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:2px;margin-bottom:2px}.navbar-btn.btn-sm{margin-top:5px;margin-bottom:5px}.navbar-btn.btn-xs{margin-top:9px;margin-bottom:9px}.navbar-text{margin-top:11px;margin-bottom:11px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#eeeeee}.navbar-default .navbar-brand{color:#777777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#777777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#eeeeee}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#d9230f}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-default .navbar-link{color:#777777}.navbar-default .navbar-link:hover{color:#d9230f}.navbar-default .btn-link{color:#777777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#d9230f}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#444444}.navbar-inverse{background-color:#d9230f;border-color:#a91b0c}.navbar-inverse .navbar-brand{color:#fac0ba}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#fac0ba}.navbar-inverse .navbar-nav>li>a{color:#fac0ba}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#a91b0c}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#a91b0c}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#b81e0d}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#a91b0c}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#a91b0c}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fac0ba}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#fac0ba}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#fac0ba}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:transparent;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#808080}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#444444;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#d9230f;border-color:#d9230f}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#d9230f;border-color:#d9230f;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#dddddd;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:17px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#d9230f}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dddddd;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#474949}.label-default[href]:hover,.label-default[href]:focus{background-color:#2e2f2f}.label-primary{background-color:#d9230f}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#a91b0c}.label-success{background-color:#469408}.label-success[href]:hover,.label-success[href]:focus{background-color:#2f6405}.label-info{background-color:#029acf}.label-info[href]:hover,.label-info[href]:focus{background-color:#02749c}.label-warning{background-color:#9b479f}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#79377c}.label-danger{background-color:#d9831f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#ac6819}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#d9230f;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#d9230f;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f4f4f4}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#dbdbdb}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:59px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fcfcfc;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#d9230f}.thumbnail .caption{padding:9px;color:#777777}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:18px;color:#ffffff;text-align:center;background-color:#d9230f;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#469408}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#029acf}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#9b479f}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9831f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#dddddd;color:#808080;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#808080}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#d9230f;border-color:#d9230f}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fac0ba}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#fcfcfc;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#444444;background-color:#fcfcfc;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#fcfcfc;background-color:#444444}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#d9230f}.panel-primary>.panel-heading{color:#ffffff;background-color:#d9230f;border-color:#d9230f}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9230f}.panel-primary>.panel-heading .badge{color:#d9230f;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9230f}.panel-success{border-color:#469408}.panel-success>.panel-heading{color:#ffffff;background-color:#469408;border-color:#469408}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#469408}.panel-success>.panel-heading .badge{color:#469408;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#469408}.panel-info{border-color:#029acf}.panel-info>.panel-heading{color:#ffffff;background-color:#029acf;border-color:#029acf}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#029acf}.panel-info>.panel-heading .badge{color:#029acf;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#029acf}.panel-warning{border-color:#9b479f}.panel-warning>.panel-heading{color:#ffffff;background-color:#9b479f;border-color:#9b479f}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#9b479f}.panel-warning>.panel-heading .badge{color:#9b479f;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#9b479f}.panel-danger{border-color:#d9831f}.panel-danger>.panel-heading{color:#ffffff;background-color:#d9831f;border-color:#d9831f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9831f}.panel-danger>.panel-heading .badge{color:#d9831f;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9831f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f4f4f4;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-inverse .badge{background-color:#fff;color:#d9230f}.btn{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.btn-default,.btn-default:hover{background-image:-webkit-linear-gradient(#4f5151, #474949 6%, #3f4141);background-image:-o-linear-gradient(#4f5151, #474949 6%, #3f4141);background-image:-webkit-gradient(linear, left top, left bottom, from(#4f5151), color-stop(6%, #474949), to(#3f4141));background-image:linear-gradient(#4f5151, #474949 6%, #3f4141);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4f5151', endColorstr='#ff3f4141', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e2f2f}.btn-primary,.btn-primary:hover{background-image:-webkit-linear-gradient(#e72510, #d9230f 6%, #cb210e);background-image:-o-linear-gradient(#e72510, #d9230f 6%, #cb210e);background-image:-webkit-gradient(linear, left top, left bottom, from(#e72510), color-stop(6%, #d9230f), to(#cb210e));background-image:linear-gradient(#e72510, #d9230f 6%, #cb210e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe72510', endColorstr='#ffcb210e', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #a91b0c}.btn-success,.btn-success:hover{background-image:-webkit-linear-gradient(#4da309, #469408 6%, #3f8507);background-image:-o-linear-gradient(#4da309, #469408 6%, #3f8507);background-image:-webkit-gradient(linear, left top, left bottom, from(#4da309), color-stop(6%, #469408), to(#3f8507));background-image:linear-gradient(#4da309, #469408 6%, #3f8507);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4da309', endColorstr='#ff3f8507', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2f6405}.btn-info,.btn-info:hover{background-image:-webkit-linear-gradient(#02a5de, #029acf 6%, #028fc0);background-image:-o-linear-gradient(#02a5de, #029acf 6%, #028fc0);background-image:-webkit-gradient(linear, left top, left bottom, from(#02a5de), color-stop(6%, #029acf), to(#028fc0));background-image:linear-gradient(#02a5de, #029acf 6%, #028fc0);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff02a5de', endColorstr='#ff028fc0', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #02749c}.btn-warning,.btn-warning:hover{background-image:-webkit-linear-gradient(#a54caa, #9b479f 6%, #914294);background-image:-o-linear-gradient(#a54caa, #9b479f 6%, #914294);background-image:-webkit-gradient(linear, left top, left bottom, from(#a54caa), color-stop(6%, #9b479f), to(#914294));background-image:linear-gradient(#a54caa, #9b479f 6%, #914294);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffa54caa', endColorstr='#ff914294', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #79377c}.btn-danger,.btn-danger:hover{background-image:-webkit-linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-image:-o-linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#e08b27), color-stop(6%, #d9831f), to(#cc7b1d));background-image:linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe08b27', endColorstr='#ffcc7b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #ac6819}body{font-weight:200}th{color:#444444}legend{color:#444444}label{font-weight:normal}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#d9831f}.has-warning .form-control,.has-warning .form-control:focus{border-color:#d9831f}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#d9230f}.has-error .form-control,.has-error .form-control:focus{border-color:#d9230f}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#469408}.has-success .form-control,.has-success .form-control:focus{border-color:#469408}.pager a{color:#444444}.pager a:hover,.pager .active>a{border-color:#d9230f;color:#fff}.pager .disabled>a{border-color:#dddddd} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css deleted file mode 100644 index a333aac28f..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#c8c8c8;background-color:#272b30}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#ffffff;text-decoration:none}a:hover,a:focus{color:#ffffff;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #1c1e22}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#7a8288}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#f89406;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#7a8288}.text-primary{color:#7a8288}a.text-primary:hover,a.text-primary:focus{color:#62686d}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#7a8288}a.bg-primary:hover,a.bg-primary:focus{background-color:#62686d}.bg-success{background-color:#62c462}a.bg-success:hover,a.bg-success:focus{background-color:#42b142}.bg-info{background-color:#5bc0de}a.bg-info:hover,a.bg-info:focus{background-color:#31b0d5}.bg-warning{background-color:#f89406}a.bg-warning:hover,a.bg-warning:focus{background-color:#c67605}.bg-danger{background-color:#ee5f5b}a.bg-danger:hover,a.bg-danger:focus{background-color:#e9322d}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #1c1e22}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #7a8288}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #7a8288}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#7a8288}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #7a8288;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#3a3f44;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:#2e3338}caption{padding-top:8px;padding-bottom:8px;color:#7a8288;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #1c1e22}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #1c1e22}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #1c1e22}.table .table{background-color:#272b30}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#353a41}.table-hover>tbody>tr:hover{background-color:#49515a}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#49515a}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#3e444c}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#62c462}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#4fbd4f}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#5bc0de}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#46b8da}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f89406}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#df8505}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ee5f5b}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ec4844}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #1c1e22}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#c8c8c8;border:0;border-bottom:1px solid #1c1e22}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#272b30}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#272b30;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#7a8288;opacity:1}.form-control:-ms-input-placeholder{color:#7a8288}.form-control::-webkit-input-placeholder{color:#7a8288}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#999999;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#62c462}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#f89406}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ee5f5b}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#3a3f44;border-color:#3a3f44}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#232628;border-color:#000000}.btn-default:hover{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#121415;border-color:#000000}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#3a3f44;border-color:#3a3f44}.btn-default .badge{color:#3a3f44;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#7a8288;border-color:#7a8288}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#62686d;border-color:#3e4245}.btn-primary:hover{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#51565a;border-color:#3e4245}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#7a8288;border-color:#7a8288}.btn-primary .badge{color:#7a8288;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#62c462;border-color:#62c462}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#42b142;border-color:#2d792d}.btn-success:hover{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#399739;border-color:#2d792d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#62c462;border-color:#62c462}.btn-success .badge{color:#62c462;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1f7e9a}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1f7e9a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#5bc0de}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f89406;border-color:#f89406}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#c67605;border-color:#7c4a03}.btn-warning:hover{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a36104;border-color:#7c4a03}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f89406;border-color:#f89406}.btn-warning .badge{color:#f89406;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#e9322d;border-color:#b71713}.btn-danger:hover{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#dc1c17;border-color:#b71713}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger .badge{color:#ee5f5b;background-color:#ffffff}.btn-link{color:#ffffff;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#ffffff;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#7a8288;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#3a3f44;border:1px solid #272b30;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#272b30}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#c8c8c8;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#272b30}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#272b30}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#7a8288}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#7a8288;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#272b30;text-align:center;background-color:#999999;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#3e444c}.nav>li.disabled>a{color:#7a8288}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#7a8288;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#3e444c;border-color:#ffffff}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #1c1e22}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#1c1e22 #1c1e22 #1c1e22}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ffffff;background-color:#3e444c;border:1px solid #1c1e22;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#272b30}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:transparent}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#272b30}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#3a3f44;border-color:#2b2e32}.navbar-default .navbar-brand{color:#c8c8c8}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#c8c8c8}.navbar-default .navbar-nav>li>a{color:#c8c8c8}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#272b2e}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#272b2e}.navbar-default .navbar-toggle .icon-bar{background-color:#c8c8c8}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#2b2e32}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#272b2e;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#c8c8c8}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#c8c8c8}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#c8c8c8}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#7a8288;border-color:#62686d}.navbar-inverse .navbar-brand{color:#cccccc}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#cccccc}.navbar-inverse .navbar-nav>li>a{color:#cccccc}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#5d6368}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#5d6368}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#697075}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#5d6368;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#cccccc}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#cccccc}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#cccccc}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:transparent;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#7a8288}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:transparent;border-color:rgba(0,0,0,0.6)}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#232628;border-color:rgba(0,0,0,0.6);cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#7a8288;background-color:#ffffff;border-color:rgba(0,0,0,0.6);cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:transparent}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#7a8288;background-color:#3a3f44;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#3a3f44}.label-default[href]:hover,.label-default[href]:focus{background-color:#232628}.label-primary{background-color:#7a8288}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#62686d}.label-success{background-color:#62c462}.label-success[href]:hover,.label-success[href]:focus{background-color:#42b142}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f89406}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#c67605}.label-danger{background-color:#ee5f5b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#e9322d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#7a8288;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ffffff;background-color:#7a8288}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#1c1e22}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#050506}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#ffffff}.thumbnail .caption{padding:9px;color:#c8c8c8}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#62c462;border-color:#62bd4f;color:#ffffff}.alert-success hr{border-top-color:#55b142}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3dced8;color:#ffffff}.alert-info hr{border-top-color:#2ac7d2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f89406;border-color:#e96506;color:#ffffff}.alert-warning hr{border-top-color:#d05a05}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ee5f5b;border-color:#ed4d63;color:#ffffff}.alert-danger hr{border-top-color:#ea364f}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#1c1e22;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#7a8288;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#62c462}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f89406}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ee5f5b}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#32383e;border:1px solid rgba(0,0,0,0.6)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#c8c8c8}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ffffff}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#c8c8c8;background-color:#3e444c}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#999999;color:#7a8288;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#7a8288}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a2aab4}.list-group-item-success{color:#ffffff;background-color:#62c462}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#4fbd4f}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#5bc0de}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#46b8da}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#f89406}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#df8505}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ee5f5b}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ec4844}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#2e3338;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#3e444c;border-top:1px solid rgba(0,0,0,0.6);border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #1c1e22}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid rgba(0,0,0,0.6)}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid rgba(0,0,0,0.6)}.panel-default{border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading{color:#c8c8c8;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading .badge{color:#3e444c;background-color:#c8c8c8}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-primary{border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading{color:#ffffff;background-color:#7a8288;border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading .badge{color:#7a8288;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-success{border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading{color:#ffffff;background-color:#62c462;border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading .badge{color:#62c462;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-info{border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-warning{border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading{color:#ffffff;background-color:#f89406;border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading .badge{color:#f89406;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-danger{border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading{color:#ffffff;background-color:#ee5f5b;border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading .badge{color:#ee5f5b;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#2e3338;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #1c1e22;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #1c1e22}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#2e3338;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#2e3338;border-bottom:1px solid #22262a;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#2e3338}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#2e3338}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#2e3338}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#2e3338;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.navbar-inverse{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.navbar-inverse .badge{background-color:#5d6368}.navbar-nav>li>a{border-right:1px solid rgba(0,0,0,0.2);border-left:1px solid rgba(255,255,255,0.1)}.navbar-nav>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border-left-color:transparent}.navbar .nav .open>a{border-color:transparent}.navbar-nav>li.active>a{border-left-color:transparent}.navbar-form{margin-left:5px;margin-right:5px}.btn,.btn:hover{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.btn-default{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.btn-default:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.btn-primary{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.btn-primary:hover{background-image:-webkit-linear-gradient(#404448, #4e5458 40%, #585e62);background-image:-o-linear-gradient(#404448, #4e5458 40%, #585e62);background-image:-webkit-gradient(linear, left top, left bottom, from(#404448), color-stop(40%, #4e5458), to(#585e62));background-image:linear-gradient(#404448, #4e5458 40%, #585e62);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404448', endColorstr='#ff585e62', GradientType=0);-webkit-filter:none;filter:none}.btn-success{background-image:-webkit-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-o-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-webkit-gradient(linear, left top, left bottom, from(#78cc78), color-stop(60%, #62c462), to(#53be53));background-image:linear-gradient(#78cc78, #62c462 60%, #53be53);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff78cc78', endColorstr='#ff53be53', GradientType=0);-webkit-filter:none;filter:none}.btn-success:hover{background-image:-webkit-linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-image:-o-linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-image:-webkit-gradient(linear, left top, left bottom, from(#2f7d2f), color-stop(40%, #379337), to(#3da23d));background-image:linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f7d2f', endColorstr='#ff3da23d', GradientType=0);-webkit-filter:none;filter:none}.btn-info{background-image:-webkit-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-o-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-webkit-gradient(linear, left top, left bottom, from(#74cae3), color-stop(60%, #5bc0de), to(#4ab9db));background-image:linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff74cae3', endColorstr='#ff4ab9db', GradientType=0);-webkit-filter:none;filter:none}.btn-info:hover{background-image:-webkit-linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-image:-o-linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-image:-webkit-gradient(linear, left top, left bottom, from(#20829f), color-stop(40%, #2596b8), to(#28a4c9));background-image:linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff20829f', endColorstr='#ff28a4c9', GradientType=0);-webkit-filter:none;filter:none}.btn-warning{background-image:-webkit-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-o-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-webkit-gradient(linear, left top, left bottom, from(#faa123), color-stop(60%, #f89406), to(#e48806));background-image:linear-gradient(#faa123, #f89406 60%, #e48806);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffaa123', endColorstr='#ffe48806', GradientType=0);-webkit-filter:none;filter:none}.btn-warning:hover{background-image:-webkit-linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-image:-o-linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-image:-webkit-gradient(linear, left top, left bottom, from(#804d03), color-stop(40%, #9e5f04), to(#b26a04));background-image:linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff804d03', endColorstr='#ffb26a04', GradientType=0);-webkit-filter:none;filter:none}.btn-danger{background-image:-webkit-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-o-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-webkit-gradient(linear, left top, left bottom, from(#f17a77), color-stop(60%, #ee5f5b), to(#ec4d49));background-image:linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff17a77', endColorstr='#ffec4d49', GradientType=0);-webkit-filter:none;filter:none}.btn-danger:hover{background-image:-webkit-linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-image:-o-linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-image:-webkit-gradient(linear, left top, left bottom, from(#bb1813), color-stop(40%, #d71c16), to(#e7201a));background-image:linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbb1813', endColorstr='#ffe7201a', GradientType=0);-webkit-filter:none;filter:none}.btn-link,.btn-link:hover{border-color:transparent}h1,h2,h3,h4,h5,h6{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.text-primary,.text-primary:hover{color:#7a8288}.text-success,.text-success:hover{color:#62c462}.text-danger,.text-danger:hover{color:#ee5f5b}.text-warning,.text-warning:hover{color:#f89406}.text-info,.text-info:hover{color:#5bc0de}.table .success,.table .warning,.table .danger,.table .info{color:#fff}.table-bordered tbody tr.success td,.table-bordered tbody tr.warning td,.table-bordered tbody tr.danger td,.table-bordered tbody tr.success:hover td,.table-bordered tbody tr.warning:hover td,.table-bordered tbody tr.danger:hover td{border-color:#1c1e22}.table-responsive>.table{background-color:#2e3338}input,textarea{color:#272b30}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f89406}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f89406}.has-warning .input-group-addon{background-color:#272b30;border:none}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ee5f5b}.has-error .form-control,.has-error .form-control:focus{border-color:#ee5f5b}.has-error .input-group-addon{background-color:#272b30;border:none}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#62c462}.has-success .form-control,.has-success .form-control:focus{border-color:#62c462}.has-success .input-group-addon{background-color:#272b30;border:none}legend{color:#fff}.input-group-addon{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;color:#ffffff}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:rgba(0,0,0,0.6)}.nav-pills>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.nav-pills>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.active>a,.nav-pills>li.active>a:hover{background-color:none;background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.disabled>a,.nav-pills>li.disabled>a:hover{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a,.pagination>li>span{text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a:hover,.pagination>li>span:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.active>a,.pagination>li.active>span{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.disabled>a,.pagination>li.disabled>a:hover,.pagination>li.disabled>span,.pagination>li.disabled>span:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pager>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.pager>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pager>li.disabled>a,.pager>li.disabled>a:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.breadcrumb{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert .close{color:#000000;text-decoration:none}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0c0d0e}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:rgba(0,0,0,0.6)}a.list-group-item-success.active{background-color:#62c462}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#4fbd4f}a.list-group-item-warning.active{background-color:#f89406}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#df8505}a.list-group-item-danger.active{background-color:#ee5f5b}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ec4844}.jumbotron{border:1px solid rgba(0,0,0,0.6)}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-danger .panel-heading,.panel-warning .panel-heading,.panel-info .panel-heading{border-color:#000} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css deleted file mode 100644 index cc83b248cc..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#666666;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#3399f3;text-decoration:none}a:hover,a:focus{color:#3399f3;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#2d2d2d}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#446e9b}a.text-primary:hover,a.text-primary:focus{color:#345578}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#446e9b}a.bg-primary:hover,a.bg-primary:focus{background-color:#345578}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#666666;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#666666}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#666666;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a6a6a6}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#474949;border-color:#474949}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2e2f2f;border-color:#080808}.btn-default:hover{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1c1d1d;border-color:#080808}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#474949;border-color:#474949}.btn-default .badge{color:#474949;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#446e9b;border-color:#446e9b}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#345578;border-color:#1d2f42}.btn-primary:hover{color:#ffffff;background-color:#345578;border-color:#315070}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#345578;border-color:#315070}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#2a435f;border-color:#1d2f42}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#446e9b;border-color:#446e9b}.btn-primary .badge{color:#446e9b;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3cb521;border-color:#3cb521}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2e8a19;border-color:#18490d}.btn-success:hover{color:#ffffff;background-color:#2e8a19;border-color:#2b8118}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2e8a19;border-color:#2b8118}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#246c14;border-color:#18490d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3cb521;border-color:#3cb521}.btn-success .badge{color:#3cb521;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#3399f3;border-color:#3399f3}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#0e80e5;border-color:#09589d}.btn-info:hover{color:#ffffff;background-color:#0e80e5;border-color:#0d7bdc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#0e80e5;border-color:#0d7bdc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#0c6dc4;border-color:#09589d}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3399f3;border-color:#3399f3}.btn-info .badge{color:#3399f3;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#d47500;border-color:#d47500}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#a15900;border-color:#552f00}.btn-warning:hover{color:#ffffff;background-color:#a15900;border-color:#975300}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#a15900;border-color:#975300}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#7d4500;border-color:#552f00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#d47500;border-color:#d47500}.btn-warning .badge{color:#d47500;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#cd0200;border-color:#cd0200}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#9a0200;border-color:#4e0100}.btn-danger:hover{color:#ffffff;background-color:#9a0200;border-color:#900100}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#9a0200;border-color:#900100}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#760100;border-color:#4e0100}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#cd0200;border-color:#cd0200}.btn-danger .badge{color:#cd0200;background-color:#ffffff}.btn-link{color:#3399f3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#3399f3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#446e9b}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#446e9b}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#666666;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#3399f3}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#666666;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#446e9b}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#eeeeee;border-color:#dddddd}.navbar-default .navbar-brand{color:#777777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#777777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dddddd}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#3399f3}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-default .navbar-link{color:#777777}.navbar-default .navbar-link:hover{color:#3399f3}.navbar-default .btn-link{color:#777777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#3399f3}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#444444}.navbar-inverse{background-color:#446e9b;border-color:#345578}.navbar-inverse .navbar-brand{color:#dddddd}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#dddddd}.navbar-inverse .navbar-nav>li>a{color:#dddddd}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#345578}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#345578}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#395c82}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#345578}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#345578}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#dddddd}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#dddddd}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#3399f3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#3399f3;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#474949}.label-default[href]:hover,.label-default[href]:focus{background-color:#2e2f2f}.label-primary{background-color:#446e9b}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#345578}.label-success{background-color:#3cb521}.label-success[href]:hover,.label-success[href]:focus{background-color:#2e8a19}.label-info{background-color:#3399f3}.label-info[href]:hover,.label-info[href]:focus{background-color:#0e80e5}.label-warning{background-color:#d47500}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#a15900}.label-danger{background-color:#cd0200}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#9a0200}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#3399f3;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#3399f3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#3399f3}.thumbnail .caption{padding:9px;color:#666666}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#446e9b;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3cb521}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3399f3}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#d47500}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#cd0200}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#446e9b;border-color:#446e9b}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c5d5e6}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#446e9b}.panel-primary>.panel-heading{color:#ffffff;background-color:#446e9b;border-color:#446e9b}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#446e9b}.panel-primary>.panel-heading .badge{color:#446e9b;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#446e9b}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#fbeed5}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eed3d7}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eed3d7}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#fff, #eee 50%, #e4e4e4);background-image:-o-linear-gradient(#fff, #eee 50%, #e4e4e4);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(50%, #eee), to(#e4e4e4));background-image:linear-gradient(#fff, #eee 50%, #e4e4e4);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe4e4e4', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #d5d5d5;text-shadow:0 1px 0 rgba(255,255,255,0.3)}.navbar-inverse{background-image:-webkit-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-o-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#3e648d));background-image:linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff3e648d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #345578;text-shadow:0 -1px 0 rgba(0,0,0,0.3)}.navbar-inverse .badge{background-color:#fff;color:#446e9b}.navbar .badge{text-shadow:none}.navbar-nav>li>a,.navbar-nav>li>a:hover{padding-top:17px;padding-bottom:13px;-webkit-transition:color ease-in-out .2s;-o-transition:color ease-in-out .2s;transition:color ease-in-out .2s}.navbar-brand,.navbar-brand:hover{-webkit-transition:color ease-in-out .2s;-o-transition:color ease-in-out .2s;transition:color ease-in-out .2s}.navbar .caret,.navbar .caret:hover{-webkit-transition:border-color ease-in-out .2s;-o-transition:border-color ease-in-out .2s;transition:border-color ease-in-out .2s}.navbar .dropdown-menu{text-shadow:none}.btn{text-shadow:0 -1px 0 rgba(0,0,0,0.3)}.btn-default{background-image:-webkit-linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-image:-o-linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d7070), color-stop(50%, #474949), to(#3d3f3f));background-image:linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d7070', endColorstr='#ff3d3f3f', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e2f2f}.btn-default:hover{background-image:-webkit-linear-gradient(#636565, #3d3f3f 50%, #333434);background-image:-o-linear-gradient(#636565, #3d3f3f 50%, #333434);background-image:-webkit-gradient(linear, left top, left bottom, from(#636565), color-stop(50%, #3d3f3f), to(#333434));background-image:linear-gradient(#636565, #3d3f3f 50%, #333434);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff636565', endColorstr='#ff333434', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #242525}.btn-primary{background-image:-webkit-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-o-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#3e648d));background-image:linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff3e648d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #345578}.btn-primary:hover{background-image:-webkit-linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-image:-o-linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-image:-webkit-gradient(linear, left top, left bottom, from(#5f8ab9), color-stop(50%, #3e648d), to(#385a7f));background-image:linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f8ab9', endColorstr='#ff385a7f', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e4b69}.btn-success{background-image:-webkit-linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-image:-o-linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-image:-webkit-gradient(linear, left top, left bottom, from(#61dd45), color-stop(50%, #3cb521), to(#36a41e));background-image:linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff61dd45', endColorstr='#ff36a41e', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e8a19}.btn-success:hover{background-image:-webkit-linear-gradient(#52da34, #36a41e 50%, #31921b);background-image:-o-linear-gradient(#52da34, #36a41e 50%, #31921b);background-image:-webkit-gradient(linear, left top, left bottom, from(#52da34), color-stop(50%, #36a41e), to(#31921b));background-image:linear-gradient(#52da34, #36a41e 50%, #31921b);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52da34', endColorstr='#ff31921b', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #287916}.btn-info{background-image:-webkit-linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-image:-o-linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-image:-webkit-gradient(linear, left top, left bottom, from(#7bbdf7), color-stop(50%, #3399f3), to(#208ff2));background-image:linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7bbdf7', endColorstr='#ff208ff2', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #0e80e5}.btn-info:hover{background-image:-webkit-linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-image:-o-linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-image:-webkit-gradient(linear, left top, left bottom, from(#68b3f6), color-stop(50%, #208ff2), to(#0e86ef));background-image:linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff68b3f6', endColorstr='#ff0e86ef', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #0c75d2}.btn-warning{background-image:-webkit-linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-image:-o-linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff9c21), color-stop(50%, #d47500), to(#c06a00));background-image:linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff9c21', endColorstr='#ffc06a00', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #a15900}.btn-warning:hover{background-image:-webkit-linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-image:-o-linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff930d), color-stop(50%, #c06a00), to(#ab5e00));background-image:linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff930d', endColorstr='#ffab5e00', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #8d4e00}.btn-danger{background-image:-webkit-linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-image:-o-linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff1d1b), color-stop(50%, #cd0200), to(#b90200));background-image:linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff1d1b', endColorstr='#ffb90200', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #9a0200}.btn-danger:hover{background-image:-webkit-linear-gradient(#ff0906, #b90200 50%, #a40200);background-image:-o-linear-gradient(#ff0906, #b90200 50%, #a40200);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff0906), color-stop(50%, #b90200), to(#a40200));background-image:linear-gradient(#ff0906, #b90200 50%, #a40200);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0906', endColorstr='#ffa40200', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #860100}.btn-link{text-shadow:none}.btn:active,.btn.active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.panel-primary .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css deleted file mode 100644 index 7bbc5e2e6e..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:300,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#ebebeb;background-color:#2b3e50}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#df691a;text-decoration:none}a:hover,a:focus{color:#df691a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#2b3e50;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #596a7b}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#ebebeb}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#f0ad4e;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#4e5d6c}.text-primary{color:#df691a}a.text-primary:hover,a.text-primary:focus{color:#b15315}.text-success{color:#ebebeb}a.text-success:hover,a.text-success:focus{color:#d2d2d2}.text-info{color:#ebebeb}a.text-info:hover,a.text-info:focus{color:#d2d2d2}.text-warning{color:#ebebeb}a.text-warning:hover,a.text-warning:focus{color:#d2d2d2}.text-danger{color:#ebebeb}a.text-danger:hover,a.text-danger:focus{color:#d2d2d2}.bg-primary{color:#fff;background-color:#df691a}a.bg-primary:hover,a.bg-primary:focus{background-color:#b15315}.bg-success{background-color:#5cb85c}a.bg-success:hover,a.bg-success:focus{background-color:#449d44}.bg-info{background-color:#5bc0de}a.bg-info:hover,a.bg-info:focus{background-color:#31b0d5}.bg-warning{background-color:#f0ad4e}a.bg-warning:hover,a.bg-warning:focus{background-color:#ec971f}.bg-danger{background-color:#d9534f}a.bg-danger:hover,a.bg-danger:focus{background-color:#c9302c}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ebebeb}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #4e5d6c}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #4e5d6c}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#ebebeb}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #4e5d6c;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:6px;padding-bottom:6px;color:#4e5d6c;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:6px;line-height:1.42857143;vertical-align:top;border-top:1px solid #4e5d6c}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #4e5d6c}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #4e5d6c}.table .table{background-color:#2b3e50}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:3px}.table-bordered{border:1px solid #4e5d6c}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #4e5d6c}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#4e5d6c}.table-hover>tbody>tr:hover{background-color:#485563}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#485563}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#3d4954}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#5cb85c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#4cae4c}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#5bc0de}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#46b8da}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f0ad4e}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#eea236}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#d9534f}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#d43f3a}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #4e5d6c}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#ebebeb;border:0;border-bottom:1px solid #4e5d6c}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.42857143;color:#2b3e50}.form-control{display:block;width:100%;height:39px;padding:8px 16px;font-size:15px;line-height:1.42857143;color:#2b3e50;background-color:#ffffff;background-image:none;border:1px solid transparent;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#cccccc;opacity:1}.form-control:-ms-input-placeholder{color:#cccccc}.form-control::-webkit-input-placeholder{color:#cccccc}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#ebebeb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:52px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:52px;line-height:52px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:40px;padding:13px 24px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:52px;height:52px;line-height:52px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ebebeb}.has-success .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#5cb85c}.has-success .form-control-feedback{color:#ebebeb}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ebebeb}.has-warning .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#f0ad4e}.has-warning .form-control-feedback{color:#ebebeb}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ebebeb}.has-error .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#d9534f}.has-error .form-control-feedback{color:#ebebeb}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:16.9999996px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 16px;font-size:15px;line-height:1.42857143;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#4e5d6c;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#2a323a;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#4e5d6c;border-color:transparent}.btn-default .badge{color:#4e5d6c;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#df691a;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#914411;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#df691a;border-color:transparent}.btn-primary .badge{color:#df691a;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#5cb85c;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#398439;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:transparent}.btn-success .badge{color:#5cb85c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:transparent}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#d58512;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:transparent}.btn-warning .badge{color:#f0ad4e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:transparent}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#df691a;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#df691a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#4e5d6c;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#2b3e50}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ebebeb;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ebebeb;background-color:#485563}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#df691a}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#2b3e50}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#2b3e50;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 16px;font-size:15px;font-weight:normal;line-height:1;color:#2b3e50;text-align:center;background-color:#4e5d6c;border:1px solid transparent;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:0}.input-group-addon.input-lg{padding:12px 24px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#4e5d6c}.nav>li.disabled>a{color:#4e5d6c}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#4e5d6c;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#4e5d6c;border-color:#df691a}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid transparent}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#4e5d6c #4e5d6c transparent}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ebebeb;background-color:#2b3e50;border:1px solid #4e5d6c;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #4e5d6c}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #4e5d6c;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#4e5d6c}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#df691a}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #4e5d6c}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #4e5d6c;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#4e5d6c}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:9.5px 15px;font-size:19px;line-height:21px;height:40px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:4.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:9.5px;padding-bottom:9.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:0.5px;margin-bottom:0.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:0.5px;margin-bottom:0.5px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:9px;margin-bottom:9px}.navbar-text{margin-top:9.5px;margin-bottom:9.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#4e5d6c;border-color:transparent}.navbar-default .navbar-brand{color:#ebebeb}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ebebeb;background-color:transparent}.navbar-default .navbar-text{color:#ebebeb}.navbar-default .navbar-nav>li>a{color:#ebebeb}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#485563}.navbar-default .navbar-toggle .icon-bar{background-color:#ebebeb}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#485563;color:#ebebeb}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ebebeb}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ebebeb}.navbar-default .navbar-link:hover{color:#ebebeb}.navbar-default .btn-link{color:#ebebeb}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ebebeb}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#df691a;border-color:transparent}.navbar-inverse .navbar-brand{color:#ebebeb}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ebebeb;background-color:transparent}.navbar-inverse .navbar-text{color:#ebebeb}.navbar-inverse .navbar-nav>li>a{color:#ebebeb}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#c85e17}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ebebeb}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#bf5a16}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#c85e17;color:#ebebeb}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ebebeb}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ebebeb}.navbar-inverse .navbar-link:hover{color:#ebebeb}.navbar-inverse .btn-link{color:#ebebeb}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ebebeb}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#4e5d6c;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ebebeb}.breadcrumb>.active{color:#ebebeb}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 16px;line-height:1.42857143;text-decoration:none;color:#ebebeb;background-color:#4e5d6c;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ebebeb;background-color:#485563;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ebebeb;background-color:#df691a;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#323c46;background-color:#4e5d6c;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:12px 24px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#4e5d6c;border:1px solid transparent;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#485563}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#323c46;background-color:#4e5d6c;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#4e5d6c}.label-default[href]:hover,.label-default[href]:focus{background-color:#39444e}.label-primary{background-color:#df691a}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#b15315}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:300;color:#ebebeb;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#4e5d6c;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#df691a;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#4e5d6c}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#39444e}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#2b3e50;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#df691a}.thumbnail .caption{padding:9px;color:#ebebeb}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#5cb85c;border-color:transparent;color:#ebebeb}.alert-success hr{border-top-color:rgba(0,0,0,0)}.alert-success .alert-link{color:#d2d2d2}.alert-info{background-color:#5bc0de;border-color:transparent;color:#ebebeb}.alert-info hr{border-top-color:rgba(0,0,0,0)}.alert-info .alert-link{color:#d2d2d2}.alert-warning{background-color:#f0ad4e;border-color:transparent;color:#ebebeb}.alert-warning hr{border-top-color:rgba(0,0,0,0)}.alert-warning .alert-link{color:#d2d2d2}.alert-danger{background-color:#d9534f;border-color:transparent;color:#ebebeb}.alert-danger hr{border-top-color:rgba(0,0,0,0)}.alert-danger .alert-link{color:#d2d2d2}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#4e5d6c;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#df691a;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#4e5d6c;border:1px solid transparent}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#ebebeb}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ebebeb}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#ebebeb;background-color:#485563}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#ebebeb;color:#4e5d6c;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#4e5d6c}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#df691a;border-color:#df691a}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#f9decc}.list-group-item-success{color:#ebebeb;background-color:#5cb85c}a.list-group-item-success,button.list-group-item-success{color:#ebebeb}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ebebeb;background-color:#4cae4c}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-info{color:#ebebeb;background-color:#5bc0de}a.list-group-item-info,button.list-group-item-info{color:#ebebeb}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ebebeb;background-color:#46b8da}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-warning{color:#ebebeb;background-color:#f0ad4e}a.list-group-item-warning,button.list-group-item-warning{color:#ebebeb}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ebebeb;background-color:#eea236}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-danger{color:#ebebeb;background-color:#d9534f}a.list-group-item-danger,button.list-group-item-danger{color:#ebebeb}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ebebeb;background-color:#d43f3a}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#485563;border-top:1px solid transparent;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #4e5d6c}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#ffffff;background-color:#df691a;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#df691a;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#ebebeb;background-color:#5cb85c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#5cb85c;background-color:#ebebeb}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#ebebeb;background-color:#5bc0de;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ebebeb}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ebebeb;background-color:#f0ad4e;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#f0ad4e;background-color:#ebebeb}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ebebeb;background-color:#d9534f;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#ebebeb}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ebebeb;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ebebeb;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #2b3e50;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #2b3e50}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#4e5d6c;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#485563;border-bottom:1px solid #3d4954;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:transparent;bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#4e5d6c}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:transparent}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#4e5d6c}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:transparent;top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#4e5d6c}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:transparent}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#4e5d6c;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{-webkit-box-shadow:none;box-shadow:none;border:none;font-size:12px}.navbar-default .badge{background-color:#fff;color:#4e5d6c}.navbar-inverse .badge{background-color:#fff;color:#df691a}.btn{font-weight:300}.btn-default:hover{background-color:#485563}.btn-sm,.btn-xs{font-size:12px}body{font-weight:300}.text-primary,.text-primary:hover{color:#df691a}.text-success,.text-success:hover{color:#5cb85c}.text-danger,.text-danger:hover{color:#d9534f}.text-warning,.text-warning:hover{color:#f0ad4e}.text-info,.text-info:hover{color:#5bc0de}.page-header{border-bottom-color:#4e5d6c}.dropdown-menu{border:none;margin:0;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu>li>a{font-size:12px;font-weight:300}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.dropdown-header{font-size:12px}table,.table{font-size:12px}table a:not(.btn),.table a:not(.btn){color:#fff;text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .text-muted,.table .text-muted{color:#4e5d6c}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border-color:transparent}input,textarea{color:#2b3e50}label,.radio label,.checkbox label,.help-block{font-size:12px;font-weight:300}.input-addon,.input-group-addon{color:#ebebeb}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f0ad4e}.has-warning .input-group-addon{border:none}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#d9534f}.has-error .input-group-addon{border:none}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#5cb85c}.has-success .input-group-addon{border:none}.form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus,.has-error .form-control:focus,.has-success .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{color:#ebebeb}.nav-pills>li>a{color:#ebebeb}.pager a{color:#ebebeb}.label{font-weight:300}.alert{color:#fff}.alert a,.alert .alert-link{color:#fff}.close{opacity:0.4}.close:hover,.close:focus{opacity:1}.well{-webkit-box-shadow:none;box-shadow:none}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border:none}a.list-group-item-success.active{background-color:#5cb85c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#4cae4c}a.list-group-item-warning.active{background-color:#f0ad4e}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#eea236}a.list-group-item-danger.active{background-color:#d9534f}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#d43f3a}.panel{border:none}.panel-default>.panel-heading{background-color:#485563;color:#ebebeb}.thumbnail{background-color:#4e5d6c;border:none}.modal{padding:0}.modal-header,.modal-footer{background-color:#485563;border:none;border-radius:0}.popover-title{border:none} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css deleted file mode 100644 index 7791912a3b..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Ubuntu:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#dd4814;text-decoration:none}a:hover,a:focus{color:#97310e;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#aea79f}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#aea79f}.text-primary{color:#dd4814}a.text-primary:hover,a.text-primary:focus{color:#ae3910}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#dd4814}a.bg-primary:hover,a.bg-primary:focus{background-color:#ae3910}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #aea79f}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#aea79f}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#aea79f;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#aea79f;opacity:1}.form-control:-ms-input-placeholder{color:#aea79f}.form-control::-webkit-input-placeholder{color:#aea79f}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#aea79f;border-color:#aea79f}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#978e83;border-color:#6f675e}.btn-default:hover{color:#ffffff;background-color:#978e83;border-color:#92897e}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#978e83;border-color:#92897e}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#867c71;border-color:#6f675e}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#aea79f;border-color:#aea79f}.btn-default .badge{color:#aea79f;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#dd4814;border-color:#dd4814}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#ae3910;border-color:#682209}.btn-primary:hover{color:#ffffff;background-color:#ae3910;border-color:#a5360f}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#ae3910;border-color:#a5360f}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#8d2e0d;border-color:#682209}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#dd4814;border-color:#dd4814}.btn-primary .badge{color:#dd4814;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#38b44a;border-color:#38b44a}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2c8d3a;border-color:#1a5322}.btn-success:hover{color:#ffffff;background-color:#2c8d3a;border-color:#298537}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2c8d3a;border-color:#298537}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#23722f;border-color:#1a5322}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#38b44a;border-color:#38b44a}.btn-success .badge{color:#38b44a;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#772953;border-color:#772953}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#511c39;border-color:#180811}.btn-info:hover{color:#ffffff;background-color:#511c39;border-color:#491933}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#511c39;border-color:#491933}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#371326;border-color:#180811}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#772953;border-color:#772953}.btn-info .badge{color:#772953;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#efb73e;border-color:#efb73e}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e7a413;border-color:#a0720d}.btn-warning:hover{color:#ffffff;background-color:#e7a413;border-color:#dd9d12}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e7a413;border-color:#dd9d12}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c68c10;border-color:#a0720d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#efb73e;border-color:#efb73e}.btn-warning .badge{color:#efb73e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#df382c;border-color:#df382c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#bc271c;border-color:#791912}.btn-danger:hover{color:#ffffff;background-color:#bc271c;border-color:#b3251b}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#bc271c;border-color:#b3251b}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#9d2118;border-color:#791912}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#df382c;border-color:#df382c}.btn-danger .badge{color:#df382c;background-color:#ffffff}.btn-link{color:#dd4814;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#97310e;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#aea79f;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#dd4814}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#dd4814}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#aea79f}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#aea79f;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#aea79f}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#aea79f;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#dd4814}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#dd4814}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#dd4814;border-color:#bf3e11}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#97310e}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#ae3910}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#97310e}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#97310e}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#bf3e11}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#ae3910;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#97310e}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#ae3910}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#772953;border-color:#511c39}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#3e152b}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#511c39}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#3e152b}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#3e152b}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#5c2040}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#511c39;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#3e152b}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#aea79f}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#dd4814;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#97310e;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#aea79f;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#aea79f;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#aea79f;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#aea79f}.label-default[href]:hover,.label-default[href]:focus{background-color:#978e83}.label-primary{background-color:#dd4814}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#ae3910}.label-success{background-color:#38b44a}.label-success[href]:hover,.label-success[href]:focus{background-color:#2c8d3a}.label-info{background-color:#772953}.label-info[href]:hover,.label-info[href]:focus{background-color:#511c39}.label-warning{background-color:#efb73e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e7a413}.label-danger{background-color:#df382c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#bc271c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#aea79f;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#dd4814;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#dd4814}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#dd4814;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#38b44a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#772953}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#efb73e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#df382c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#aea79f;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#aea79f}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#dd4814;border-color:#dd4814}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fad1c3}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#dd4814}.panel-primary>.panel-heading{color:#ffffff;background-color:#dd4814;border-color:#dd4814}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dd4814}.panel-primary>.panel-heading .badge{color:#dd4814;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dd4814}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#fbeed5}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eed3d7}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eed3d7}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-default .badge{background-color:#fff;color:#dd4814}.navbar-inverse .badge{background-color:#fff;color:#772953}@media (max-width:767px){.navbar .dropdown-menu a{color:#fff}} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css deleted file mode 100644 index 1bb3af7e9c..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#222222;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#008cba;text-decoration:none}a:hover,a:focus{color:#008cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.4;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #dddddd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:80%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#008cba}a.text-primary:hover,a.text-primary:focus{color:#006687}.text-success{color:#43ac6a}a.text-success:hover,a.text-success:focus{color:#358753}.text-info{color:#5bc0de}a.text-info:hover,a.text-info:focus{color:#31b0d5}.text-warning{color:#e99002}a.text-warning:hover,a.text-warning:focus{color:#b67102}.text-danger{color:#f04124}a.text-danger:hover,a.text-danger:focus{color:#d32a0e}.bg-primary{color:#fff;background-color:#008cba}a.bg-primary:hover,a.bg-primary:focus{background-color:#006687}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.4}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #dddddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.4;color:#6f6f6f}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dddddd;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.4}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.4;color:#6f6f6f}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.4;color:#6f6f6f;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:36px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:60px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:36px;line-height:36px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:36px;line-height:36px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:36px;min-height:33px;padding:9px 12px;font-size:12px;line-height:1.5}.input-lg{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:60px;line-height:60px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:60px;line-height:60px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:60px;min-height:40px;padding:17px 20px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:60px;height:60px;line-height:60px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:36px;height:36px;line-height:36px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#43ac6a}.has-success .form-control{border-color:#43ac6a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#358753;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1}.has-success .input-group-addon{color:#43ac6a;border-color:#43ac6a;background-color:#dff0d8}.has-success .form-control-feedback{color:#43ac6a}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#e99002}.has-warning .form-control{border-color:#e99002;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#b67102;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53}.has-warning .input-group-addon{color:#e99002;border-color:#e99002;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#e99002}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#f04124}.has-error .form-control{border-color:#f04124;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#d32a0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483}.has-error .input-group-addon{color:#f04124;border-color:#f04124;background-color:#f2dede}.has-error .form-control-feedback{color:#f04124}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#626262}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:22.3333328px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:9px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.4;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333333;background-color:#e7e7e7;border-color:#cccccc}.btn-default:focus,.btn-default.focus{color:#333333;background-color:#cecece;border-color:#8c8c8c}.btn-default:hover{color:#333333;background-color:#cecece;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333333;background-color:#cecece;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333333;background-color:#bcbcbc;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#e7e7e7;border-color:#cccccc}.btn-default .badge{color:#e7e7e7;background-color:#333333}.btn-primary{color:#ffffff;background-color:#008cba;border-color:#0079a1}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#006687;border-color:#001921}.btn-primary:hover{color:#ffffff;background-color:#006687;border-color:#004b63}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#006687;border-color:#004b63}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#004b63;border-color:#001921}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#008cba;border-color:#0079a1}.btn-primary .badge{color:#008cba;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#43ac6a;border-color:#3c9a5f}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#358753;border-color:#183e26}.btn-success:hover{color:#ffffff;background-color:#358753;border-color:#2b6e44}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#358753;border-color:#2b6e44}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#2b6e44;border-color:#183e26}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#43ac6a;border-color:#3c9a5f}.btn-success .badge{color:#43ac6a;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#e99002;border-color:#d08002}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#b67102;border-color:#513201}.btn-warning:hover{color:#ffffff;background-color:#b67102;border-color:#935b01}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#b67102;border-color:#935b01}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#935b01;border-color:#513201}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#e99002;border-color:#d08002}.btn-warning .badge{color:#e99002;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#f04124;border-color:#ea2f10}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#d32a0e;border-color:#731708}.btn-danger:hover{color:#ffffff;background-color:#d32a0e;border-color:#b1240c}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#d32a0e;border-color:#b1240c}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#b1240c;border-color:#731708}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#f04124;border-color:#ea2f10}.btn-danger .badge{color:#f04124;background-color:#ffffff}.btn-link{color:#008cba;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#008cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:4px 6px;font-size:12px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:rgba(0,0,0,0.2)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.4;color:#555555;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#eeeeee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#008cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.4;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:60px;line-height:60px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:36px;line-height:36px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:normal;line-height:1;color:#6f6f6f;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:0}.input-group-addon.input-sm{padding:8px 12px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:16px 20px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#008cba}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.4;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#6f6f6f;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#008cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:45px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:12px 15px;font-size:19px;line-height:21px;height:45px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:5.5px;margin-bottom:5.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:6px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:12px;padding-bottom:12px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:11.5px;margin-bottom:11.5px}.navbar-text{margin-top:12px;margin-bottom:12px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#333333;border-color:#222222}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#222222}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#272727;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#008cba;border-color:#006687}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#007196}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#006687;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#999999}.breadcrumb>.active{color:#333333}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.4;text-decoration:none;color:#008cba;background-color:transparent;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#008cba;background-color:#eeeeee;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#008cba;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:16px 20px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:8px 12px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:transparent;border:1px solid transparent;border-radius:3px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:transparent;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#008cba}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#006687}.label-success{background-color:#43ac6a}.label-success[href]:hover,.label-success[href]:focus{background-color:#358753}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#e99002}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b67102}.label-danger{background-color:#f04124}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#d32a0e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#008cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#008cba;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#008cba}.thumbnail .caption{padding:9px;color:#222222}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#43ac6a;border-color:#3c9a5f;color:#ffffff}.alert-success hr{border-top-color:#358753}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3db5d8;color:#ffffff}.alert-info hr{border-top-color:#2aabd2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#e99002;border-color:#d08002;color:#ffffff}.alert-warning hr{border-top-color:#b67102}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#f04124;border-color:#ea2f10;color:#ffffff}.alert-danger hr{border-top-color:#d32a0e}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:21px;color:#ffffff;text-align:center;background-color:#008cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#43ac6a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#e99002}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#f04124}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#008cba;border-color:#008cba}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#87e1ff}.list-group-item-success{color:#43ac6a;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#43ac6a}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#43ac6a;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#43ac6a;border-color:#43ac6a}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#e99002;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#e99002}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#e99002;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#e99002;border-color:#e99002}.list-group-item-danger{color:#f04124;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#f04124}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#f04124;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#f04124;border-color:#f04124}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#008cba}.panel-primary>.panel-heading{color:#ffffff;background-color:#008cba;border-color:#008cba}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#008cba}.panel-primary>.panel-heading .badge{color:#008cba;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#008cba}.panel-success{border-color:#3c9a5f}.panel-success>.panel-heading{color:#ffffff;background-color:#43ac6a;border-color:#3c9a5f}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3c9a5f}.panel-success>.panel-heading .badge{color:#43ac6a;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3c9a5f}.panel-info{border-color:#3db5d8}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:#3db5d8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3db5d8}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3db5d8}.panel-warning{border-color:#d08002}.panel-warning>.panel-heading{color:#ffffff;background-color:#e99002;border-color:#d08002}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d08002}.panel-warning>.panel-heading .badge{color:#e99002;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d08002}.panel-danger{border-color:#ea2f10}.panel-danger>.panel-heading{color:#ffffff;background-color:#f04124;border-color:#ea2f10}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ea2f10}.panel-danger>.panel-heading .badge{color:#f04124;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ea2f10}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#333333;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#333333;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #333333;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#333333;border-bottom:1px solid #262626;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#000000;border-top-color:rgba(0,0,0,0.05);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#333333}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#000000;border-right-color:rgba(0,0,0,0.05)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#333333}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#000000;border-bottom-color:rgba(0,0,0,0.05);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#333333}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#000000;border-left-color:rgba(0,0,0,0.05)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#333333;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border:none;font-size:13px;font-weight:300}.navbar .navbar-toggle:hover .icon-bar{background-color:#b3b3b3}.navbar-collapse{border-top-color:rgba(0,0,0,0.2);-webkit-box-shadow:none;box-shadow:none}.navbar .btn{padding-top:6px;padding-bottom:6px}.navbar-form{margin-top:7px;margin-bottom:5px}.navbar-form .form-control{height:auto;padding:4px 6px}.navbar .dropdown-menu{border:none}.navbar .dropdown-menu>li>a,.navbar .dropdown-menu>li>a:focus{background-color:transparent;font-size:13px;font-weight:300}.navbar .dropdown-header{color:rgba(255,255,255,0.5)}.navbar-default .dropdown-menu{background-color:#333333}.navbar-default .dropdown-menu>li>a,.navbar-default .dropdown-menu>li>a:focus{color:#ffffff}.navbar-default .dropdown-menu>li>a:hover,.navbar-default .dropdown-menu>.active>a,.navbar-default .dropdown-menu>.active>a:hover{background-color:#272727}.navbar-inverse .dropdown-menu{background-color:#008cba}.navbar-inverse .dropdown-menu>li>a,.navbar-inverse .dropdown-menu>li>a:focus{color:#ffffff}.navbar-inverse .dropdown-menu>li>a:hover,.navbar-inverse .dropdown-menu>.active>a,.navbar-inverse .dropdown-menu>.active>a:hover{background-color:#006687}.btn{padding:8px 12px}.btn-lg{padding:16px 20px}.btn-sm{padding:8px 12px}.btn-xs{padding:4px 6px}.btn-group .btn~.dropdown-toggle{padding-left:16px;padding-right:16px}.btn-group .dropdown-menu{border-top-width:0}.btn-group.dropup .dropdown-menu{border-top-width:1px;border-bottom-width:0;margin-bottom:0}.btn-group .dropdown-toggle.btn-default~.dropdown-menu{background-color:#e7e7e7;border-color:#cccccc}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a{color:#333333}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a:hover{background-color:#d3d3d3}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu{background-color:#008cba;border-color:#0079a1}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a:hover{background-color:#006d91}.btn-group .dropdown-toggle.btn-success~.dropdown-menu{background-color:#43ac6a;border-color:#3c9a5f}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a:hover{background-color:#388f58}.btn-group .dropdown-toggle.btn-info~.dropdown-menu{background-color:#5bc0de;border-color:#46b8da}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a:hover{background-color:#39b3d7}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu{background-color:#e99002;border-color:#d08002}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a:hover{background-color:#c17702}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu{background-color:#f04124;border-color:#ea2f10}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a:hover{background-color:#dc2c0f}.lead{color:#6f6f6f}cite{font-style:italic}blockquote{border-left-width:1px;color:#6f6f6f}blockquote.pull-right{border-right-width:1px}blockquote small{font-size:12px;font-weight:300}table{font-size:12px}label,.control-label,.help-block,.checkbox,.radio{font-size:12px;font-weight:normal}input[type="radio"],input[type="checkbox"]{margin-top:1px}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{background-color:#e7e7e7;color:#222222}.nav-tabs .caret{border-top-color:#222222;border-bottom-color:#222222}.nav-pills{font-weight:300}.breadcrumb{border:1px solid #dddddd;border-radius:3px;font-size:10px;font-weight:300;text-transform:uppercase}.pagination{font-size:12px;font-weight:300;color:#999999}.pagination>li>a,.pagination>li>span{margin-left:4px;color:#999999}.pagination>.active>a,.pagination>.active>span{color:#fff}.pagination>li>a,.pagination>li:first-child>a,.pagination>li:last-child>a,.pagination>li>span,.pagination>li:first-child>span,.pagination>li:last-child>span{border-radius:3px}.pagination-lg>li>a,.pagination-lg>li>span{padding-left:22px;padding-right:22px}.pagination-sm>li>a,.pagination-sm>li>span{padding:0 5px}.pager{font-size:12px;font-weight:300;color:#999999}.list-group{font-size:12px;font-weight:300}.close{opacity:0.4;text-decoration:none;text-shadow:none}.close:hover,.close:focus{opacity:1}.alert{font-size:12px;font-weight:300}.alert .alert-link{font-weight:normal;color:#fff;text-decoration:underline}.label{padding-left:1em;padding-right:1em;border-radius:0;font-weight:300}.label-default{background-color:#e7e7e7;color:#333333}.badge{font-weight:300}.progress{height:22px;padding:2px;background-color:#f6f6f6;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu{padding:0;margin-top:0;font-size:12px}.dropdown-menu>li>a{padding:12px 15px}.dropdown-header{padding-left:15px;padding-right:15px;font-size:9px;text-transform:uppercase}.popover{color:#fff;font-size:12px;font-weight:300}.panel-heading,.panel-footer{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#222222}.modal .close{color:#222222} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css deleted file mode 100644 index 24fcc04c4e..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf deleted file mode 100644 index f7936cc1e789eea5438d576d6b12de20191da09d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93888 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 z -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 E0UHWiZ2$lO diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot deleted file mode 100644 index 33b2bb80055cc480e797de704925acaba4ba7d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60767 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%0DKehr}RFC`2XTB_?==0w^)u1m5PYii@6f)6_5Ydu zv+NIZ_(Rt}Q++LT5!n8!J4x!>sE&v_3*cXat{Zq5;17w;B6$epw}$Rg`0nFJg5D-L zYvw@(goc5TeJjM($AJAZxZHZN}RzBcP0=_>ZI6WVGU zO#Nk-YqZTa3{!84P0K~GsI#32<+_AsXU43wILwZS(8n%S9)lP!Dg$$e2$$9$E?^Nj zql4do#+a8qEP(bD2)DpP|$dp<`TZ#bY6^~7Xv_Lle)77^OsVhMOm(@ z??8O8kA%}ZWpR&2v!7qFSw@TF6d*=9YT^Rtk(n8p=CQWvt1Om=n&5uP;GiT6 zMRvbm39kbp*KB`qoVg12w52Z)T}`X41P>D|q_%K#zuhwb+BpEogY0E)KnSy#@+(m5 z20@LG@LUEvk`I|OIUV^^0_YtG9AElBS!Dsh%k^P9r0moJ25Lkm-gh#igwBDhAOj0!EF&8MxV^-m1U1MEd?H7} zL;r;tfFIT|ei3-Z@gyM=!%Ba7Pa626JRAA`V<2D<{RLRT@0o=bE)XF)nFtUL67`2L z{?_Qz_`Yy2t+I)?9&z#z__Q%L3pnhN}U z_rN#WU)kD59D4whbSYERHY01jM7id50EuI1ctl?<_IT=Y5vP>(sNNkB&U5&F&^kBhm5y{o!y!F+4wdxXoy;!4$W`?_nL(+bK_QDAMUV1O0AwZ| z6j)s}9YEZbY-C^Y)9Ej`aS&~{sXCG2SS3ce$EY;Yv-c8TlrD$C85ATlLZpGP_YWfi z`RQ?z1@zIfa{yqfsUDMEPpwuX%XHdO+ASb3EPi1fBPocvfgsC0xa^CG2SWBPWQ&GS zpCXPti8b>WkYbf#Vg%A?&_UwUsUQE_t4GX?7QqUpKJ2Iw#%)Q4Ft(`9Ja&Yk{C@38 z@%T`)#wWy(kKfEH;ZBQ(m*Iq&L=<)4D7tNO{SsA4Fp4D?(Ex6nQS&f3TK|atgj`fE z2|OX0(&(ZqxJd~IANX&dvX?U14_<~h2(lP6k^H8ep;2HW6oPo?U%v{M>|{sU~;p zLTv$OTx3H^4zNUn4wUfo>j{CEvTC@C+cw+cW*ABH6u@!M2EdBL?1GbL_#e;7YDBas zic?MTazk(khXSyPeDom_I~wkLv?Wr8<%egEfM!*M9^kl$>zsVzaP}S!gcD3;Czy#58RTm?`p)RTS8I<-sC3+*n{A)P*rU!@Npj`e{x9xsif2v zTW`{q3p^?A!Mk60Q{(FLt(&TVe9z z0-!PiOV02JcNeq?AbJaI+B9xC;LB=}Ho0vH(@;Qe0zq~-8ckOa!(u@Wou`p_TR|QT z38H`lJE$G{q1egUX@&v$x7wNLWD#j*!D58GLv^bT+jpdKBrK#SsQsWK(+RO40VA^w z0nA7MN1Y1Fc#5JkwD5TtHG1t;lo=i)U+kFG?1Jh11h9382!marrRE2eZh;JGh`wNO zQA_~n?%97HOKLA^#oG(5*bgSllS%rOc(S%Yj00cYR;!D9G_90{pfq7D4I*$k?byOV zR|epi%oIJ{ou`5zS!-_dnxOa{uNv)(luMo^5TCOItq}2}sxCztLEzBGS)Mf6dzaw< z!GweAgvFYJu&mH(Vl9HJBV%=Jz~~i%nDGIF9ncTET-AQ=fv{L11&K_;ei!iht(!De;ym|y7ksL|^5Ko~B-vSh80++s?unD}bZaYa@ zPH4M$&fw;xEGN3_H1vHW><%-+dg7dfW)F8$bB+h7sThoOtteO(v{&-+iK}r$%G))# z*Nhx^!ZMj1VeG?EkWg+0CYQSX1t96fV9^3c+9C393LU&CHsFCa1q99$`zTMsEWwLc zxsw1|A?k8-m8HCrk6;K7dhNDJN3R9iws%6vTq_}PtR2CZ8TG;ltZ4I}sU+^s8`P3F5QxrypG1-{ zGlr^7$Wsy(lo=xfC~BpKfg<2z4OEeEF@~x{Pi7O#CvqMJy+f+}=CB_$&IuEslB@s# J000000038FvZ??8 diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg deleted file mode 100644 index 1ee89d4368..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,565 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8b280b98fa2fa261aa4b0f8fd061f772073ef83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71508 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 diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less deleted file mode 100644 index c97f4604ca..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less +++ /dev/null @@ -1,27 +0,0 @@ -// Mixins -// -------------------------- - -.fa-icon() { - display: inline-block; - font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox - -} - -.fa-icon-rotate(@degrees, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); - transform: rotate(@degrees); -} - -.fa-icon-flip(@horiz, @vert, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); - -webkit-transform: scale(@horiz, @vert); - -ms-transform: scale(@horiz, @vert); - transform: scale(@horiz, @vert); -} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss deleted file mode 100644 index 6b7f160931..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss +++ /dev/null @@ -1,27 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); -} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt new file mode 100644 index 0000000000..83d083dd77 --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt @@ -0,0 +1,7 @@ +I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, +Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, +comprehensive icon sets or copy and paste your own. + +Please. Check it out. + +-Dave Gandy diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css index 2dcdc22072..ee906a8196 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css @@ -1,13 +1,13 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.3.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } @@ -18,7 +18,6 @@ text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); } /* makes the font 33% larger relative to the icon container */ .fa-lg { @@ -65,6 +64,19 @@ border: solid 0.08em #eeeeee; border-radius: .1em; } +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } @@ -106,31 +118,31 @@ } } .fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); @@ -628,6 +640,7 @@ .fa-credit-card:before { content: "\f09d"; } +.fa-feed:before, .fa-rss:before { content: "\f09e"; } @@ -1370,7 +1383,7 @@ .fa-digg:before { content: "\f1a6"; } -.fa-pied-piper:before { +.fa-pied-piper-pp:before { content: "\f1a7"; } .fa-pied-piper-alt:before { @@ -1496,6 +1509,7 @@ content: "\f1ce"; } .fa-ra:before, +.fa-resistance:before, .fa-rebel:before { content: "\f1d0"; } @@ -1509,6 +1523,8 @@ .fa-git:before { content: "\f1d3"; } +.fa-y-combinator-square:before, +.fa-yc-square:before, .fa-hacker-news:before { content: "\f1d4"; } @@ -1533,7 +1549,6 @@ .fa-history:before { content: "\f1da"; } -.fa-genderless:before, .fa-circle-thin:before { content: "\f1db"; } @@ -1738,6 +1753,7 @@ .fa-mercury:before { content: "\f223"; } +.fa-intersex:before, .fa-transgender:before { content: "\f224"; } @@ -1765,6 +1781,9 @@ .fa-neuter:before { content: "\f22c"; } +.fa-genderless:before { + content: "\f22d"; +} .fa-facebook-official:before { content: "\f230"; } @@ -1799,3 +1818,520 @@ .fa-medium:before { content: "\f23a"; } +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css new file mode 100644 index 0000000000..540440ce89 --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 GIT binary patch literal 134808 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 literal 0 HcmV?d00001 diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 GIT binary patch literal 165742 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 G*yFsbY~cLNXLP73aA74Mq6M9f^&YV`isWW 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

5q!RY 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 + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf similarity index 50% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf index ed9372f8ea0fbaa04f42630a48887e4b38945345..35acda2fa1196aad98c2adf4378a7611dd713aa3 100644 GIT binary patch delta 54090 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 delta 11716 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 ZfSEq4enHn$^T@LbiNK5zCp@ze`X3sO4ix|Z diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b GIT binary patch literal 98024 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 SdSQM28?+M|D(2r_;{O0|uQ74} literal 0 HcmV?d00001 diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 GIT binary patch literal 77160 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 literal 0 HcmV?d00001 diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/animated.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/animated.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/animated.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/animated.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less similarity index 56% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less index 0c90eb5672..f1c8ad75f5 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less @@ -7,6 +7,15 @@ border-radius: .1em; } +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less similarity index 66% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less index f814f1e17e..c577ac84a6 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less @@ -3,11 +3,10 @@ .@{fa-css-prefix} { display: inline-block; - font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/fixed-width.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/fixed-width.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/fixed-width.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/fixed-width.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less similarity index 81% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less index 1f45c63d15..c3677def31 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -15,3 +15,4 @@ @import "rotated-flipped.less"; @import "stacked.less"; @import "icons.less"; +@import "screen-reader.less"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less index c265de5a68..159d600425 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less @@ -163,6 +163,7 @@ .@{fa-css-prefix}-github:before { content: @fa-var-github; } .@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } .@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, .@{fa-css-prefix}-rss:before { content: @fa-var-rss; } .@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } .@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } @@ -437,7 +438,7 @@ .@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } .@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } .@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } .@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } .@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } .@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } @@ -487,11 +488,14 @@ .@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } .@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } .@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, .@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } .@{fa-css-prefix}-ge:before, .@{fa-css-prefix}-empire:before { content: @fa-var-empire; } .@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } .@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, .@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } .@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } .@{fa-css-prefix}-qq:before { content: @fa-var-qq; } @@ -502,7 +506,6 @@ .@{fa-css-prefix}-send-o:before, .@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } .@{fa-css-prefix}-history:before { content: @fa-var-history; } -.@{fa-css-prefix}-genderless:before, .@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } .@{fa-css-prefix}-header:before { content: @fa-var-header; } .@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } @@ -573,6 +576,7 @@ .@{fa-css-prefix}-venus:before { content: @fa-var-venus; } .@{fa-css-prefix}-mars:before { content: @fa-var-mars; } .@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, .@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } .@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } .@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } @@ -582,6 +586,7 @@ .@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } .@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } .@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } .@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } .@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } .@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } @@ -594,3 +599,191 @@ .@{fa-css-prefix}-train:before { content: @fa-var-train; } .@{fa-css-prefix}-subway:before { content: @fa-var-subway; } .@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } +.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } +.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } +.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } +.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } +.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } +.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } +.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } +.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } +.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } +.@{fa-css-prefix}-vcard:before, +.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } +.@{fa-css-prefix}-vcard-o:before, +.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } +.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } +.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } +.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } +.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } +.@{fa-css-prefix}-drivers-license:before, +.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } +.@{fa-css-prefix}-drivers-license-o:before, +.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } +.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } +.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } +.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } +.@{fa-css-prefix}-thermometer-4:before, +.@{fa-css-prefix}-thermometer:before, +.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } +.@{fa-css-prefix}-thermometer-3:before, +.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } +.@{fa-css-prefix}-thermometer-2:before, +.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } +.@{fa-css-prefix}-thermometer-1:before, +.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } +.@{fa-css-prefix}-thermometer-0:before, +.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } +.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } +.@{fa-css-prefix}-bathtub:before, +.@{fa-css-prefix}-s15:before, +.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } +.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } +.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } +.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } +.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } +.@{fa-css-prefix}-times-rectangle:before, +.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } +.@{fa-css-prefix}-times-rectangle-o:before, +.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } +.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } +.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } +.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } +.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } +.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } +.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } +.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } +.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } +.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } +.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } +.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/larger.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/larger.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/larger.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/larger.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/list.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/list.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/list.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/list.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less new file mode 100644 index 0000000000..beef231d0e --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +.fa-icon-rotate(@degrees, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less similarity index 87% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less index 9211e66597..835be41f81 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less @@ -9,7 +9,7 @@ url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); -// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/rotated-flipped.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/rotated-flipped.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/rotated-flipped.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/rotated-flipped.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less new file mode 100644 index 0000000000..11c188196d --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { .sr-only(); } +.sr-only-focusable { .sr-only-focusable(); } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/stacked.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/stacked.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/stacked.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/stacked.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less similarity index 73% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less index d526064c84..7ddbbc0115 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less @@ -3,20 +3,28 @@ @fa-font-path: "../fonts"; @fa-font-size-base: 14px; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly @fa-css-prefix: fa; -@fa-version: "4.3.0"; +@fa-version: "4.7.0"; @fa-border-color: #eee; @fa-inverse: #fff; @fa-li-width: (30em / 14); +@fa-var-500px: "\f26e"; +@fa-var-address-book: "\f2b9"; +@fa-var-address-book-o: "\f2ba"; +@fa-var-address-card: "\f2bb"; +@fa-var-address-card-o: "\f2bc"; @fa-var-adjust: "\f042"; @fa-var-adn: "\f170"; @fa-var-align-center: "\f037"; @fa-var-align-justify: "\f039"; @fa-var-align-left: "\f036"; @fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; @fa-var-ambulance: "\f0f9"; +@fa-var-american-sign-language-interpreting: "\f2a3"; @fa-var-anchor: "\f13d"; @fa-var-android: "\f17b"; @fa-var-angellist: "\f209"; @@ -47,16 +55,34 @@ @fa-var-arrows-alt: "\f0b2"; @fa-var-arrows-h: "\f07e"; @fa-var-arrows-v: "\f07d"; +@fa-var-asl-interpreting: "\f2a3"; +@fa-var-assistive-listening-systems: "\f2a2"; @fa-var-asterisk: "\f069"; @fa-var-at: "\f1fa"; +@fa-var-audio-description: "\f29e"; @fa-var-automobile: "\f1b9"; @fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; @fa-var-ban: "\f05e"; +@fa-var-bandcamp: "\f2d5"; @fa-var-bank: "\f19c"; @fa-var-bar-chart: "\f080"; @fa-var-bar-chart-o: "\f080"; @fa-var-barcode: "\f02a"; @fa-var-bars: "\f0c9"; +@fa-var-bath: "\f2cd"; +@fa-var-bathtub: "\f2cd"; +@fa-var-battery: "\f240"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; @fa-var-bed: "\f236"; @fa-var-beer: "\f0fc"; @fa-var-behance: "\f1b4"; @@ -71,12 +97,17 @@ @fa-var-bitbucket: "\f171"; @fa-var-bitbucket-square: "\f172"; @fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-blind: "\f29d"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; @fa-var-bold: "\f032"; @fa-var-bolt: "\f0e7"; @fa-var-bomb: "\f1e2"; @fa-var-book: "\f02d"; @fa-var-bookmark: "\f02e"; @fa-var-bookmark-o: "\f097"; +@fa-var-braille: "\f2a1"; @fa-var-briefcase: "\f0b1"; @fa-var-btc: "\f15a"; @fa-var-bug: "\f188"; @@ -89,7 +120,11 @@ @fa-var-cab: "\f1ba"; @fa-var-calculator: "\f1ec"; @fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; @fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; @fa-var-camera: "\f030"; @fa-var-camera-retro: "\f083"; @fa-var-car: "\f1b9"; @@ -105,7 +140,9 @@ @fa-var-cart-plus: "\f217"; @fa-var-cc: "\f20a"; @fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; @fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; @fa-var-cc-mastercard: "\f1f1"; @fa-var-cc-paypal: "\f1f4"; @fa-var-cc-stripe: "\f1f5"; @@ -127,12 +164,14 @@ @fa-var-chevron-right: "\f054"; @fa-var-chevron-up: "\f077"; @fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; @fa-var-circle: "\f111"; @fa-var-circle-o: "\f10c"; @fa-var-circle-o-notch: "\f1ce"; @fa-var-circle-thin: "\f1db"; @fa-var-clipboard: "\f0ea"; @fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; @fa-var-close: "\f00d"; @fa-var-cloud: "\f0c2"; @fa-var-cloud-download: "\f0ed"; @@ -141,20 +180,26 @@ @fa-var-code: "\f121"; @fa-var-code-fork: "\f126"; @fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; @fa-var-coffee: "\f0f4"; @fa-var-cog: "\f013"; @fa-var-cogs: "\f085"; @fa-var-columns: "\f0db"; @fa-var-comment: "\f075"; @fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; @fa-var-comments: "\f086"; @fa-var-comments-o: "\f0e6"; @fa-var-compass: "\f14e"; @fa-var-compress: "\f066"; @fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; @fa-var-copy: "\f0c5"; @fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; @fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; @fa-var-crop: "\f125"; @fa-var-crosshairs: "\f05b"; @fa-var-css3: "\f13c"; @@ -165,6 +210,8 @@ @fa-var-dashboard: "\f0e4"; @fa-var-dashcube: "\f210"; @fa-var-database: "\f1c0"; +@fa-var-deaf: "\f2a4"; +@fa-var-deafness: "\f2a4"; @fa-var-dedent: "\f03b"; @fa-var-delicious: "\f1a5"; @fa-var-desktop: "\f108"; @@ -175,17 +222,25 @@ @fa-var-dot-circle-o: "\f192"; @fa-var-download: "\f019"; @fa-var-dribbble: "\f17d"; +@fa-var-drivers-license: "\f2c2"; +@fa-var-drivers-license-o: "\f2c3"; @fa-var-dropbox: "\f16b"; @fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; @fa-var-edit: "\f044"; +@fa-var-eercast: "\f2da"; @fa-var-eject: "\f052"; @fa-var-ellipsis-h: "\f141"; @fa-var-ellipsis-v: "\f142"; @fa-var-empire: "\f1d1"; @fa-var-envelope: "\f0e0"; @fa-var-envelope-o: "\f003"; +@fa-var-envelope-open: "\f2b6"; +@fa-var-envelope-open-o: "\f2b7"; @fa-var-envelope-square: "\f199"; +@fa-var-envira: "\f299"; @fa-var-eraser: "\f12d"; +@fa-var-etsy: "\f2d7"; @fa-var-eur: "\f153"; @fa-var-euro: "\f153"; @fa-var-exchange: "\f0ec"; @@ -193,11 +248,13 @@ @fa-var-exclamation-circle: "\f06a"; @fa-var-exclamation-triangle: "\f071"; @fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; @fa-var-external-link: "\f08e"; @fa-var-external-link-square: "\f14c"; @fa-var-eye: "\f06e"; @fa-var-eye-slash: "\f070"; @fa-var-eyedropper: "\f1fb"; +@fa-var-fa: "\f2b4"; @fa-var-facebook: "\f09a"; @fa-var-facebook-f: "\f09a"; @fa-var-facebook-official: "\f230"; @@ -205,6 +262,7 @@ @fa-var-fast-backward: "\f049"; @fa-var-fast-forward: "\f050"; @fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; @fa-var-female: "\f182"; @fa-var-fighter-jet: "\f0fb"; @fa-var-file: "\f15b"; @@ -230,6 +288,8 @@ @fa-var-filter: "\f0b0"; @fa-var-fire: "\f06d"; @fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-first-order: "\f2b0"; @fa-var-flag: "\f024"; @fa-var-flag-checkered: "\f11e"; @fa-var-flag-o: "\f11d"; @@ -242,9 +302,13 @@ @fa-var-folder-open: "\f07c"; @fa-var-folder-open-o: "\f115"; @fa-var-font: "\f031"; +@fa-var-font-awesome: "\f2b4"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; @fa-var-forumbee: "\f211"; @fa-var-forward: "\f04e"; @fa-var-foursquare: "\f180"; +@fa-var-free-code-camp: "\f2c5"; @fa-var-frown-o: "\f119"; @fa-var-futbol-o: "\f1e3"; @fa-var-gamepad: "\f11b"; @@ -253,29 +317,50 @@ @fa-var-ge: "\f1d1"; @fa-var-gear: "\f013"; @fa-var-gears: "\f085"; -@fa-var-genderless: "\f1db"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; @fa-var-gift: "\f06b"; @fa-var-git: "\f1d3"; @fa-var-git-square: "\f1d2"; @fa-var-github: "\f09b"; @fa-var-github-alt: "\f113"; @fa-var-github-square: "\f092"; +@fa-var-gitlab: "\f296"; @fa-var-gittip: "\f184"; @fa-var-glass: "\f000"; +@fa-var-glide: "\f2a5"; +@fa-var-glide-g: "\f2a6"; @fa-var-globe: "\f0ac"; @fa-var-google: "\f1a0"; @fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-circle: "\f2b3"; +@fa-var-google-plus-official: "\f2b3"; @fa-var-google-plus-square: "\f0d4"; @fa-var-google-wallet: "\f1ee"; @fa-var-graduation-cap: "\f19d"; @fa-var-gratipay: "\f184"; +@fa-var-grav: "\f2d6"; @fa-var-group: "\f0c0"; @fa-var-h-square: "\f0fd"; @fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; @fa-var-hand-o-down: "\f0a7"; @fa-var-hand-o-left: "\f0a5"; @fa-var-hand-o-right: "\f0a4"; @fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-handshake-o: "\f2b5"; +@fa-var-hard-of-hearing: "\f2a4"; +@fa-var-hashtag: "\f292"; @fa-var-hdd-o: "\f0a0"; @fa-var-header: "\f1dc"; @fa-var-headphones: "\f025"; @@ -286,16 +371,33 @@ @fa-var-home: "\f015"; @fa-var-hospital-o: "\f0f8"; @fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; @fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; +@fa-var-id-badge: "\f2c1"; +@fa-var-id-card: "\f2c2"; +@fa-var-id-card-o: "\f2c3"; @fa-var-ils: "\f20b"; @fa-var-image: "\f03e"; +@fa-var-imdb: "\f2d8"; @fa-var-inbox: "\f01c"; @fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; @fa-var-info: "\f129"; @fa-var-info-circle: "\f05a"; @fa-var-inr: "\f156"; @fa-var-instagram: "\f16d"; @fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; @fa-var-ioxhost: "\f208"; @fa-var-italic: "\f033"; @fa-var-joomla: "\f1aa"; @@ -323,6 +425,7 @@ @fa-var-link: "\f0c1"; @fa-var-linkedin: "\f0e1"; @fa-var-linkedin-square: "\f08c"; +@fa-var-linode: "\f2b8"; @fa-var-linux: "\f17c"; @fa-var-list: "\f03a"; @fa-var-list-alt: "\f022"; @@ -334,13 +437,18 @@ @fa-var-long-arrow-left: "\f177"; @fa-var-long-arrow-right: "\f178"; @fa-var-long-arrow-up: "\f176"; +@fa-var-low-vision: "\f2a8"; @fa-var-magic: "\f0d0"; @fa-var-magnet: "\f076"; @fa-var-mail-forward: "\f064"; @fa-var-mail-reply: "\f112"; @fa-var-mail-reply-all: "\f122"; @fa-var-male: "\f183"; +@fa-var-map: "\f279"; @fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; @fa-var-mars: "\f222"; @fa-var-mars-double: "\f227"; @fa-var-mars-stroke: "\f229"; @@ -350,25 +458,37 @@ @fa-var-meanpath: "\f20c"; @fa-var-medium: "\f23a"; @fa-var-medkit: "\f0fa"; +@fa-var-meetup: "\f2e0"; @fa-var-meh-o: "\f11a"; @fa-var-mercury: "\f223"; +@fa-var-microchip: "\f2db"; @fa-var-microphone: "\f130"; @fa-var-microphone-slash: "\f131"; @fa-var-minus: "\f068"; @fa-var-minus-circle: "\f056"; @fa-var-minus-square: "\f146"; @fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; @fa-var-mobile: "\f10b"; @fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; @fa-var-money: "\f0d6"; @fa-var-moon-o: "\f186"; @fa-var-mortar-board: "\f19d"; @fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; @fa-var-music: "\f001"; @fa-var-navicon: "\f0c9"; @fa-var-neuter: "\f22c"; @fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; @fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; @fa-var-outdent: "\f03b"; @fa-var-pagelines: "\f18c"; @fa-var-paint-brush: "\f1fc"; @@ -378,18 +498,22 @@ @fa-var-paragraph: "\f1dd"; @fa-var-paste: "\f0ea"; @fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; @fa-var-paw: "\f1b0"; @fa-var-paypal: "\f1ed"; @fa-var-pencil: "\f040"; @fa-var-pencil-square: "\f14b"; @fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; @fa-var-phone: "\f095"; @fa-var-phone-square: "\f098"; @fa-var-photo: "\f03e"; @fa-var-picture-o: "\f03e"; @fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f1a7"; +@fa-var-pied-piper: "\f2ae"; @fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pied-piper-pp: "\f1a7"; @fa-var-pinterest: "\f0d2"; @fa-var-pinterest-p: "\f231"; @fa-var-pinterest-square: "\f0d3"; @@ -402,28 +526,36 @@ @fa-var-plus-circle: "\f055"; @fa-var-plus-square: "\f0fe"; @fa-var-plus-square-o: "\f196"; +@fa-var-podcast: "\f2ce"; @fa-var-power-off: "\f011"; @fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; @fa-var-puzzle-piece: "\f12e"; @fa-var-qq: "\f1d6"; @fa-var-qrcode: "\f029"; @fa-var-question: "\f128"; @fa-var-question-circle: "\f059"; +@fa-var-question-circle-o: "\f29c"; +@fa-var-quora: "\f2c4"; @fa-var-quote-left: "\f10d"; @fa-var-quote-right: "\f10e"; @fa-var-ra: "\f1d0"; @fa-var-random: "\f074"; +@fa-var-ravelry: "\f2d9"; @fa-var-rebel: "\f1d0"; @fa-var-recycle: "\f1b8"; @fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; @fa-var-reddit-square: "\f1a2"; @fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; @fa-var-remove: "\f00d"; @fa-var-renren: "\f18b"; @fa-var-reorder: "\f0c9"; @fa-var-repeat: "\f01e"; @fa-var-reply: "\f112"; @fa-var-reply-all: "\f122"; +@fa-var-resistance: "\f1d0"; @fa-var-retweet: "\f079"; @fa-var-rmb: "\f157"; @fa-var-road: "\f018"; @@ -436,8 +568,11 @@ @fa-var-rub: "\f158"; @fa-var-ruble: "\f158"; @fa-var-rupee: "\f156"; +@fa-var-s15: "\f2cd"; +@fa-var-safari: "\f267"; @fa-var-save: "\f0c7"; @fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; @fa-var-search: "\f002"; @fa-var-search-minus: "\f010"; @fa-var-search-plus: "\f00e"; @@ -455,10 +590,15 @@ @fa-var-shield: "\f132"; @fa-var-ship: "\f21a"; @fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; @fa-var-shopping-cart: "\f07a"; +@fa-var-shower: "\f2cc"; @fa-var-sign-in: "\f090"; +@fa-var-sign-language: "\f2a7"; @fa-var-sign-out: "\f08b"; @fa-var-signal: "\f012"; +@fa-var-signing: "\f2a7"; @fa-var-simplybuilt: "\f215"; @fa-var-sitemap: "\f0e8"; @fa-var-skyatlas: "\f216"; @@ -467,6 +607,10 @@ @fa-var-sliders: "\f1de"; @fa-var-slideshare: "\f1e7"; @fa-var-smile-o: "\f118"; +@fa-var-snapchat: "\f2ab"; +@fa-var-snapchat-ghost: "\f2ac"; +@fa-var-snapchat-square: "\f2ad"; +@fa-var-snowflake-o: "\f2dc"; @fa-var-soccer-ball-o: "\f1e3"; @fa-var-sort: "\f0dc"; @fa-var-sort-alpha-asc: "\f15d"; @@ -499,7 +643,11 @@ @fa-var-step-backward: "\f048"; @fa-var-step-forward: "\f051"; @fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; @fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; @fa-var-street-view: "\f21d"; @fa-var-strikethrough: "\f0cc"; @fa-var-stumbleupon: "\f1a4"; @@ -508,6 +656,7 @@ @fa-var-subway: "\f239"; @fa-var-suitcase: "\f0f2"; @fa-var-sun-o: "\f185"; +@fa-var-superpowers: "\f2dd"; @fa-var-superscript: "\f12b"; @fa-var-support: "\f1cd"; @fa-var-table: "\f0ce"; @@ -517,6 +666,8 @@ @fa-var-tags: "\f02c"; @fa-var-tasks: "\f0ae"; @fa-var-taxi: "\f1ba"; +@fa-var-telegram: "\f2c6"; +@fa-var-television: "\f26c"; @fa-var-tencent-weibo: "\f1d5"; @fa-var-terminal: "\f120"; @fa-var-text-height: "\f034"; @@ -524,6 +675,18 @@ @fa-var-th: "\f00a"; @fa-var-th-large: "\f009"; @fa-var-th-list: "\f00b"; +@fa-var-themeisle: "\f2b2"; +@fa-var-thermometer: "\f2c7"; +@fa-var-thermometer-0: "\f2cb"; +@fa-var-thermometer-1: "\f2ca"; +@fa-var-thermometer-2: "\f2c9"; +@fa-var-thermometer-3: "\f2c8"; +@fa-var-thermometer-4: "\f2c7"; +@fa-var-thermometer-empty: "\f2cb"; +@fa-var-thermometer-full: "\f2c7"; +@fa-var-thermometer-half: "\f2c9"; +@fa-var-thermometer-quarter: "\f2ca"; +@fa-var-thermometer-three-quarters: "\f2c8"; @fa-var-thumb-tack: "\f08d"; @fa-var-thumbs-down: "\f165"; @fa-var-thumbs-o-down: "\f088"; @@ -533,6 +696,8 @@ @fa-var-times: "\f00d"; @fa-var-times-circle: "\f057"; @fa-var-times-circle-o: "\f05c"; +@fa-var-times-rectangle: "\f2d3"; +@fa-var-times-rectangle-o: "\f2d4"; @fa-var-tint: "\f043"; @fa-var-toggle-down: "\f150"; @fa-var-toggle-left: "\f191"; @@ -540,6 +705,7 @@ @fa-var-toggle-on: "\f205"; @fa-var-toggle-right: "\f152"; @fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; @fa-var-train: "\f238"; @fa-var-transgender: "\f224"; @fa-var-transgender-alt: "\f225"; @@ -547,6 +713,7 @@ @fa-var-trash-o: "\f014"; @fa-var-tree: "\f1bb"; @fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; @fa-var-trophy: "\f091"; @fa-var-truck: "\f0d1"; @fa-var-try: "\f195"; @@ -554,33 +721,45 @@ @fa-var-tumblr: "\f173"; @fa-var-tumblr-square: "\f174"; @fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; @fa-var-twitch: "\f1e8"; @fa-var-twitter: "\f099"; @fa-var-twitter-square: "\f081"; @fa-var-umbrella: "\f0e9"; @fa-var-underline: "\f0cd"; @fa-var-undo: "\f0e2"; +@fa-var-universal-access: "\f29a"; @fa-var-university: "\f19c"; @fa-var-unlink: "\f127"; @fa-var-unlock: "\f09c"; @fa-var-unlock-alt: "\f13e"; @fa-var-unsorted: "\f0dc"; @fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; @fa-var-usd: "\f155"; @fa-var-user: "\f007"; +@fa-var-user-circle: "\f2bd"; +@fa-var-user-circle-o: "\f2be"; @fa-var-user-md: "\f0f0"; +@fa-var-user-o: "\f2c0"; @fa-var-user-plus: "\f234"; @fa-var-user-secret: "\f21b"; @fa-var-user-times: "\f235"; @fa-var-users: "\f0c0"; +@fa-var-vcard: "\f2bb"; +@fa-var-vcard-o: "\f2bc"; @fa-var-venus: "\f221"; @fa-var-venus-double: "\f226"; @fa-var-venus-mars: "\f228"; @fa-var-viacoin: "\f237"; +@fa-var-viadeo: "\f2a9"; +@fa-var-viadeo-square: "\f2aa"; @fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; @fa-var-vimeo-square: "\f194"; @fa-var-vine: "\f1ca"; @fa-var-vk: "\f189"; +@fa-var-volume-control-phone: "\f2a0"; @fa-var-volume-down: "\f027"; @fa-var-volume-off: "\f026"; @fa-var-volume-up: "\f028"; @@ -590,16 +769,31 @@ @fa-var-weixin: "\f1d7"; @fa-var-whatsapp: "\f232"; @fa-var-wheelchair: "\f193"; +@fa-var-wheelchair-alt: "\f29b"; @fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; +@fa-var-window-close: "\f2d3"; +@fa-var-window-close-o: "\f2d4"; +@fa-var-window-maximize: "\f2d0"; +@fa-var-window-minimize: "\f2d1"; +@fa-var-window-restore: "\f2d2"; @fa-var-windows: "\f17a"; @fa-var-won: "\f159"; @fa-var-wordpress: "\f19a"; +@fa-var-wpbeginner: "\f297"; +@fa-var-wpexplorer: "\f2de"; +@fa-var-wpforms: "\f298"; @fa-var-wrench: "\f0ad"; @fa-var-xing: "\f168"; @fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; @fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; @fa-var-yelp: "\f1e9"; @fa-var-yen: "\f157"; +@fa-var-yoast: "\f2b1"; @fa-var-youtube: "\f167"; @fa-var-youtube-play: "\f16a"; @fa-var-youtube-square: "\f166"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_animated.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_animated.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_animated.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_animated.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss similarity index 56% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss index 9d3fdf3a0b..d4b85a02f2 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss @@ -7,6 +7,15 @@ border-radius: .1em; } +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss similarity index 66% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss index 5a2db9d561..7425ef85fc 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss @@ -3,11 +3,10 @@ .#{$fa-css-prefix} { display: inline-block; - font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_fixed-width.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_fixed-width.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_fixed-width.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_fixed-width.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss index fbcfe81237..e63e702c4d 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss @@ -163,6 +163,7 @@ .#{$fa-css-prefix}-github:before { content: $fa-var-github; } .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } @@ -437,7 +438,7 @@ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } .#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } @@ -487,11 +488,14 @@ .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } .#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } .#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, .#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } .#{$fa-css-prefix}-ge:before, .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } .#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } @@ -502,7 +506,6 @@ .#{$fa-css-prefix}-send-o:before, .#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } .#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-genderless:before, .#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } .#{$fa-css-prefix}-header:before { content: $fa-var-header; } .#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } @@ -573,6 +576,7 @@ .#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } .#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } .#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, .#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } .#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } .#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } @@ -582,6 +586,7 @@ .#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } .#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } .#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } .#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } .#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } .#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } @@ -594,3 +599,191 @@ .#{$fa-css-prefix}-train:before { content: $fa-var-train; } .#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } .#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_larger.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_larger.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_larger.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_larger.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_list.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_list.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_list.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_list.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss new file mode 100644 index 0000000000..c3bbd5745d --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_path.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_path.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_path.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_path.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_rotated-flipped.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_rotated-flipped.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_rotated-flipped.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_rotated-flipped.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss new file mode 100644 index 0000000000..637426f0da --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_stacked.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_stacked.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_stacked.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_stacked.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss similarity index 73% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss index 9b7210e23b..498fc4a087 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss @@ -3,20 +3,28 @@ $fa-font-path: "../fonts" !default; $fa-font-size-base: 14px !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly $fa-css-prefix: fa !default; -$fa-version: "4.3.0" !default; +$fa-version: "4.7.0" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: (30em / 14) !default; +$fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; $fa-var-adjust: "\f042"; $fa-var-adn: "\f170"; $fa-var-align-center: "\f037"; $fa-var-align-justify: "\f039"; $fa-var-align-left: "\f036"; $fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; $fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; $fa-var-anchor: "\f13d"; $fa-var-android: "\f17b"; $fa-var-angellist: "\f209"; @@ -47,16 +55,34 @@ $fa-var-arrows: "\f047"; $fa-var-arrows-alt: "\f0b2"; $fa-var-arrows-h: "\f07e"; $fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; $fa-var-asterisk: "\f069"; $fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; $fa-var-automobile: "\f1b9"; $fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; $fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; $fa-var-bank: "\f19c"; $fa-var-bar-chart: "\f080"; $fa-var-bar-chart-o: "\f080"; $fa-var-barcode: "\f02a"; $fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; $fa-var-bed: "\f236"; $fa-var-beer: "\f0fc"; $fa-var-behance: "\f1b4"; @@ -71,12 +97,17 @@ $fa-var-birthday-cake: "\f1fd"; $fa-var-bitbucket: "\f171"; $fa-var-bitbucket-square: "\f172"; $fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; $fa-var-bold: "\f032"; $fa-var-bolt: "\f0e7"; $fa-var-bomb: "\f1e2"; $fa-var-book: "\f02d"; $fa-var-bookmark: "\f02e"; $fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; $fa-var-briefcase: "\f0b1"; $fa-var-btc: "\f15a"; $fa-var-bug: "\f188"; @@ -89,7 +120,11 @@ $fa-var-buysellads: "\f20d"; $fa-var-cab: "\f1ba"; $fa-var-calculator: "\f1ec"; $fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; $fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; $fa-var-camera: "\f030"; $fa-var-camera-retro: "\f083"; $fa-var-car: "\f1b9"; @@ -105,7 +140,9 @@ $fa-var-cart-arrow-down: "\f218"; $fa-var-cart-plus: "\f217"; $fa-var-cc: "\f20a"; $fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; $fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; $fa-var-cc-mastercard: "\f1f1"; $fa-var-cc-paypal: "\f1f4"; $fa-var-cc-stripe: "\f1f5"; @@ -127,12 +164,14 @@ $fa-var-chevron-left: "\f053"; $fa-var-chevron-right: "\f054"; $fa-var-chevron-up: "\f077"; $fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; $fa-var-circle: "\f111"; $fa-var-circle-o: "\f10c"; $fa-var-circle-o-notch: "\f1ce"; $fa-var-circle-thin: "\f1db"; $fa-var-clipboard: "\f0ea"; $fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; $fa-var-close: "\f00d"; $fa-var-cloud: "\f0c2"; $fa-var-cloud-download: "\f0ed"; @@ -141,20 +180,26 @@ $fa-var-cny: "\f157"; $fa-var-code: "\f121"; $fa-var-code-fork: "\f126"; $fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; $fa-var-coffee: "\f0f4"; $fa-var-cog: "\f013"; $fa-var-cogs: "\f085"; $fa-var-columns: "\f0db"; $fa-var-comment: "\f075"; $fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; $fa-var-comments: "\f086"; $fa-var-comments-o: "\f0e6"; $fa-var-compass: "\f14e"; $fa-var-compress: "\f066"; $fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; $fa-var-copy: "\f0c5"; $fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; $fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; $fa-var-crop: "\f125"; $fa-var-crosshairs: "\f05b"; $fa-var-css3: "\f13c"; @@ -165,6 +210,8 @@ $fa-var-cutlery: "\f0f5"; $fa-var-dashboard: "\f0e4"; $fa-var-dashcube: "\f210"; $fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; $fa-var-dedent: "\f03b"; $fa-var-delicious: "\f1a5"; $fa-var-desktop: "\f108"; @@ -175,17 +222,25 @@ $fa-var-dollar: "\f155"; $fa-var-dot-circle-o: "\f192"; $fa-var-download: "\f019"; $fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; $fa-var-dropbox: "\f16b"; $fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; $fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; $fa-var-eject: "\f052"; $fa-var-ellipsis-h: "\f141"; $fa-var-ellipsis-v: "\f142"; $fa-var-empire: "\f1d1"; $fa-var-envelope: "\f0e0"; $fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; $fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; $fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; $fa-var-eur: "\f153"; $fa-var-euro: "\f153"; $fa-var-exchange: "\f0ec"; @@ -193,11 +248,13 @@ $fa-var-exclamation: "\f12a"; $fa-var-exclamation-circle: "\f06a"; $fa-var-exclamation-triangle: "\f071"; $fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; $fa-var-external-link: "\f08e"; $fa-var-external-link-square: "\f14c"; $fa-var-eye: "\f06e"; $fa-var-eye-slash: "\f070"; $fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; $fa-var-facebook: "\f09a"; $fa-var-facebook-f: "\f09a"; $fa-var-facebook-official: "\f230"; @@ -205,6 +262,7 @@ $fa-var-facebook-square: "\f082"; $fa-var-fast-backward: "\f049"; $fa-var-fast-forward: "\f050"; $fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; $fa-var-female: "\f182"; $fa-var-fighter-jet: "\f0fb"; $fa-var-file: "\f15b"; @@ -230,6 +288,8 @@ $fa-var-film: "\f008"; $fa-var-filter: "\f0b0"; $fa-var-fire: "\f06d"; $fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; $fa-var-flag: "\f024"; $fa-var-flag-checkered: "\f11e"; $fa-var-flag-o: "\f11d"; @@ -242,9 +302,13 @@ $fa-var-folder-o: "\f114"; $fa-var-folder-open: "\f07c"; $fa-var-folder-open-o: "\f115"; $fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; $fa-var-forumbee: "\f211"; $fa-var-forward: "\f04e"; $fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; $fa-var-frown-o: "\f119"; $fa-var-futbol-o: "\f1e3"; $fa-var-gamepad: "\f11b"; @@ -253,29 +317,50 @@ $fa-var-gbp: "\f154"; $fa-var-ge: "\f1d1"; $fa-var-gear: "\f013"; $fa-var-gears: "\f085"; -$fa-var-genderless: "\f1db"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; $fa-var-gift: "\f06b"; $fa-var-git: "\f1d3"; $fa-var-git-square: "\f1d2"; $fa-var-github: "\f09b"; $fa-var-github-alt: "\f113"; $fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; $fa-var-gittip: "\f184"; $fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; $fa-var-globe: "\f0ac"; $fa-var-google: "\f1a0"; $fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; $fa-var-google-plus-square: "\f0d4"; $fa-var-google-wallet: "\f1ee"; $fa-var-graduation-cap: "\f19d"; $fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; $fa-var-group: "\f0c0"; $fa-var-h-square: "\f0fd"; $fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; $fa-var-hand-o-down: "\f0a7"; $fa-var-hand-o-left: "\f0a5"; $fa-var-hand-o-right: "\f0a4"; $fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; $fa-var-hdd-o: "\f0a0"; $fa-var-header: "\f1dc"; $fa-var-headphones: "\f025"; @@ -286,16 +371,33 @@ $fa-var-history: "\f1da"; $fa-var-home: "\f015"; $fa-var-hospital-o: "\f0f8"; $fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; $fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; $fa-var-ils: "\f20b"; $fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; $fa-var-inbox: "\f01c"; $fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; $fa-var-info: "\f129"; $fa-var-info-circle: "\f05a"; $fa-var-inr: "\f156"; $fa-var-instagram: "\f16d"; $fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; $fa-var-ioxhost: "\f208"; $fa-var-italic: "\f033"; $fa-var-joomla: "\f1aa"; @@ -323,6 +425,7 @@ $fa-var-line-chart: "\f201"; $fa-var-link: "\f0c1"; $fa-var-linkedin: "\f0e1"; $fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; $fa-var-linux: "\f17c"; $fa-var-list: "\f03a"; $fa-var-list-alt: "\f022"; @@ -334,13 +437,18 @@ $fa-var-long-arrow-down: "\f175"; $fa-var-long-arrow-left: "\f177"; $fa-var-long-arrow-right: "\f178"; $fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; $fa-var-magic: "\f0d0"; $fa-var-magnet: "\f076"; $fa-var-mail-forward: "\f064"; $fa-var-mail-reply: "\f112"; $fa-var-mail-reply-all: "\f122"; $fa-var-male: "\f183"; +$fa-var-map: "\f279"; $fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; $fa-var-mars: "\f222"; $fa-var-mars-double: "\f227"; $fa-var-mars-stroke: "\f229"; @@ -350,25 +458,37 @@ $fa-var-maxcdn: "\f136"; $fa-var-meanpath: "\f20c"; $fa-var-medium: "\f23a"; $fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; $fa-var-meh-o: "\f11a"; $fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; $fa-var-microphone: "\f130"; $fa-var-microphone-slash: "\f131"; $fa-var-minus: "\f068"; $fa-var-minus-circle: "\f056"; $fa-var-minus-square: "\f146"; $fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; $fa-var-mobile: "\f10b"; $fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; $fa-var-money: "\f0d6"; $fa-var-moon-o: "\f186"; $fa-var-mortar-board: "\f19d"; $fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; $fa-var-music: "\f001"; $fa-var-navicon: "\f0c9"; $fa-var-neuter: "\f22c"; $fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; $fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; $fa-var-outdent: "\f03b"; $fa-var-pagelines: "\f18c"; $fa-var-paint-brush: "\f1fc"; @@ -378,18 +498,22 @@ $fa-var-paperclip: "\f0c6"; $fa-var-paragraph: "\f1dd"; $fa-var-paste: "\f0ea"; $fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; $fa-var-paw: "\f1b0"; $fa-var-paypal: "\f1ed"; $fa-var-pencil: "\f040"; $fa-var-pencil-square: "\f14b"; $fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; $fa-var-phone: "\f095"; $fa-var-phone-square: "\f098"; $fa-var-photo: "\f03e"; $fa-var-picture-o: "\f03e"; $fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper: "\f2ae"; $fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; $fa-var-pinterest: "\f0d2"; $fa-var-pinterest-p: "\f231"; $fa-var-pinterest-square: "\f0d3"; @@ -402,28 +526,36 @@ $fa-var-plus: "\f067"; $fa-var-plus-circle: "\f055"; $fa-var-plus-square: "\f0fe"; $fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; $fa-var-power-off: "\f011"; $fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; $fa-var-puzzle-piece: "\f12e"; $fa-var-qq: "\f1d6"; $fa-var-qrcode: "\f029"; $fa-var-question: "\f128"; $fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; $fa-var-quote-left: "\f10d"; $fa-var-quote-right: "\f10e"; $fa-var-ra: "\f1d0"; $fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; $fa-var-rebel: "\f1d0"; $fa-var-recycle: "\f1b8"; $fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; $fa-var-reddit-square: "\f1a2"; $fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; $fa-var-remove: "\f00d"; $fa-var-renren: "\f18b"; $fa-var-reorder: "\f0c9"; $fa-var-repeat: "\f01e"; $fa-var-reply: "\f112"; $fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; $fa-var-retweet: "\f079"; $fa-var-rmb: "\f157"; $fa-var-road: "\f018"; @@ -436,8 +568,11 @@ $fa-var-rss-square: "\f143"; $fa-var-rub: "\f158"; $fa-var-ruble: "\f158"; $fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; +$fa-var-safari: "\f267"; $fa-var-save: "\f0c7"; $fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; $fa-var-search: "\f002"; $fa-var-search-minus: "\f010"; $fa-var-search-plus: "\f00e"; @@ -455,10 +590,15 @@ $fa-var-sheqel: "\f20b"; $fa-var-shield: "\f132"; $fa-var-ship: "\f21a"; $fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; $fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; $fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; $fa-var-sign-out: "\f08b"; $fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; $fa-var-simplybuilt: "\f215"; $fa-var-sitemap: "\f0e8"; $fa-var-skyatlas: "\f216"; @@ -467,6 +607,10 @@ $fa-var-slack: "\f198"; $fa-var-sliders: "\f1de"; $fa-var-slideshare: "\f1e7"; $fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; $fa-var-soccer-ball-o: "\f1e3"; $fa-var-sort: "\f0dc"; $fa-var-sort-alpha-asc: "\f15d"; @@ -499,7 +643,11 @@ $fa-var-steam-square: "\f1b7"; $fa-var-step-backward: "\f048"; $fa-var-step-forward: "\f051"; $fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; $fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; $fa-var-street-view: "\f21d"; $fa-var-strikethrough: "\f0cc"; $fa-var-stumbleupon: "\f1a4"; @@ -508,6 +656,7 @@ $fa-var-subscript: "\f12c"; $fa-var-subway: "\f239"; $fa-var-suitcase: "\f0f2"; $fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; $fa-var-superscript: "\f12b"; $fa-var-support: "\f1cd"; $fa-var-table: "\f0ce"; @@ -517,6 +666,8 @@ $fa-var-tag: "\f02b"; $fa-var-tags: "\f02c"; $fa-var-tasks: "\f0ae"; $fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; +$fa-var-television: "\f26c"; $fa-var-tencent-weibo: "\f1d5"; $fa-var-terminal: "\f120"; $fa-var-text-height: "\f034"; @@ -524,6 +675,18 @@ $fa-var-text-width: "\f035"; $fa-var-th: "\f00a"; $fa-var-th-large: "\f009"; $fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; $fa-var-thumb-tack: "\f08d"; $fa-var-thumbs-down: "\f165"; $fa-var-thumbs-o-down: "\f088"; @@ -533,6 +696,8 @@ $fa-var-ticket: "\f145"; $fa-var-times: "\f00d"; $fa-var-times-circle: "\f057"; $fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; $fa-var-tint: "\f043"; $fa-var-toggle-down: "\f150"; $fa-var-toggle-left: "\f191"; @@ -540,6 +705,7 @@ $fa-var-toggle-off: "\f204"; $fa-var-toggle-on: "\f205"; $fa-var-toggle-right: "\f152"; $fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; $fa-var-train: "\f238"; $fa-var-transgender: "\f224"; $fa-var-transgender-alt: "\f225"; @@ -547,6 +713,7 @@ $fa-var-trash: "\f1f8"; $fa-var-trash-o: "\f014"; $fa-var-tree: "\f1bb"; $fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; $fa-var-trophy: "\f091"; $fa-var-truck: "\f0d1"; $fa-var-try: "\f195"; @@ -554,33 +721,45 @@ $fa-var-tty: "\f1e4"; $fa-var-tumblr: "\f173"; $fa-var-tumblr-square: "\f174"; $fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; $fa-var-twitch: "\f1e8"; $fa-var-twitter: "\f099"; $fa-var-twitter-square: "\f081"; $fa-var-umbrella: "\f0e9"; $fa-var-underline: "\f0cd"; $fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; $fa-var-university: "\f19c"; $fa-var-unlink: "\f127"; $fa-var-unlock: "\f09c"; $fa-var-unlock-alt: "\f13e"; $fa-var-unsorted: "\f0dc"; $fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; $fa-var-usd: "\f155"; $fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; $fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; $fa-var-user-plus: "\f234"; $fa-var-user-secret: "\f21b"; $fa-var-user-times: "\f235"; $fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; $fa-var-venus: "\f221"; $fa-var-venus-double: "\f226"; $fa-var-venus-mars: "\f228"; $fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; $fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; $fa-var-vimeo-square: "\f194"; $fa-var-vine: "\f1ca"; $fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; $fa-var-volume-down: "\f027"; $fa-var-volume-off: "\f026"; $fa-var-volume-up: "\f028"; @@ -590,16 +769,31 @@ $fa-var-weibo: "\f18a"; $fa-var-weixin: "\f1d7"; $fa-var-whatsapp: "\f232"; $fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; $fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; $fa-var-windows: "\f17a"; $fa-var-won: "\f159"; $fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; +$fa-var-wpforms: "\f298"; $fa-var-wrench: "\f0ad"; $fa-var-xing: "\f168"; $fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; $fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; $fa-var-yelp: "\f1e9"; $fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; $fa-var-youtube: "\f167"; $fa-var-youtube-play: "\f16a"; $fa-var-youtube-square: "\f166"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss similarity index 79% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss index 388ac6b0cd..f1c83aaa5d 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -15,3 +15,4 @@ @import "rotated-flipped"; @import "stacked"; @import "icons"; +@import "screen-reader"; diff --git a/mayan/apps/appearance/templates/appearance/base.html b/mayan/apps/appearance/templates/appearance/base.html index ccf53112b1..34bd926549 100644 --- a/mayan/apps/appearance/templates/appearance/base.html +++ b/mayan/apps/appearance/templates/appearance/base.html @@ -22,8 +22,9 @@ {% compress css %} - - + + {# Disable base Bootstrap CSS, Flatly seems to include it already #} + {##} @@ -32,6 +33,17 @@ {% block stylesheets %}{% endblock %} {% endcompress %} + {% if appearance_type == 'plain' %} @@ -71,14 +83,19 @@


-
{% if is_multipart %}
@@ -62,7 +61,7 @@
{% if not form_disable_submit %} - + {% endif %} {% if previous %}   diff --git a/mayan/apps/authentication/apps.py b/mayan/apps/authentication/apps.py index 85942e587c..aeb0ca7a3c 100644 --- a/mayan/apps/authentication/apps.py +++ b/mayan/apps/authentication/apps.py @@ -12,8 +12,8 @@ logger = logging.getLogger(__name__) class AuthenticationApp(MayanAppConfig): + has_tests = True name = 'authentication' - test = True verbose_name = _('Authentication') def ready(self): diff --git a/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.mo index 3523fb774320ed9977071a5215ec0d07db9e1554..91ba04101c64f2bdadaff42eb2e949464d64dd19 100644 GIT binary patch delta 47 zcmcb}evy4c8Y8c{u7Rnpk%fYxsg;T47|M3sa6V!MU!QjqBplP`7ik+Fh-k(H^@_#di#E3~`7#0k DN$L&% diff --git a/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.po index 20ed425425..195dd8ea2c 100644 --- a/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/ar/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:17 settings.py:7 msgid "Authentication" diff --git a/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.mo index 51c2d9a4071b6dc742a008e00661c1d45a54edb3..c556bbeffbf89ea919228c01313786a2444b0b2c 100644 GIT binary patch delta 46 zcmZ3%wt{Vg4kNF*u7Rnpk%fYxsg;T4WJ|_%JU)qe>7|M3sa6U}>64!^Mo;!*x&;6z CKMphi delta 46 zcmZ3%wt{Vg4kNFbuA!l>k+Fh-k(H^@WJ|_%lfN)V@%SX>rI#kAr&=i_rBC){x(xs= CiViLS diff --git a/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.po index ffae6ef143..315bc83426 100644 --- a/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/bg/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.mo index 7e6cdb88d10fb9ae2a819f7866b11a222faa376f..82616d34b9b151b08092fc04e3b20f3b346ffd48 100644 GIT binary patch delta 49 zcmZo=Z)M+*#>i`~YhbEtWT9YaYGqi`?YiOuzWUOFdWMyhJxtQ_9WN)S@exJm=^wPxiR4av~;&>;=$xE0X F0sv664;}yj diff --git a/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.po index b9f85634ee..20b8dbdc91 100644 --- a/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/bs_BA/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:17 settings.py:7 msgid "Authentication" diff --git a/mayan/apps/authentication/locale/da/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/da/LC_MESSAGES/django.mo index a406f7aafe589b2d068ec7140679fb2f9c0de7a8..682e97ef9925b3364d84ff3b5493bf56ec8b83d4 100644 GIT binary patch delta 44 zcmeyy{Ed0S5?*s%15;fi3k5?{D-+9!8&~uAB<7`;CZ?xaDWoJ$j%JLWe3;P~08PaX A(EtDd delta 44 zcmeyy{Ed0S5?(W1LqlC7V+8{vD^sJ18&^-xWQ^kRNz6+xO-xU\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/authentication/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/de_DE/LC_MESSAGES/django.mo index 95d0e165459516619fb24b756571807e538ed9de..2b3b592e3c6296ee07183a219bb4e58eca2cc7f1 100644 GIT binary patch delta 50 zcmeC>?&aRFkcrn^*T7WQ$U?!;)XKzi@;asi{62|!>7|M3sa6UpsqrqZlXID)H{W31 G$_M~@f)D`! delta 50 zcmeC>?&aRFkcrn!*U(Vc$XLO^$ja1c@;asilk1qH__$IQsZ4*H(zJo G#s~m, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Passwort" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Bitte geben Sie Ihre E-Mailadresse und ein Passwort an. Beachten Sie, dass das Passwortfeld Groß- und Kleinschreibung unterscheidet." +msgstr "" +"Bitte geben Sie Ihre E-Mailadresse und ein Passwort an. Beachten Sie, dass " +"das Passwortfeld Groß- und Kleinschreibung unterscheidet." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Passwort ändern" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Authentifizierungs-Mechanismus für die Benutzer. Optionen: Benutzername, E-Mail-Adresse" +msgstr "" +"Authentifizierungs-Mechanismus für die Benutzer. Optionen: Benutzername, E-" +"Mail-Adresse" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/en/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/en/LC_MESSAGES/django.mo index 21eaaf8a16f9acc1b4baa8fa1e5f6db91cbca6d9..6584aef737d74dce288a9035d2a476350266914c 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m5JrV>5lu8 delta 23 ecmeyx^owai7q6MFp`oskv4Vk-m8sFh>5l\n" "Language-Team: LANGUAGE \n" diff --git a/mayan/apps/authentication/locale/es/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/es/LC_MESSAGES/django.mo index 8f5caa87a82c675f6a75fdbc2891d31dc011ec2d..d47f18c9cb29b556c46ab9d04d6d9b9f0caf4e18 100644 GIT binary patch delta 47 zcmZ3+y^MRqLMC2wT?12HBMSvXQ!5k8$?KRF@%SX>rI#kAr&=kb7EktPj^4bT`8^{5 DQ>qU% delta 47 zcmZ3+y^MRqLMC1_T|+}%BVz>vBP&y*$?KRFO^#)b;_*q$OD|1KPqk7=E#AD1`2!;W DQ6dj6 diff --git a/mayan/apps/authentication/locale/es/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/es/LC_MESSAGES/django.po index 6e17a8f7bd..9313d28adb 100644 --- a/mayan/apps/authentication/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/es/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Contraseña" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Introduzca una dirección de correo y contraseña válidos. Recuerde que la contraseña es sensible a mayúsculas." +msgstr "" +"Introduzca una dirección de correo y contraseña válidos. Recuerde que la " +"contraseña es sensible a mayúsculas." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Cambiar contraseña" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Controla el mecanismo utilizado para el usuario autenticado. Las opciones son: 'username' nombre de usuario, 'email' correo electrónico" +msgstr "" +"Controla el mecanismo utilizado para el usuario autenticado. Las opciones " +"son: 'username' nombre de usuario, 'email' correo electrónico" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.mo index c1315305bc714d6cb5de36c370605050afa9d46c..309a2704c4710804ec2f217d4f789e7af2a02ca9 100644 GIT binary patch delta 47 zcmdnUxsh{&5EHMtu7Rnpk%fYxsg;T4WO=4FJU)qe>7|M3sa6VUiIYz;MQ=7@u4e=Q DGM5de delta 47 zcmdnUxsh{&5EHMNuA!l>k+Fh-k(H^@WO=4FlW#CZ@%SX>rI#kAr&=kbC2lrkZeRoe DHiZqK diff --git a/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.po index 668a0db297..f895567171 100644 --- a/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/fa/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:17 settings.py:7 @@ -33,7 +34,9 @@ msgstr "کلمه عبور" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "لطفا از ایمیل و کلمه عبور معتبر جهت ورود استفاده کنید. درضمن کلمه عبور case-sensitive است." +msgstr "" +"لطفا از ایمیل و کلمه عبور معتبر جهت ورود استفاده کنید. درضمن کلمه عبور case-" +"sensitive است." #: forms.py:26 msgid "This account is inactive." diff --git a/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.mo index f0be360e41246776aa47fc53db9953f014208aa1..a5b35141fa6ac59c6628b65b792018d3df27a41e 100644 GIT binary patch delta 47 zcmbQmJ&Sw8LMC2wT?12HBMSvXQ!5k8$?KR7^Y|p@rI#kAr&=kb6-_Q+j^2EO`4A%j DQ-lvv delta 47 zcmbQmJ&Sw8LMC1_T|+}%BVz>vBP&y*$?KR7Pp)H*;_*q$OD|1KPqk7=E82XW`7k2@ DQmGG2 diff --git a/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.po index 9a9551c9b2..eae56cf2f8 100644 --- a/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Mot de passe" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Veuillez entrer un courriel et mot de passe valide. Noter que le mot de passe est sensible à la casse." +msgstr "" +"Veuillez entrer un courriel et mot de passe valide. Noter que le mot de " +"passe est sensible à la casse." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Changer le mot de passe" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Contrôle du mécanisme utilisé pour identifier l'utilisateur. les options sont: nom d'utilisateur, courriel" +msgstr "" +"Contrôle du mécanisme utilisé pour identifier l'utilisateur. les options " +"sont: nom d'utilisateur, courriel" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/hu/LC_MESSAGES/django.mo index 4705a4e2564250c649bd323bcfe09d9d179bff6d..51715c82026d0fe7635b401995695f609b4e0f11 100644 GIT binary patch delta 44 zcmZo\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/authentication/locale/id/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/id/LC_MESSAGES/django.mo index 831f8fb384c9839144848ded56d7dad0ada5a849..4bd2120273f0cb692c0740a1adec0f75b0a12b9e 100644 GIT binary patch delta 46 zcmaFQ_MUCS0!ChQT?12HBMSvXQ!5k8$!i(c^Y|p@rI#kAr&=jwrc91zik^I!X$=5e CR1a(b delta 46 zcmaFQ_MUCS0!CglT|+}%BVz>vBP&y*$!i(cPtIhD;_*q$OD|1KPqk9WOqqO$X)OR+ CjSpr3 diff --git a/mayan/apps/authentication/locale/id/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/id/LC_MESSAGES/django.po index e4f10a0413..f35b027482 100644 --- a/mayan/apps/authentication/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/id/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:17 settings.py:7 @@ -33,7 +34,8 @@ msgstr "Password" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Silahkan tuliskan alamat email yang benar. kolom Password Case-Sensitive" +msgstr "" +"Silahkan tuliskan alamat email yang benar. kolom Password Case-Sensitive" #: forms.py:26 msgid "This account is inactive." diff --git a/mayan/apps/authentication/locale/it/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/it/LC_MESSAGES/django.mo index b2c2dbdc310166be41ecdf0a784309d9d637cd03..24a371f7b85d5f51ced058ff772e9ed185dba2b9 100644 GIT binary patch delta 47 zcmaFC^@3}|LMC2wT?12HBMSvXQ!5k8$?KT*^Y|p@rI#kAr&=jwmQ2oJj^2EQc?u%{ DZhsHA delta 45 zcmaFC^@3}|LMC1_T|+}%BVz>vBP&y*$?KT*Pp)E);_^w%OD|1KPqk9me35xNBLGe} B4$=Ss diff --git a/mayan/apps/authentication/locale/it/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/it/LC_MESSAGES/django.po index 7cf57f385a..3847e183ac 100644 --- a/mayan/apps/authentication/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/it/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 09:36+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Password" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Inserisci email e password corretti. Si noti che il campo password è case-sensitive." +msgstr "" +"Inserisci email e password corretti. Si noti che il campo password è case-" +"sensitive." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Cambiare la password" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Controlla il meccanismo utilizzato per autenticare l'utente. Le opzioni sono: username, email" +msgstr "" +"Controlla il meccanismo utilizzato per autenticare l'utente. Le opzioni " +"sono: username, email" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.mo index 41fb75b73f4451b17475d03c409df58f4a8c57d3..e31c2158b928e19eed19e47858df97be34971b9e 100644 GIT binary patch delta 50 zcmbQlJ&Ak6LMC2wT?12HBMSvXQ!5k8$?KTT^ZO*`rI#kAr&=lG<;45>Os-*$-u#?- GH6s9kEf7!u delta 50 zcmbQlJ&Ak6LMC1_T|+}%BVz>vBP&y*$?KTTPwr)o;`d3+OD|1KPqk9W%Zc~%+5C)o G4I==6a}Z4c diff --git a/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.po index 2d481945be..1643e8eb14 100644 --- a/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/nl_NL/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Justin Albstbstmeijer , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Justin Albstbstmeijer \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Wachtwoord" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Vul het juiste email adres en wachtwoord in. Houd er rekening mee dat het wachtwoord-invulveld hoofdlettergevoelig is." +msgstr "" +"Vul het juiste email adres en wachtwoord in. Houd er rekening mee dat het " +"wachtwoord-invulveld hoofdlettergevoelig is." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Pas wachtwoord aan" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Beinvloed de manier waarop gebruikers worden geauthenticeerd. Opties zijn: gebruikersnaam, email" +msgstr "" +"Beinvloed de manier waarop gebruikers worden geauthenticeerd. Opties zijn: " +"gebruikersnaam, email" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.mo index d9dcf936db36b35a53dd4ab6f5d0815175887e4d..33d077f15544a21ce04321fc4997872c52756aca 100644 GIT binary patch delta 47 zcmaFG^@?l5LMC2wT?12HBMSvXQ!5k8$?KR7@c1O=rI#kAr&=i#vBP&y*$?KR7Os-~*;_*q$OD|1KPqk7g$k}{_c^V@C DZbuKe diff --git a/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.po index 4380048603..f3bef23ecb 100644 --- a/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Wojtek Warczakowski , 2016 # Wojtek Warczakowski , 2016 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-22 17:45+0000\n" "Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: apps.py:17 settings.py:7 msgid "Authentication" @@ -53,7 +55,9 @@ msgstr "Zmień hasło" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Kontroluje mechanizm uwierzytelniania użytkownika. Opcje: nazwa użytkownika, email" +msgstr "" +"Kontroluje mechanizm uwierzytelniania użytkownika. Opcje: nazwa użytkownika, " +"email" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.mo index 940c4fd966b76fee71d09a00336a8cf2b9e0d1c9..2e076a5082e016da1061d322423fd78b1f3f71c9 100644 GIT binary patch delta 46 zcmZ3&zJz_ld`4b#T?12HBMSvXQ!5k8$!i$T^Y|p@rI#kAr&=i#luWK-ik|$4=@0-$ C?+;-B delta 45 zcmZ3&zJz_ld`4a~T|+}%BVz>vBP&y*$!i$TPwrrf;`T|*OD|1KPqk7gnEZh02mm)* B4(0#= diff --git a/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.po index bcbdebfa09..f643a86664 100644 --- a/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/pt/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Manuela Silva , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Manuela Silva \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.mo index d5aa336217f5bca2c83ab97084554c16fe4a7f46..26ddfaac2f34bfcce3f1ef0585f0566b2912aa38 100644 GIT binary patch delta 50 zcmeyv^@nT2LMC2wT?12HBMSvXQ!5k8$?KR-^ZO*`rI#kAr&=i#l*Bs)O|D>$-u#$( GCL;i+;SmS` delta 50 zcmeyv^@nT2LMC1_T|+}%BVz>vBP&y*$?KR-Pwr%n;`d3+OD|1KPqk7gD2aCp+Wd%l G79#+s*AWE( diff --git a/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.po index 3da0560694..af2355c1e9 100644 --- a/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/pt_BR/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-10 19:28+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:17 settings.py:7 @@ -34,7 +35,9 @@ msgstr "Senha" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Por favor, indique um e-mail e senha corretamente. Note-se que o campo de senha diferencia maiúsculas de minúsculas." +msgstr "" +"Por favor, indique um e-mail e senha corretamente. Note-se que o campo de " +"senha diferencia maiúsculas de minúsculas." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +55,9 @@ msgstr "Alterar a senha" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Controla o mecanismo usado para autenticar o usuário. As opções são: nome de usuário, e-mail" +msgstr "" +"Controla o mecanismo usado para autenticar o usuário. As opções são: nome de " +"usuário, e-mail" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.mo index 1020060a2f5398fbf881b063e2d3d5a69a9410e4..e5ea58ff824a53cf6fd43d460a6b70408ffbc336 100644 GIT binary patch delta 49 zcmaFO_L^-&8Y8c{u7Rnpk%fYxsg;T47|M3sa6U_`SC&ilXaM)Cr@X( F0swi`58nU) delta 49 zcmaFO_L^-&8Y8cnuA!l>k+Fh-k(H^@_$=^5cX2Cr@L# F3IKG~58MC% diff --git a/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.po index 3829bdd04c..832a946faa 100644 --- a/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/ro_RO/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:17 settings.py:7 msgid "Authentication" diff --git a/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.mo index a0b7b1afc7c1c970c047a21395a7d0bfcebc2854..b9b44bf135bc7377cd4f9f16e439f9dd835c8431 100644 GIT binary patch delta 47 zcmaFC`+|4FLMC2wT?12HBMSvXQ!5k8$?KTr^7tg?rI#kAr&=i#l}`3zj^4b9*^C(g DYMKuP delta 47 zcmaFC`+|4FLMC1_T|+}%BVz>vBP&y*$?KTrPL5!X;_*q$OD|1KPqk7gD&4%1*_;^w DXO#~B diff --git a/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.po index 9568210c61..fbba1ccabc 100644 --- a/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/ru/LC_MESSAGES/django.po @@ -1,22 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-14 02:03+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:17 settings.py:7 msgid "Authentication" @@ -34,7 +37,9 @@ msgstr "Пароль" msgid "" "Please enter a correct email and password. Note that the password field is " "case-sensitive." -msgstr "Пожалуйста, введите правильный адрес электронной почты и пароль с учетом регистра." +msgstr "" +"Пожалуйста, введите правильный адрес электронной почты и пароль с учетом " +"регистра." #: forms.py:26 msgid "This account is inactive." @@ -52,7 +57,9 @@ msgstr "Изменить пароль" msgid "" "Controls the mechanism used to authenticated user. Options are: username, " "email" -msgstr "Управление механизмом, используемым для аутентификации пользователя. Возможные варианты: имя пользователя, адрес электронной почты" +msgstr "" +"Управление механизмом, используемым для аутентификации пользователя. " +"Возможные варианты: имя пользователя, адрес электронной почты" #: views.py:39 msgid "Current user password change" diff --git a/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.mo index a04f021c5a9a0e3b9ea587cb646598919886ea31..ed9d72608758d38929904d2400298b5605958c60 100644 GIT binary patch delta 47 zcmbQiGJ|D8E3dh(fvK*Mg@U1}m5JrVNqhKx67$ka6Vp?z6pC}=gFPqvGDc6{!I%I5 DRM-y| delta 47 zcmbQiGJ|D8E3cWZp`oskv4Vk-m8sFhNqZ*8F-GzGB<7`;CZ?xaDHP|#2YXK5&X@=Q DQV0(d diff --git a/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.po index 89677c28c8..66225a0839 100644 --- a/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:17 settings.py:7 msgid "Authentication" diff --git a/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.mo index 172985ecf6038fb1a8437d3989f94c6b5892387d..a3b0d2109cfb53c352c0bcf20fe8c83d2d2964a7 100644 GIT binary patch delta 49 zcmeyw`iXUeCL^!8u7Rnpk%fYxsg;T4WHZLS{62|!>7|M3sa6VQnekzMlRq&=PmX1p F3IK2T55WKc delta 49 zcmeyw`iXUeCL^zzuA!l>k+Fh-k(H^@WHZLSlbM;K__%rGULPiCdV*M F0{~!K4!-~Z diff --git a/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.po index 13bba07ce4..5366087b70 100644 --- a/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/vi_VN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.mo index 7ac66ee335e64fe0f4a1427e14e3457ab7a69d6e..93b3b8f60b8c6202e9cc854034e4af1a24abd436 100644 GIT binary patch delta 49 zcmeyw{)v6VD@I;(T?12HBMSvXQ!5k8$=?~b^ZO*`rI#kAr&=jgWyCxCOvBP&y*$=?~bPu|BA#qX1tmtLBfo@%8~l@agkH(8wd FHUOpf5bFQ{ diff --git a/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.po index 87d660ec9d..06f922315f 100644 --- a/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/authentication/locale/zh_CN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2015-08-20 19:09+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:17 settings.py:7 diff --git a/mayan/apps/cabinets/__init__.py b/mayan/apps/cabinets/__init__.py new file mode 100644 index 0000000000..14589dadfe --- /dev/null +++ b/mayan/apps/cabinets/__init__.py @@ -0,0 +1,3 @@ +from __future__ import unicode_literals + +default_app_config = 'cabinets.apps.CabinetsApp' diff --git a/mayan/apps/cabinets/admin.py b/mayan/apps/cabinets/admin.py new file mode 100644 index 0000000000..be3da6c442 --- /dev/null +++ b/mayan/apps/cabinets/admin.py @@ -0,0 +1,13 @@ +from __future__ import unicode_literals + +from django.contrib import admin + +from .models import Cabinet + +from mptt.admin import MPTTModelAdmin + + +@admin.register(Cabinet) +class CabinetAdmin(MPTTModelAdmin): + filter_horizontal = ('documents',) + list_display = ('label',) diff --git a/mayan/apps/cabinets/api_views.py b/mayan/apps/cabinets/api_views.py new file mode 100644 index 0000000000..dfb1c108b4 --- /dev/null +++ b/mayan/apps/cabinets/api_views.py @@ -0,0 +1,220 @@ +from __future__ import absolute_import, unicode_literals + +from django.shortcuts import get_object_or_404 + +from rest_framework import generics +from rest_framework.response import Response + +from acls.models import AccessControlList +from documents.models import Document +from documents.permissions import permission_document_view +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Cabinet +from .permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_remove_document, permission_cabinet_view +) +from .serializers import ( + CabinetDocumentSerializer, CabinetSerializer, NewCabinetDocumentSerializer, + WritableCabinetSerializer +) + + +class APIDocumentCabinetListView(generics.ListAPIView): + """ + Returns a list of all the cabinets to which a document belongs. + """ + + serializer_class = CabinetSerializer + + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_cabinet_view,)} + + def get_queryset(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + queryset = document.document_cabinets().all() + return queryset + + +class APICabinetListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_cabinet_view,)} + mayan_view_permissions = {'POST': (permission_cabinet_create,)} + permission_classes = (MayanPermission,) + queryset = Cabinet.objects.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return CabinetSerializer + elif self.request.method == 'POST': + return WritableCabinetSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the cabinets. + """ + return super(APICabinetListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Create a new cabinet. + """ + return super(APICabinetListView, self).post(*args, **kwargs) + + +class APICabinetView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_cabinet_view,), + 'PUT': (permission_cabinet_edit,), + 'PATCH': (permission_cabinet_edit,), + 'DELETE': (permission_cabinet_delete,) + } + permission_classes = (MayanPermission,) + queryset = Cabinet.objects.all() + + def delete(self, *args, **kwargs): + """ + Delete the selected cabinet. + """ + return super(APICabinetView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected cabinet. + """ + return super(APICabinetView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return CabinetSerializer + else: + return WritableCabinetSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected cabinet. + """ + return super(APICabinetView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected cabinet. + """ + return super(APICabinetView, self).put(*args, **kwargs) + + +class APICabinetDocumentListView(generics.ListCreateAPIView): + """ + Returns a list of all the documents contained in a particular cabinet. + """ + + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_cabinet_view,), + 'POST': (permission_cabinet_add_document,) + } + + def get_serializer_class(self): + if self.request.method == 'GET': + return CabinetDocumentSerializer + elif self.request.method == 'POST': + return NewCabinetDocumentSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'cabinet': self.get_cabinet(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_cabinet(self): + return get_object_or_404(Cabinet, pk=self.kwargs['pk']) + + def get_queryset(self): + cabinet = self.get_cabinet() + + return AccessControlList.objects.filter_by_access( + permission_document_view, self.request.user, + queryset=cabinet.documents.all() + ) + + def perform_create(self, serializer): + serializer.save(cabinet=self.get_cabinet()) + + def post(self, request, *args, **kwargs): + """ + Add a document to the selected cabinet. + """ + return super(APICabinetDocumentListView, self).post( + request, *args, **kwargs + ) + + +class APICabinetDocumentView(generics.RetrieveDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + lookup_url_kwarg = 'document_pk' + mayan_object_permissions = { + 'GET': (permission_cabinet_view,), + 'DELETE': (permission_cabinet_remove_document,) + } + serializer_class = CabinetDocumentSerializer + + def delete(self, request, *args, **kwargs): + """ + Remove a document from the selected cabinet. + """ + + return super(APICabinetDocumentView, self).delete( + request, *args, **kwargs + ) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected cabinet document. + """ + + return super(APICabinetDocumentView, self).get(*args, **kwargs) + + def get_cabinet(self): + return get_object_or_404(Cabinet, pk=self.kwargs['pk']) + + def get_queryset(self): + return self.get_cabinet().documents.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'cabinet': self.get_cabinet(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def perform_destroy(self, instance): + self.get_cabinet().documents.remove(instance) + + def retrieve(self, request, *args, **kwargs): + instance = self.get_object() + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=instance + ) + + serializer = self.get_serializer(instance) + return Response(serializer.data) diff --git a/mayan/apps/cabinets/apps.py b/mayan/apps/cabinets/apps.py new file mode 100644 index 0000000000..9bd2b0ef34 --- /dev/null +++ b/mayan/apps/cabinets/apps.py @@ -0,0 +1,106 @@ +from __future__ import unicode_literals + +from django.apps import apps +from django.utils.translation import ugettext_lazy as _ + +from acls import ModelPermission +from acls.permissions import permission_acl_edit, permission_acl_view +from common import ( + MayanAppConfig, menu_facet, menu_main, menu_multi_item, menu_object, + menu_sidebar +) +from rest_api.classes import APIEndPoint + +from .links import ( + link_cabinet_list, link_document_cabinet_list, + link_document_cabinet_remove, link_cabinet_add_document, + link_cabinet_add_multiple_documents, link_cabinet_child_add, + link_cabinet_create, link_cabinet_delete, link_cabinet_edit, + link_cabinet_view, link_custom_acl_list, + link_multiple_document_cabinet_remove +) +from .menus import menu_cabinets +from .permissions import ( + permission_cabinet_add_document, permission_cabinet_delete, + permission_cabinet_edit, permission_cabinet_remove_document, + permission_cabinet_view +) + + +class CabinetsApp(MayanAppConfig): + has_tests = True + name = 'cabinets' + verbose_name = _('Cabinets') + + def ready(self): + super(CabinetsApp, self).ready() + + Document = apps.get_model( + app_label='documents', model_name='Document' + ) + + DocumentCabinet = self.get_model('DocumentCabinet') + Cabinet = self.get_model('Cabinet') + + APIEndPoint(app=self, version_string='1') + + Document.add_to_class( + 'document_cabinets', + lambda document: DocumentCabinet.objects.filter(documents=document) + ) + + ModelPermission.register( + model=Document, permissions=( + permission_cabinet_add_document, + permission_cabinet_remove_document + ) + ) + + ModelPermission.register( + model=Cabinet, permissions=( + permission_acl_edit, permission_acl_view, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_view + ) + ) + + menu_facet.bind_links( + links=(link_document_cabinet_list,), sources=(Document,) + ) + + menu_cabinets.bind_links( + links=( + link_cabinet_list, link_cabinet_create + ) + ) + + menu_main.bind_links(links=(menu_cabinets,), position=98) + + menu_multi_item.bind_links( + links=( + link_cabinet_add_multiple_documents, + link_multiple_document_cabinet_remove + ), sources=(Document,) + ) + menu_object.bind_links( + links=( + link_cabinet_view, + ), sources=(DocumentCabinet, ) + ) + menu_object.bind_links( + links=( + link_cabinet_view, link_cabinet_edit, + link_custom_acl_list, link_cabinet_delete + ), sources=(Cabinet,) + ) + menu_sidebar.bind_links( + links=(link_cabinet_child_add,), sources=(Cabinet,) + ) + menu_sidebar.bind_links( + links=(link_cabinet_add_document, link_document_cabinet_remove), + sources=( + 'cabinets:document_cabinet_list', + 'cabinets:cabinet_add_document', + 'cabinets:document_cabinet_remove' + ) + ) diff --git a/mayan/apps/cabinets/forms.py b/mayan/apps/cabinets/forms.py new file mode 100644 index 0000000000..4a37ab7d07 --- /dev/null +++ b/mayan/apps/cabinets/forms.py @@ -0,0 +1,33 @@ +from __future__ import absolute_import, unicode_literals + +import logging + +from django import forms +from django.utils.translation import ugettext_lazy as _ + +from acls.models import AccessControlList + +from .models import Cabinet + +logger = logging.getLogger(__name__) + + +class CabinetListForm(forms.Form): + def __init__(self, *args, **kwargs): + help_text = kwargs.pop('help_text', None) + permission = kwargs.pop('permission', None) + queryset = kwargs.pop('queryset', Cabinet.objects.all()) + user = kwargs.pop('user', None) + + logger.debug('user: %s', user) + super(CabinetListForm, self).__init__(*args, **kwargs) + + queryset = AccessControlList.objects.filter_by_access( + permission=permission, user=user, queryset=queryset + ) + + self.fields['cabinets'] = forms.ModelMultipleChoiceField( + label=_('Cabinets'), help_text=help_text, + queryset=queryset, required=False, + widget=forms.SelectMultiple(attrs={'class': 'select2'}) + ) diff --git a/mayan/apps/cabinets/links.py b/mayan/apps/cabinets/links.py new file mode 100644 index 0000000000..cd231f4b58 --- /dev/null +++ b/mayan/apps/cabinets/links.py @@ -0,0 +1,76 @@ +from __future__ import absolute_import, unicode_literals + +import copy + +from django.utils.translation import ugettext_lazy as _ + +from acls.links import link_acl_list +from documents.permissions import permission_document_view +from navigation import Link + +from .permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_view, permission_cabinet_remove_document +) + +# Document links + +link_document_cabinet_list = Link( + icon='fa fa-columns', permissions=(permission_document_view,), + text=_('Cabinets'), view='cabinets:document_cabinet_list', + args='resolved_object.pk' +) +link_document_cabinet_remove = Link( + args='resolved_object.pk', + permissions=(permission_cabinet_remove_document,), + text=_('Remove from cabinets'), view='cabinets:document_cabinet_remove' +) +link_cabinet_add_document = Link( + permissions=(permission_cabinet_add_document,), + text=_('Add to cabinets'), view='cabinets:cabinet_add_document', + args='object.pk' +) +link_cabinet_add_multiple_documents = Link( + text=_('Add to cabinets'), view='cabinets:cabinet_add_multiple_documents' +) +link_multiple_document_cabinet_remove = Link( + text=_('Remove from cabinets'), + view='cabinets:multiple_document_cabinet_remove' +) + +# Cabinet links + + +def cabinet_is_root(context): + return context[ + 'resolved_object' + ].is_root_node() + + +link_custom_acl_list = copy.copy(link_acl_list) +link_custom_acl_list.condition = cabinet_is_root + +link_cabinet_child_add = Link( + permissions=(permission_cabinet_create,), text=_('Add new level'), + view='cabinets:cabinet_child_add', args='object.pk' +) +link_cabinet_create = Link( + icon='fa fa-plus', permissions=(permission_cabinet_create,), + text=_('Create cabinet'), view='cabinets:cabinet_create' +) +link_cabinet_delete = Link( + permissions=(permission_cabinet_delete,), tags='dangerous', + text=_('Delete'), view='cabinets:cabinet_delete', args='object.pk' +) +link_cabinet_edit = Link( + permissions=(permission_cabinet_edit,), text=_('Edit'), + view='cabinets:cabinet_edit', args='object.pk' +) +link_cabinet_list = Link( + icon='fa fa-columns', text=_('All'), view='cabinets:cabinet_list' +) +link_cabinet_view = Link( + permissions=(permission_cabinet_view,), text=_('Details'), + view='cabinets:cabinet_view', args='object.pk' +) diff --git a/mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ba7b70122ba48b520f4d8ebda1c35dfa4860d3d0 GIT binary patch literal 772 zcmYk2J#W)M7{?DNAdG|%Gs7)ZAh_7h3nWfma1$3Ik|qjiCAwYXYhq;kqPt5{BoIV{4d3PAHNJ->+zCvvl@)1KV!Jo0NA~la}F(G{(S-9m?9y>7q#=90N7jZtNjluZTC3S16~U;2AyTD^SvYH$_lQv-*&;RzR=z}x zykS5iX|s`^ET8v1b)7b8G)dLLkD6Aac6+KUY_|C+e{{Mi<)WvS1gsFn1^DatfBaA{3$-1 tzKkabWIsLvdl;Wi52pKRV){D%0Eu_gS13M;kK>c+L41--eN5XY=r3$n-3$N# literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.po new file mode 100644 index 0000000000..803da17c28 --- /dev/null +++ b/mayan/apps/cabinets/locale/ar/LC_MESSAGES/django.po @@ -0,0 +1,251 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Mohammed ALDOUB , 2017\n" +"Language-Team: Arabic (https://www.transifex.com/rosarior/teams/13584/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "تحرير" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "التفاصيل" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "الوثائق" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "إضافة" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "إزالة" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1d43c9a8abb8cd8f3d6556b60357d1488e6f0924 GIT binary patch literal 731 zcmY+AL2DC16vs!cimP}i;>p8!YpIjn#DvC;5z}N_gH01+Ea+{rJKc1D(g#2O@6G(*keRp27<6iDMe za0d7QoCiJv7k~tq0e%8$?=N8Y6hePMF9F-95xNZe5_A^y4d_+SPoP&oe}jU38tHr} zr}GX^5ITF5q_d|{2?A7On(|1Yn(&8x7HfsPfNRudeKBIFCB+lwYf=x$I+Kcv*u||% z^?qf=!|PuALA|+Vwb?*OO&TiX0a+S`igbjFtyZ%`s*+I+O{7LOb8*heE)u6eaz&gi zxcOVe$vX}hNt=y$I{e7@$g8wTqe*HNe6Q&?>I;vXYo4`Al_niYV--;?q>Jkj-=cVh z2^n%W!nb)$ea%N~fk&MCJ+XLKr*6K%HZ#8H-?=ee0OrKukcNzO811`wX&8l6avI~g zp4J29+V*%n&YWnqrBL7z($>(U?Ci}#F>iN6d){i)8{YBXWHXLc6|shoB%Q4RyjinN zZ4V;K;}Z6JR4S&+4?D}GcaJ++b c7aV(OIoXD6-z3Pqg){-*&g4aU0GA2+2LoK?R{#J2 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b2cf69304e --- /dev/null +++ b/mayan/apps/cabinets/locale/bg/LC_MESSAGES/django.po @@ -0,0 +1,243 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Iliya Georgiev , 2017\n" +"Language-Team: Bulgarian (https://www.transifex.com/rosarior/teams/13584/bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "Редактиране" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Детайли" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "Документи" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Добави" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/bs_BA/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c1d59492f2babfd596b73052b4f9bbaef84e5037 GIT binary patch literal 764 zcmYLHO>fgc5H(P~%#AaL8~q#j7U(~~SAb2J{vgYKMw__4rm}aL zhDl=es3t5^R!>alIptbeQNpw}rny*9Yb3>tPBrc)_=HNu1ozP>?7j$}N9ZIPzw8f> z>@h8b)Oes$mf+4jRX7$tvPZ)hcO@knOt?oh^-#9^wDy;tQCx>wFyD(naHVpwvl^} z%2{CH>71k#$CTtg>IlUd;i$4s5a9_rpz<9}#e#8CMU^wH3*|eGX|2sDc1ka5Q;|DT zC?c7Vj)qps@pg8b4QHa>bV8?U5Bh`X@`1dXYj*|L@R~S&TfpL)UTCMt2;(g@JtI<4 z9URB|xOrJ;hMiK0BR&-gEaju-gz5hq_^6y^kFvQW8QvE%S3crJDOIr3LhCfB@CTk7 z1RmPnMkaOd2cCzXA{Rk9=)Iu+?^8Qyn6z}bZO=uk)!G6zZWTNpcZC2EGb+I@OdV, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: www.ping.ba , 2017\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (https://www.transifex.com/rosarior/teams/13584/bs_BA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bs_BA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "Urediti" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Detalji" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumenti" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Dodati" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Ukloniti" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/da/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..52b358fbe4db0ab682769a8659da13ef20f9c29a GIT binary patch literal 561 zcmYL`&5qMB5P-v z$$ZPwjKy>Kknwc+{A;#O{1sZqa)Zj&=(ORGVrgMDfVC906$;*1Y3fdu6{0EMRt?QE zD0Fl3;?S7#Rn=i7ST3;P5TlZI2S+>STFZlAzuymBUtOMyt3EF<+M, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Mads L. Nielsen , 2017\n" +"Language-Team: Danish (https://www.transifex.com/rosarior/teams/13584/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Detaljer" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumenter" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/de_DE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b08c54ba1540dead7bf65c9f34c0970b57fc8760 GIT binary patch literal 3265 zcma)-OK%)S5XYMk2rLjnc!o#P2{_n<@!G~F&N>d+*qg-QmmDX8AQWbI%DZFF^jOoq z-q`RF5FAk801}rR5FEIKAR!P3bL55)QY4TNA`*NAPW-Fq;a%GVT08UG?yjn?s;=(& zb??qA0_|BmPvV)sO^6}zogH|gy?MJ3$3PdvPke;eQ{X4yKJZ)cKJaJoA@C3Ie(-M) zKT+5z#4d0*co+BxD8U2Z2zU}a3cd~Q2CspvzYg9B{+RY}fRCd87s&Q@+yPr)0o(%~ z1Rnqgz!$-Bko|rOyc_%ygsS)sWclww_WLIgKk++WkAr`L_kcUG_;cVMkmW}}_Gc0= z37!M@g9hZd-v`;=r{Hzu@H#k(eu$vi-sfNs_!Za%{syxDyWkw>b3gb5cpPLuUj^?4 z-$=O#9zeeZR=^Lzv*0fvuYb6Z*c$<1TFil*uh&72OM{%ZcR^n7gLM8H$ou#Mcmlkc zvI|bbwD3R-2?er$t02o?Nyonc*{`ob{KO5s2Edyjue%RHu$@8h2zUZ~23!Pr{ymWM z@EM4-iKp>!-S8Tmrw8$H<6Lv&z2L?<;yBqSt{1LdULR?<`@{9jCCqDa<2A5^*oy~S zY;y+KJv#()?XaJZ;o&@S@)%I$E1{LS%j<9t1A|KZiu9Y!7nmy{b) zkCrXpG^Aa59maw{j3t&c>imzaMasCo@>Mv|Naz zP_`O=jl(0UDWIC64evShAdpp(F@@0zdA%FP;l}^cbUn}NAy0;~G>EZ|t`_51+E9v2 zDjT-Wr3vH!UVu)XFO#*4{q}Fw&Zwo3Pyx^mn z^WJP6Euy@f3D3Dev1ZTZYwzCH*#bF|{K@l@`$N_ozinsLU<^6X4$ zYU0SnndwSl($&V9k6on$*F!R4leytzN^6_zQHIEfnKOyRjd|MFUk`?0;cs zc(CZvrSVF!r!X}!RoO^Qe{Wx53sHEi5`))h8t@#qvz*OJHs1t zyx0Q8PDRxs4{?;_aMd@t$0cdkD$EAW*bSW1Q5@=$RLi!jM+Zh^@^`db$%CV^zXxBY zO?P4F8|nF^DcpJ)+Dp)<*x<&9$>;mriNljCeWTi@qI+V8`h9!G7T)f4yJ8o^;j zvAxg<8yd^=IN9+=Dy&lHtzK4ZZX>Y5dGh$fWKUmbh8=qfdd2$3eDLgvXyS&?7H+D# ns3di^, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Jesaja Everling , 2017\n" +"Language-Team: German (Germany) (https://www.transifex.com/rosarior/teams/13584/de_DE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de_DE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "Aktenschrank" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "Aus Aktenschrank entfernen" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "Zu Aktenschrank hinzufügen" + +#: links.py:55 +msgid "Add new level" +msgstr "Neue Ebene hinzufügen" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "Aktenschrank anlegen" + +#: links.py:64 +msgid "Delete" +msgstr "Löschen" + +#: links.py:67 +msgid "Edit" +msgstr "Bearbeiten" + +#: links.py:71 +msgid "All" +msgstr "Alle" + +#: links.py:74 +msgid "Details" +msgstr "Details" + +#: models.py:22 +msgid "Label" +msgstr "Bezeichner" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumente" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "Aktenschrank" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "Überebene und Bezeichnung" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s mit diesem %(field_labels)s existiert bereits." + +#: models.py:86 +msgid "Document cabinet" +msgstr "Dokumenten-Aktenschrank" + +#: models.py:87 +msgid "Document cabinets" +msgstr "Dokumenten-Aktenschränke" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "Dokumente zu Aktenschrank hinzufügen" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "Aktenschränke anlegen" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "Aktenschränke löschen" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "Aktenschränke bearbeiten" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "Dokumente aus Aktenschrank entfernen" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "Aktenschränke ansehen" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "Liste der Unter-Aktenschränke." + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "Anzahl der Dokumente in dieser Aktenschrank-Ebene." + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "Navigation:" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "Neue Ebene hinzufügen zu: %s" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "Aktenschrank löschen: %s?" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "Details für Aktenschrank: %s" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "Aktenschrank bearbeiten: %s" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "Aktenschränke mit Dokument: %s" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Hinzufügen" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "Dokument \"%s\" zu Aktenschrank hinzufügen" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "Aktenschränke zu denen die ausgewählten Dokumente hinzugefügt werden." + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "Dokument \"%s\" aus Aktenschränken entfernen" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "Aktenschränke aus denen die ausgewählten Dokumente entfernt werden." + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "Dokument: %(document)s ist nicht im Aktenschrank: %(cabinet)s." + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "Dokument: %(document)s entfernt aus Aktenschrank: %(cabinet)s." diff --git a/mayan/apps/cabinets/locale/en/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..708f40d2dbb369075426f6b59e7deab28abf9a14 GIT binary patch literal 421 zcmYL^Pfx-y9ELG^+R?Lznt0IY4>tmF6fjIyaB=@K28rG()HxmP(iWp1#INUPu~Q>& z@}zD0w0-+^c<|XW*)tp&P7M2o3qupv@M<>uW^A1Qq*A=Fm4;vqOD0t*I7X>Ax$|ZO zElD;HlGw^vEu@A>73CUkwuORRU}U994im|!Hiy8cnqkzjohz_=&~cH|!`(jEUE4My zWbCbMF8}lHiI+i?fbXH(1V_R7LlP4!q)J0BDOVNMLSi&sgdvK(h@c^fydWHVzMql# z{Mx9z*wTVQ&gcfC(2Hk_rt&Zh$5q)Dve-GMY7|6d_dlm?TNA-GD} zE%^Ygo~cw!j~4k9+@06ddSVg?Ux{_e3yj>yQd?=Ym9&DXkQ;>&uYZFAWB L;}LSs23G4EI1Y4K literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000000..aed08b213c --- /dev/null +++ b/mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,242 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/es/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c6d0242aac4e8a663f4558c9595a6dac37848193 GIT binary patch literal 4603 zcmbuCO>7)j9l!_D@?mHpEl_Boyao(5&FtE4Lefng;>4TOB91L*8;NkJo@buduguOY z^JeWhr&fqVd*jdpg-Z)PloKBkLY1nj^@$4-NQfI$AQcIT3xZ=2zyF(=-StNT5hKt3 zX5PpDz5mzykN{1kj0ejNT59)*8~=ixtL3!Y-I>@$a==WFo8@Gp?92Y-h$ z{~u8FJHlq!Qg9SL2p@nSfphRH@GO+^7P3Te6Ds%|d;-1#ABKN|VyAz@i|~FHy#%jA zS?3k_OMLND_!#e97GVp)58x#H5fnfD8a@K=`Dm$c6N(=%!gDZ!3-HHP|GQB3{~nxx zM_7!<;9mGBdF`~wvGE1WqGzX`?f--oiV-$RlA4*VqiE0lHKgChSZn-M!a2xb50pv2=cCAu`Y<&t^zC9-6^_&_eq zSeJ>o=$boOgpu0i%nH* zTBjzbHmphFrxU$y5=WO#a--uNWo}qkxJIxL$8xJUiv~TD7V6lfJEn?EMS9()rf_?E zZ`I*$IpttaYPMBkwoKwh58sf`Qj_I+qh(ZXzCAFmP<@kcWO>iTDoar-$_8mMJ=(XI zb?4LeFUNb51Q$x(Yr5fsin6rOHnnMYXfeO(YKBuAdDc_gn>G>$80Ac2qJmA=_7&$O ziCQ-(*2}g`+!zUG`~TBS9mjrN*6V3j=<8g|5(yqv*~V}w)z58D=R4|KX2*MhdEzD? z7?pcjop>lr?e2ZAE?7i?!c?e7)y-bTN|Ko2YmCD@iS&EQcE`=!WYS#;q1O$f$T+t#NRpk#twfLxb@bbGY+EBax0{+~g}T#em5a-u7}?>l z1zpgNZQ*~$wpO;*4KBDWX&hXx935@iB+kuH7t;BP-m+a?*eq=YR|dUxlaEJ)liV41 zf0>7kU{xcgP&$oOxx|_e&Y;97q7EDm`v>^&uQYZ0r&rl=huwQcc1S8Y z&!Uasn&mJXDzuts&yeonQXF10xf3s_)rAXRU%1p(*V=1WmsYM!teJk67vZw&+BiHv z=(@1Oxi_)8(g}SkGAUdnBU@^2X7*G#b26Met!7WQPCOpYoS2zmV7O+stO&2heWSgw z7A~)Ziwo+>mDcjoqt{oiv?nfWSA?Bhr!LXx+)`^9(LnmIWlrZdQ%~e&LnAL68r>|t zsS|VaT(?IKH=?X}_PE~!veNEAcTLzay4O-y`#QC5Q%!9aMc=iW&F$^&Mj=bt4Rb># zHY=HVvtWj6&OUbX^ogc%&FP8drRDa>I7#XFZWPUa!XbM`MVmTz zrkH=Kb1^(U8Ye4lm^^H!Q5NH^mO8y|i{UO?%D9QuWRUA5yhzD#EtU5DtDB!Yqsqtm zsZ>2OuV$yuOa%L?CuckoI1>*P&mCRXO+(%6=BBIjn!^;y$^xpD&PmTL9cQ_rsFb6J zqd17h1{~-nR8^AkdpjA@fB1+&s?vek%2aB7m8}-v+pM%NTvxNiMz$DGp^VbIKhv?z zk=rdRpj0WH*qb^=^TWz+7W}^gM#kBvO(%;pI)^40dlZWf+sSXf5PW5}CS{i<8QQu0 zqPSEk<3vZXtBiMsfwpH;o$tP!`sO;<8R6@8M2_J=`AQnDR(U2GkST7@QhVm8EwrHp zTYBrqS;HUOb-l)(90P2+r^{U>dJB1F#kOVJ*mk7ESCYg#J~~IiQ5JDJhP(7-e7pgR zozL=|fGsgLmaezoJkUBS=Lw4XdM*z>N`}k$2pY2u<{fT&%x2}ZQO{yk;>A0AYP=7> zIFszC15k!k=PPwSLI)054t0)&|uu, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Roberto Rosario , 2017\n" +"Language-Team: Spanish (https://www.transifex.com/rosarior/teams/13584/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "Archivadores" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "Remover de archivador" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "Agregar a archivadores" + +#: links.py:55 +msgid "Add new level" +msgstr "Agregar un nuevo nivel" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "Crear archivador" + +#: links.py:64 +msgid "Delete" +msgstr "Borrar" + +#: links.py:67 +msgid "Edit" +msgstr "Editar" + +#: links.py:71 +msgid "All" +msgstr "Todos" + +#: links.py:74 +msgid "Details" +msgstr "Detalles" + +#: models.py:22 +msgid "Label" +msgstr "Etiqueta" + +#: models.py:25 +msgid "Documents" +msgstr "Documentos" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "Archivador" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "Padre y etiqueta" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s con este %(field_labels)s ya existe." + +#: models.py:86 +msgid "Document cabinet" +msgstr "Archivador de documento" + +#: models.py:87 +msgid "Document cabinets" +msgstr "Archivadores de documento" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "Agregar documentos a archivadores" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "Crear archivadores" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "Borrar archivadores" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "Editar archivadores" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "Remover documentos de archivadores" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "Ver archivadores" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "Lista de los gabinetes subsiguientes." + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "Número de documentos en este nivel de archivador." + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" +"El nombre de este nivel de archivador anejado a de los archivadores que lo " +"contienen. " + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" +"URL del servicio de la API que muetra los documentos contenidos en este " +"archivador. " + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" +"Lista separada por comas de llaves primarias de documentos para agregar a " +"este archivador." + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "Navegación:" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "Agregar un nuevo nivel a: %s" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "¿Borrar archivador: %s?" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "Detalles de archivador: %s" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "Editar archivador: %s" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "Archivadores que contienen el documento: %s" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "Solicitud de añadir a gabinete realizada en %(count)d documento" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "Solicitud de añadir a gabinete realizada en %(count)d documentos" + +#: views.py:198 +msgid "Add" +msgstr "Agregar" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "Agregar document al archivador" +msgstr[1] "Agregar documents a los archivadores" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "Agregar documento \"%s\" a archivadores" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "Archivador a los cuales el documento seleccionado va a ser agregado." + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "Documento: %(document)s ya está en gabinete: %(cabinet)s." + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" +"Documento: %(document)s añadido al gabinete: %(cabinet)s correctamente." + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "Remover documento de archivadores" +msgstr[1] "Remove documentos de archivadores" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "Remover documento \"%s\" de archivadores" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "Gabinetes de los que se eliminarán los documentos seleccionados." + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "Documento: %(document)s no está en el gabinete: %(cabinet)s." + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "Documento: %(document)s retirado del gabinete: %(cabinet)s." diff --git a/mayan/apps/cabinets/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/fa/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7b8dc1690314445eb2ae7b34a959d140cd28b4f1 GIT binary patch literal 755 zcmYL_zi$&U6vqveUk4L2gGUfJcPWVo7lH`M6(X7@3P&Xni<3ClLzi=8J5A}L@Cz_`e}Ks`g#Ln_2gb)|@eiQJ{|IVh@UnfqMEaq@J>t=2cC*wGfNE&QCG|lIEkGx`oRBNPM#P@1$wQ}Wg zZN;;esZ_)lG?o!nT)4Qwn@lJUDyaxLzA0vbl$Zrl0gpFn#5QjSUD!0$;@w+Ur$a!m zIOx-W5ued6tYmhhF}}2>R8P9LJs1p9$~+Zz*oG;z=RJk3phDW|YuQ}J?oj)(RjpLL zqu)uV9IM1*1s_WMXFb?ju?=PSA{xed+*+eTGF5o!FOl3)o_VRm1o7e)Z-;T<;#@OS z|EF|uhg$WhFK9%Txadk3$Gxd53+X(bT?J>D^>oPm&?hZ}q!m3+Xp{SHJrD jT#xi?NYH!95Y7oowjs8oM{vGJdaQT84E3HKAC~, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Roberto Rosario , 2017\n" +"Language-Team: Persian (https://www.transifex.com/rosarior/teams/13584/fa/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fa\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "حذف" + +#: links.py:67 +msgid "Edit" +msgstr "ویرایش" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "جزئیات" + +#: models.py:22 +msgid "Label" +msgstr "برچسب" + +#: models.py:25 +msgid "Documents" +msgstr "اسناد" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "افزودن" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "حذف" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8c15b8111a0e61f4d6398d44dab748e3b0b4bbf6 GIT binary patch literal 747 zcmZ9JzmL-}6vqu5zrx1M;PFo2CM~TfDLoO|l&fg2RWDZw#Ntbw)TbnlY^Oc`5H|jS zV}qIPgaiX(VPHT=EG$fHj6C9H~QBXPxWuXn_lnM@%wfBdF{Wh_kVzg z^p%=8xBt6Nfh9uIb znz^{))bA0eMH+2fZ@JC;#A!MX2+5Q!xGBEYJ@vgQ3C5)F;hnJ?3~xUh@A}q=DosL3 z3zbnVq>FoV$(0u6oZ;S%w?Fek{2)5pt3`8KEtr0o=5WngB=YS$s|lb`kybQiBxE#q z@j$X7n&Zv6)}?Z7d%0ZJv}wZ=c4YEwDHN4lNLxdKvg>zS?WUbbd&>%jfq(uo^_pY# zM4{m^N%*3K8*6r??J}dh=wO&fDyF;p;efQyb*59oB=L(##Josd+&, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Christophe CHAUVET , 2017\n" +"Language-Team: French (https://www.transifex.com/rosarior/teams/13584/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Supprimer" + +#: links.py:67 +msgid "Edit" +msgstr "Modifier" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Détails" + +#: models.py:22 +msgid "Label" +msgstr "Libellé" + +#: models.py:25 +msgid "Documents" +msgstr "Documents" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Ajouter" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Supprimer" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5916f5e0847d2ecfd6727dad8e50eb1477247be4 GIT binary patch literal 561 zcmYL`&5qMB5Xa4z5D_PCNF0pBVOQWLDJ>M2B1)5G3!6<9!b)($B-1q8#Exu-E`19Q zJOT&KJi?0C;8~b-5j)aPyVy= z$-8-c>?F`AZCPZBGH0*a!mw0v>MY`v%`^y$A{Gb>oc2BcDf5P`KcfDS51uh^;CYzH z68KVf#sB4f2&V~)Virv4Va%iX!;kTC=o|@SS*nFJm9R>48o<{4{zl)N|JoW@(&ssx zswdvdqQ)V5nW|qr+I2*sELu?jOF`6}9=5U&x)hS`t*mVfciqiq)3aUWatUXh)YZyh zj?%70jdA_Q!_mN9weG$X&7<&g8Gg@mW=dMz7E8Z2IHZL$>o%1r<(OtGp$*u{`}BZ~ zF7vuhOVBKonaWF9a60;2+W+t5bk#bGs@0-m2TIq5Q`zi7GwF}%#c{GH>HP`y_s0%N U&VQP11s2vMSL@x^wY6H4zc-+s(f|Me literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.po new file mode 100644 index 0000000000..b453465d6e --- /dev/null +++ b/mayan/apps/cabinets/locale/hu/LC_MESSAGES/django.po @@ -0,0 +1,243 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Dezső József , 2017\n" +"Language-Team: Hungarian (https://www.transifex.com/rosarior/teams/13584/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Részletek" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "dokumentumok" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/id/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/id/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..5dc2d5ff0e4151958ed9c9983734cff012283548 GIT binary patch literal 602 zcmYL`&u-K(5XKD@5IJ(@;3EjUNy@Iec-e}uNg<+XR%xgNH#cz;Lt;m^({0}X4jd6j zZafyx!g#x)BmMMwtog=&=I`UZp9tbU@C1l~hd>9o_y*hqz5{Om2k;1RrU$@p;MX05 z{_OI@yEpp@sH;B)b-hbaC_^CI9Aq1=_nuotb&XaW;w(Vvp}xP_Y$n#V z6c_x;d3~)6(?V(Ag30*d%h`PDi`swYWoee&{z5njyp@s`ev6dX1H8`iE9(y(6LNv8 zmTAN7@?&{K=C^h3qzkS|A}du3*-$(`7xw=}DHgT2?nccza-?)`D3-%EHOp{;Z, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Sehat , 2017\n" +"Language-Team: Indonesian (https://www.transifex.com/rosarior/teams/13584/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Detail" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumen" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "tambah" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "hapus" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/it/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..73c91808e4f256d387663e1ec64cb3edcc663b17 GIT binary patch literal 777 zcmYL`PjAyO7{LC96qZB(DPgZcrvg@w0sRTr64b;5~`*oJ2~IflvYj3UH|$8JMgpg$76BTmm`br$Uj5 zD9u8Uu{Cc*25gwK6Jeb+I;7*M|2%pc)024eVmLakO~l+-V2LYa&Yo0-W2p&gZ9Ga@ z-wF;`#0DHhNL!8O1J>AQtqyJOhwTH_Xg3;|$R=VTee-qRt2mmlWW)v$eKrb{;oaAx z;7 zUWRlCTuH9!?hIh=!XQ{Kmv!(XTCs4ZKkD;$KUW V;J~TOIEg`KGk;DdvaHNPlK*j%#Z&+Q literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/it/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a9ecec8187 --- /dev/null +++ b/mayan/apps/cabinets/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,243 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Marco Camplese , 2017\n" +"Language-Team: Italian (https://www.transifex.com/rosarior/teams/13584/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Cancella" + +#: links.py:67 +msgid "Edit" +msgstr "Modifica" + +#: links.py:71 +msgid "All" +msgstr "Tutti" + +#: links.py:74 +msgid "Details" +msgstr "Dettagli" + +#: models.py:22 +msgid "Label" +msgstr "Etichetta" + +#: models.py:25 +msgid "Documents" +msgstr "Documenti" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Aggiungi" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..524ad6226a9370fb864ecbe68bde23623982f939 GIT binary patch literal 824 zcmYL{&5qMB5Xa53d}ZMP0&ziLZmqygTUt?4is-i4rLg@_w^V`)a+}%ICABNtX_g1! zEqDoD1T6;+oVjsJ2Mg5B0N3NoOwnNAr)Ssw(sDDshd=H0ssJBs_{{YqX zDWJOkB~)yY+is3KF3%l&mCtgvyA!s|Yn@NpQRJW!GMc~!64HePETC8}5<|Lbo~}Sz zL&8W{a>QqtGlrGg02yhugt=wCh)qEop=3Zu?arI_VMwRp__#M5cw<;AZCT&MB4Yb# zY}iBv)Ef;atfPTjEMi@5A)wWAc5MRR&$6s!-8^vur=_`C`C1vSh0?yo zYU5X))EhNlCLabze$ngq`r-Lss+7uJM@fr6mQ6mb@#`&|T7R8zA)9o*;M#y~y`3De z#(AC_b^@A(a;_pFK=WDNC`mO>*n!e3gRyn)npU+*w`Qv#>BAPS6q_EI xDu}67ur;KBG^0{%fT!Ci=u9jl&>+bn#JC^wd?PTn4;ko>Xl&O4mtdPt{sO27)3*Qs literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.po new file mode 100644 index 0000000000..5c7835e861 --- /dev/null +++ b/mayan/apps/cabinets/locale/nl_NL/LC_MESSAGES/django.po @@ -0,0 +1,243 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Justin Albstbstmeijer , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/rosarior/teams/13584/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "Voeg nieuw niveau toe" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Verwijderen" + +#: links.py:67 +msgid "Edit" +msgstr "Bewerken" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Gegevens" + +#: models.py:22 +msgid "Label" +msgstr "Label" + +#: models.py:25 +msgid "Documents" +msgstr "Documenten" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Voeg toe" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..44395f60bb72a18ed6524c7901d22bd5418ce853 GIT binary patch literal 883 zcmYjPzi$&U6gE(P9UC))8K@e8b9ZSX(o3%;O|B)PX`(c3MFoR<=U$!Mog>?6ny3@v zUtr_E;7>r6U|?fJj4VuSj65Hu!P2MCe(!tVv#t02{=z#1>ki-n;1%E=;61>sPk4_0~HoFSFhn7yen_d)e2LQR%1&44uJi9$^gj#HLtg@TA{v`vp#f_f|! zrwnza7_d;2Rz&uhR9s{p?$#SG>RSQc4|=<;&W_b%BOx_utC&Y*V;n2e7aq2{ojz$u zMl}?XCe_TtCC7bAoC+ybv0L%VE5s=~4hTt)opNJ-se2jJd!*eV%{qSG@!GA&hn=0k z+NMgAzNDE-s20-02V$Vv5Fbz(&gf7~)R5!VNpbSu`B|L88;hYx*Pi6Jxc6?)o!(e`M0=5 z$7+a7!%vd_bOg`U>`a4_@~no#6Dk$c{$78RROdR=>6l3pWTA+77JImQ#P!uBJv>UR zZZeiMA)7*`%EQ?xKPtamgQUs$OPTMxcpW>~!%NvC*IDyRcySS%?W$icn0+31R^1Xl zKhF~&av`;jU8u?)g26x4n(xf3-GV8&bgj(eEAzN(^b literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 0000000000..e7aa3023b5 --- /dev/null +++ b/mayan/apps/cabinets/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,247 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Wojtek Warczakowski , 2017\n" +"Language-Team: Polish (https://www.transifex.com/rosarior/teams/13584/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Usuń" + +#: links.py:67 +msgid "Edit" +msgstr "Edytuj" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Szczegóły" + +#: models.py:22 +msgid "Label" +msgstr "Etykieta" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumenty" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Dodaj" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Usuń" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..38ac4a50efd097f911e5046eb84d174069ce1949 GIT binary patch literal 740 zcmYL`zi-n(6vq!J6wJoVaBQvMVkaabIHV#ZE<`jxl$uH)maF~h9J24MyK__i5H|h+ zHY8S7Bp8qwkXR~47A7`E-X#%v(nsI(^ZRx8e%{!6L(r}wH<6dfb>uDL>@#u+`GQnkjuz##KrwV-d`Z(FRF`scX8F@!&*P0dg%Xz>f*nlx;j5lUHx-Z zOkbMwz5dhQy!xZ>-$=TUFQMiVyZ(I=B|G`#&{GLF0hZY+y6 zmnP>{>5xVRj-(_#R9u6h50tFI%4L?GhgpFatR<@0yR+<#C1h6d3|I`jz?!?jS_x0q!7`rTH$>6g~u^+v-{w0W0$E%5qET6{_t zzb^5<7S60+=3K}QP3Bx1u-#|zK5K8{T&EMzERu;zh0H?QJ{I=>pdl@-H_a=}bGEN^ zVL~d)<)`U3I&^jH?nrv8OY6HG5BDn)d`PZIl#4>RgWGdHhs~nZYSZ{@tO{7KT9bb@ Cr^7Y? literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..39bf9251bd --- /dev/null +++ b/mayan/apps/cabinets/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,243 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Emerson Soares , 2017\n" +"Language-Team: Portuguese (https://www.transifex.com/rosarior/teams/13584/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Eliminar" + +#: links.py:67 +msgid "Edit" +msgstr "Editar" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Detalhes" + +#: models.py:22 +msgid "Label" +msgstr "Nome" + +#: models.py:25 +msgid "Documents" +msgstr "Documentos" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Adicionar" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Remover" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..433a24910b31f91fe9850982d1a65e21ec5788bb GIT binary patch literal 5032 zcmbW4ON<;x8GsuIuO&QU2(R!cn{3!kGP94^cr(sAS$oH3$*y;`Y-|xEtlH_CnRa@* z#$7%8ut409xBwS!i4tQW6i^iLkdVj)X-^!03z3L|xFAJB2yy_41482as~eLvuNg!U=gFWwdeXW{ZY_`}n^D+nHi5&Sy52Bk~AGYCEn z?}xMS6#N7n!1u%N!jHh`;1}S};Boj@_(6F1UAdka_-@{h!S}#d zI{W}UjF9M=hI|U1DBjP)kMVv1@-MLb`6%3mAA;Y3_rT}jDfm;^fd7JG=M+ZBdfV{5 z@CC?{gC9eYe;La9ehpbl@H_ZP_y_nt_$GW1{s+qV2T&sR9ft~@gpa|C@H6mPDC>Ns z`2KGwemgpb58x6!3%>_t-ao=u*rPX~*!zRKgW!koHHc{NO$Lp_Z^L=`GL(7#4)29` z<2(%*!#?x&&b%T+iB{{$rt?!`!1=L!_RUVwB3UxO?$ zuu$}W1B(7{L9ypq_z-*%%D7jd*!LGG{`wn~eZS{Weh!|55+7Z78vX>zJa589C`MlZ zO~_UR&q21u?=kR?d>5a|gL;3)?t@~7JQFnW+2?2N-|H$6W(B#aEpTzg# zcX{NzKS2AuyzsEKKDPWz@keq>U4D;G^lWJ2i;3=;NvF1>tgEtaY@$R^U0b&YE2 z%_uRMa+ysI+#Qj5iaFf% zy*KM{Hx;?DCo$V9Hd`k4s;f6NG}L%L-*6h%etBSArursr+q7pwg&)QzT6U0RlS8|` zt~(doKOOIJ9GuSmThdiORLdrrjuLTtxk29OLc*zbYI|zC8?|KjjdCV7tqh~f(GnSP ztTqh`>)9<6)`!Y5|F$G`7uF}_>r~4WG2x_ayP8V%)2OG@UGA`8e&fl{jcJQ|GRhQ}F)dt&ML6myE1yqgxwpe{ZJ`#&IA3}O64 z=`=YsvgVN>lkP$Zy>8HI8Ry!AINq(_Oa-ehj~-`gXx32Atwa;+kK!GP6 z&)LIf`;qkr zxr}|s1>mC4TsLVwI3JNkD^ISa_7ZufwiMRRo78btG}PL{=_eP?Hr4s&`j?kh&yB5{ zzD={*it9vS?bM*-Y8xcnv9;BWn$H0U)fPzw4K+JGbG$ZvtTsERW{x$EK3bbTIz7$6 z+Pc|_M0qjpE6s)V+RAEeaY21?wXw4F(9^5unq$k_Wwnh|Cyq-jP9`vj2?8j0*snCmFg=|JgFwS zS=M)rsj2Pl?Rq9tMQyVqdZtqAbQ;-oDnr^$%{+2!?&wrMyLf7SYI1C4X{9-I&`f=L z>@@kDd$P8%+h^gK*~zB*F$w;JYISw$Og8`2#+lmOaGXrW-CAoVEgQ074K=qJWtGtl z<>wk(iwCKWYiGEzTtg*&|LW#vPpJIo{6wNos+q|XW5K?{fkh~Sh2XiNaJaO0Rf>kp z^y;dr8n_(^KDm~ZTm)*+tB$Kxrsr#iy&vsevuf`JMmWZa2qi|^(^pKQ>#E6gzI51o zQA!72IT*C~Z=eiC>m@M`I|xYKvMIe{uy!h8seoR|QKl7zT56jxY7sCx9sU|o=hF#h z4Y_Se;LItsGfca}mVj99kW zF|9$SKXd+vhAJYRxs{(2NoMjk{dSp1`$b`O5(fFI1rQ8wkz0nW&Ka0pU1Z*A@ zIMp8_>VPQjS}9gcNBiVNwX*lCp5c19&hsi^8JtXiQl-nw6QhwbYJKnL*&wz>l`-7> zYLAr9FL^{&DWnLMk?pPY4g;oA;Ws@ux(coXJM)4g70)>vlTosKVU_YKVGz;>Cyf8E zf>J$>u4v{sSVdX7cr$WWt&-L#TEc_;NL^xfB!kIemtlUj&J3ht$@qVTbCM+TqJ?2{ t%lHlAnj}=n@UmIj7cxET, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Jadson Ribeiro , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/rosarior/teams/13584/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "Pasta" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "Remover da pasta" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "Adicionar a pasta" + +#: links.py:55 +msgid "Add new level" +msgstr "Adicionar novo nível" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "Criar pasta" + +#: links.py:64 +msgid "Delete" +msgstr "Excluir" + +#: links.py:67 +msgid "Edit" +msgstr "Editar" + +#: links.py:71 +msgid "All" +msgstr "Todos" + +#: links.py:74 +msgid "Details" +msgstr "Detalhes" + +#: models.py:22 +msgid "Label" +msgstr "Etiqueta" + +#: models.py:25 +msgid "Documents" +msgstr "Documento" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "Pasta" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "Pai e Rótulo" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model_name)s com estes %(field_labels)s já exitem. " + +#: models.py:86 +msgid "Document cabinet" +msgstr "Pasta de documentos" + +#: models.py:87 +msgid "Document cabinets" +msgstr "Pastas de documentos" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "Adicionar documentos as pastas" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "Criar pastas" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "Excluir pastas" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "Editar pastas" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "Excluir documentos de pastas" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "Ver pastas" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "Lista de pastas filho" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "Número de documentos neste nível de pasta" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "O nome deste nível de pasta anexado aos nomes de seus antepassados." + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" +"URL do ponto de extremidade da API mostrando os documentos da lista dentro " +"desta pasta." + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" +"Lista separada por vírgulas de chaves primárias de documento para adicionar " +"a esta pasta." + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" +"API URL que aponta para um documento em relação à pasta que o armazena. Este" +" URL é diferente do URL do documento que está de acordo com as normas " +"estabelecidas." + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "Navegação:" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "Adicione novo nível a: %s" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "Excluir a pasta: %s?" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "Detalhes da pasta: %s" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "Editar pasta: %s" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "Pasta com documento: %s" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "Adicionar a pasta o pedido executado em %(count)d documento" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "Adicionar a pasta o pedido executado em %(count)d documento" + +#: views.py:198 +msgid "Add" +msgstr "Adicionar" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "Adicionar documentos as pastas" +msgstr[1] "Adicionar documentos as pastas" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "Adicionar documento \"%s\" à uma pasta" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "Pastas aos quais os documentos selecionados serão adicionados." + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "Documento: %(document)s já está na pasta: %(cabinet)s ." + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "Documento: %(document)s adicionado à pasta: %(cabinet)s com sucesso." + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "Remover da solicitação de pasta executada em %(count)d documento" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "Remover da solicitação de pasta realizada em %(count)d documentos" + +#: views.py:282 +msgid "Remove" +msgstr "Remover" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "Excluir documentos de pastas" +msgstr[1] "Excluir documentos de pastas" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "Excluir documento \"%s\" para as pastas" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "Pastas das quais os documentos selecionados serão removidos." + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "Documento: %(document)s não está na pasta: %(cabinet)s" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "Documento: %(document)s removido da pasta: %(cabinet)s." diff --git a/mayan/apps/cabinets/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/ro_RO/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..43ca149158d2053ab01a71d34957d64d44a3e31d GIT binary patch literal 788 zcmYL{O>fgM7{|jHZ-EnM4(7m=2)rbF5uHmmx-}aW>so~}i3th0iI*BBc4fQUkapuU zAaOu^8j!|;8{z~z?t+BGZATur)%Hj~{cY#}yg2gd-PsQg#7*EH@EW)cd;)Bo09S!; zz;)m|a0B=O+yZ_9v%nc}4fq3C-#_5@6~{RTwf>(o6Fr^k8K}+wJJs{4&OkHkzXJ;C zER8z&VLoni$9dKKG>U)(mQrzy~W&=Izkap|gUS}t9x2ZO` zr>M{+HBu3@PIE@l7VRs}O7x`2`u5;yQNgw5Gg+-Z8h3<5QH*H8aF5Z7pj1{=a4L{D zUHQlx7&Fu)2o4Vq=Z$T__t}xH5h$st;!*_$l64R*F4vae@J-qYe7D_dCzn4anh)I# zDGdBe++1tdmOP_7F&lFBXCUY(df@*zkE@mcZ+{^8j zBSlNRDOIHj62tLU$BT6|S;n4-<7h1;p67`NQ5dd9EB^8EbQ8y+KR4%z`=GwRwm>4^ sue, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Badea Gabriel , 2017\n" +"Language-Team: Romanian (Romania) (https://www.transifex.com/rosarior/teams/13584/ro_RO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro_RO\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Șterge" + +#: links.py:67 +msgid "Edit" +msgstr "Modifică" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Detalii" + +#: models.py:22 +msgid "Label" +msgstr "Etichetă" + +#: models.py:25 +msgid "Documents" +msgstr "Documente" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Adaugă" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Şterge" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..664edf513ff9e10901e4c1e342667fdc3102b046 GIT binary patch literal 919 zcmZ9I&1(}u7{*tvU#p1pC>}<^(xB7b%?C}l+0?X2HP|#E#)9Hyx|yaco1JxL(hsO0 z^&-?`y?GG)1FS`%wCY(8!UQ~uM=zeddGwv6AK<``=Y40M_nF!KIXLjrfOQ7A3_JwR z0j~hPz5pkHufQqb8*m!<4x9yk00Y1;;3V)H(7r!F;<#b_1-%Gdg^&xNDbVwvlc0m3 zRnSYI^Pnc^6Hx7Y4tfk!FP#rjy?ounQST02>v!w-7=>ojDAJHh3L;4m3ZuyUPMbzj z7^P+)jTtgeL!(aHY>65*&K^-;;&KzuQ7!@&xu{l{x>LASLUX11-Ewu-tkalri7TQN zH1TAoC2)he$gEWxc#2aZVF(wAq%KO@&M3AsIGIIG#!Zi5J8j!w#C5t9=*C!NhCrd8Fx`kA|lv=L^FTwY24}=Jr&uK6&*8>u44)_IinQX81kpJ17YP?sdiNUBID6#NH!V<(OOel- zLDX_lc0Q1YuXGXbn6XVdtDAT3hRn, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: panasoft , 2017\n" +"Language-Team: Russian (https://www.transifex.com/rosarior/teams/13584/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "Удалить" + +#: links.py:67 +msgid "Edit" +msgstr "Редактировать" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Детали" + +#: models.py:22 +msgid "Label" +msgstr "Ярлык" + +#: models.py:25 +msgid "Documents" +msgstr "Документы" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Добавить" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Удалить" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..e6b1194550f98189f585877d418bd10bdd469079 GIT binary patch literal 657 zcmYL{&u`N(6vqP$5aGs|gD*&}z)jMoqPWXOX)}memZ%MrKuE|XObX0O)@-Ij2dXd6KWViUDtb#-9GLP zkk=>v3+(!?3x#;fE_glsU)}p~G{td(CnNMGA#wEdLvj+@$5b1fDJpbHjZ_3Jr7()l zsW51N7r!i4aFtFjR|n6UjnF8HH7yv<7+n!GE9C_foC?&s3EQZ3ZcL?#<7_sY4onrA zpRvn&ild~aic94fXxEO{>koWKm!D>l)3)O%4tG!EbzFN4r-B#6*;NHsHtf9U>P&$yRnjdOO)e*Vi{GA5vXN_1Z(*O65Yyxscj$_y)`78*nT6D(I40 Fe*ww!w08gi literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ecc6211c5a --- /dev/null +++ b/mayan/apps/cabinets/locale/sl_SI/LC_MESSAGES/django.po @@ -0,0 +1,247 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: kontrabant , 2017\n" +"Language-Team: Slovenian (Slovenia) (https://www.transifex.com/rosarior/teams/13584/sl_SI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl_SI\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Podrobnosti" + +#: models.py:22 +msgid "Label" +msgstr "Oznaka" + +#: models.py:25 +msgid "Documents" +msgstr "Dokumenti" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/vi_VN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..7ad905fda2ddb4fe5e8a64563ad353ce122e92bb GIT binary patch literal 680 zcmYL_F>ezw6vqt|5XZ*M;IS1rcPWVomj)4%D@62?Q+hYXLM&rwl66X0~5>) zj7UfZ1FizE02`ly3&0oP zGH?uB0e%1*z$sw8zku)O5c&;z5qNzbAqVsgsGau?)Yd1?w6@1vGlPMjbhSMj2bYJJ~hn8+g|-P@tS12h3iefaff&f&x1xX zW^-;cX#tO_O=WTSX0;W}A}wjkNX%&A;|XU*(1K}(H*JoGwAjL%nK3i%yY6DKs2RJ7 zAF?Am##K^N#ieo$__bTV)oeA~Ie$JGx?4^-2!pf#snf_b{H~+8g<7$@^<)xxI*_Eo$J{Gg;s5|vG rUZ)+e?VvbYel1Wh, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Trung Phan Minh , 2017\n" +"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/rosarior/teams/13584/vi_VN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi_VN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "Sửa" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "Chi tiết" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "Tài liệu" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "Thêm" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "Xóa" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a700c5debc7b6863ed8469864f61c63b07a3272f GIT binary patch literal 621 zcmYL_&u`N(6vqt=5IJ(@;NvE6la5vtcSVFY8wL7<5GLRFycvY|`lF!}@wH zb7rB4^qA!ouX^<>#A}k(7OppG<0|nQo(G8}uU(o?ghH8?EafEPET_0T z6_Oi{mn(;@;N_{cg`uuHo6Tyr>MtgIw-&41)ygm}ly)st8n=GA*=o3Z)2;5%U2z8e zL2$g4dd+jXN?O<+iJlhlTg!K?TVzbgHjbxE8*V%Iqjl0c&Z~w^xF&&&RU%|caqF?L z{~t{8e3moLO3gB|u5@lFmc=|Yoq8J|xgD?Vpo4cme}Ddf4)>q`dHoEc7YCodpu_L` Jf8T#a{{ToCt>^#% literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.po new file mode 100644 index 0000000000..ff4b7fcc79 --- /dev/null +++ b/mayan/apps/cabinets/locale/zh_CN/LC_MESSAGES/django.po @@ -0,0 +1,241 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Genlin Jiao , 2017\n" +"Language-Team: Chinese (China) (https://www.transifex.com/rosarior/teams/13584/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:33 forms.py:30 links.py:21 menus.py:8 models.py:34 permissions.py:7 +#: views.py:153 +msgid "Cabinets" +msgstr "" + +#: links.py:27 links.py:38 +msgid "Remove from cabinets" +msgstr "" + +#: links.py:31 links.py:35 +msgid "Add to cabinets" +msgstr "" + +#: links.py:55 +msgid "Add new level" +msgstr "" + +#: links.py:60 views.py:39 +msgid "Create cabinet" +msgstr "" + +#: links.py:64 +msgid "Delete" +msgstr "" + +#: links.py:67 +msgid "Edit" +msgstr "" + +#: links.py:71 +msgid "All" +msgstr "" + +#: links.py:74 +msgid "Details" +msgstr "细节" + +#: models.py:22 +msgid "Label" +msgstr "" + +#: models.py:25 +msgid "Documents" +msgstr "文档" + +#: models.py:33 models.py:66 serializers.py:134 +msgid "Cabinet" +msgstr "" + +#: models.py:67 serializers.py:135 +msgid "Parent and Label" +msgstr "" + +#: models.py:74 serializers.py:141 +#, python-format +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "" + +#: models.py:86 +msgid "Document cabinet" +msgstr "" + +#: models.py:87 +msgid "Document cabinets" +msgstr "" + +#: permissions.py:12 +msgid "Add documents to cabinets" +msgstr "" + +#: permissions.py:15 +msgid "Create cabinets" +msgstr "" + +#: permissions.py:18 +msgid "Delete cabinets" +msgstr "" + +#: permissions.py:21 +msgid "Edit cabinets" +msgstr "" + +#: permissions.py:24 +msgid "Remove documents from cabinets" +msgstr "" + +#: permissions.py:27 +msgid "View cabinets" +msgstr "" + +#: serializers.py:20 +msgid "List of children cabinets." +msgstr "" + +#: serializers.py:23 +msgid "Number of documents on this cabinet level." +msgstr "" + +#: serializers.py:27 +msgid "The name of this cabinet level appended to the names of its ancestors." +msgstr "" + +#: serializers.py:33 +msgid "" +"URL of the API endpoint showing the list documents inside this cabinet." +msgstr "" + +#: serializers.py:69 serializers.py:175 +msgid "Comma separated list of document primary keys to add to this cabinet." +msgstr "" + +#: serializers.py:154 +msgid "" +"API URL pointing to a document in relation to the cabinet storing it. This " +"URL is different than the canonical document URL." +msgstr "" + +#: templates/cabinets/cabinet_details.html:21 +msgid "Navigation:" +msgstr "" + +#: views.py:70 +#, python-format +msgid "Add new level to: %s" +msgstr "" + +#: views.py:83 +#, python-format +msgid "Delete the cabinet: %s?" +msgstr "" + +#: views.py:111 +#, python-format +msgid "Details of cabinet: %s" +msgstr "" + +#: views.py:142 +#, python-format +msgid "Edit cabinet: %s" +msgstr "" + +#: views.py:177 +#, python-format +msgid "Cabinets containing document: %s" +msgstr "" + +#: views.py:188 +#, python-format +msgid "Add to cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:191 +#, python-format +msgid "Add to cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:198 +msgid "Add" +msgstr "新增" + +#: views.py:200 +msgid "Add document to cabinets" +msgid_plural "Add documents to cabinets" +msgstr[0] "" + +#: views.py:211 +#, python-format +msgid "Add document \"%s\" to cabinets" +msgstr "" + +#: views.py:222 +msgid "Cabinets to which the selected documents will be added." +msgstr "" + +#: views.py:250 +#, python-format +msgid "Document: %(document)s is already in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:260 +#, python-format +msgid "Document: %(document)s added to cabinet: %(cabinet)s successfully." +msgstr "" + +#: views.py:272 +#, python-format +msgid "Remove from cabinet request performed on %(count)d document" +msgstr "" + +#: views.py:275 +#, python-format +msgid "Remove from cabinet request performed on %(count)d documents" +msgstr "" + +#: views.py:282 +msgid "Remove" +msgstr "移除" + +#: views.py:284 +msgid "Remove document from cabinets" +msgid_plural "Remove documents from cabinets" +msgstr[0] "" + +#: views.py:295 +#, python-format +msgid "Remove document \"%s\" to cabinets" +msgstr "" + +#: views.py:306 +msgid "Cabinets from which the selected documents will be removed." +msgstr "" + +#: views.py:333 +#, python-format +msgid "Document: %(document)s is not in cabinet: %(cabinet)s." +msgstr "" + +#: views.py:343 +#, python-format +msgid "Document: %(document)s removed from cabinet: %(cabinet)s." +msgstr "" diff --git a/mayan/apps/cabinets/menus.py b/mayan/apps/cabinets/menus.py new file mode 100644 index 0000000000..a68970615d --- /dev/null +++ b/mayan/apps/cabinets/menus.py @@ -0,0 +1,9 @@ +from __future__ import unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from navigation import Menu + +menu_cabinets = Menu( + icon='fa fa-columns', label=_('Cabinets'), name='cabinets menu' +) diff --git a/mayan/apps/cabinets/migrations/0001_initial.py b/mayan/apps/cabinets/migrations/0001_initial.py new file mode 100644 index 0000000000..6b6a3bf6e0 --- /dev/null +++ b/mayan/apps/cabinets/migrations/0001_initial.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-01-24 07:37 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import mptt.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('documents', '0034_auto_20160509_2321'), + ] + + operations = [ + migrations.CreateModel( + name='Cabinet', + fields=[ + ( + 'id', models.AutoField( + auto_created=True, primary_key=True, serialize=False, + verbose_name='ID' + ) + ), + ( + 'label', models.CharField( + max_length=128, verbose_name='Label' + ) + ), + ( + 'lft', models.PositiveIntegerField( + db_index=True, editable=False + ) + ), + ( + 'rght', models.PositiveIntegerField( + db_index=True, editable=False + ) + ), + ( + 'tree_id', models.PositiveIntegerField( + db_index=True, editable=False + ) + ), + ( + 'level', models.PositiveIntegerField( + db_index=True, editable=False + ) + ), + ( + 'documents', models.ManyToManyField( + blank=True, related_name='cabinets', + to='documents.Document', verbose_name='Documents' + ) + ), + ( + 'parent', mptt.fields.TreeForeignKey( + blank=True, null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='children', to='cabinets.Cabinet' + ) + ), + ], + options={ + 'ordering': ('parent__label', 'label'), + 'verbose_name': 'Cabinet', + 'verbose_name_plural': 'Cabinets', + }, + ), + migrations.CreateModel( + name='DocumentCabinet', + fields=[ + ], + options={ + 'verbose_name': 'Document cabinet', + 'proxy': True, + 'verbose_name_plural': 'Document cabinets', + }, + bases=('cabinets.cabinet',), + ), + migrations.AlterUniqueTogether( + name='cabinet', + unique_together=set([('parent', 'label')]), + ), + ] diff --git a/mayan/apps/cabinets/migrations/__init__.py b/mayan/apps/cabinets/migrations/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/cabinets/models.py b/mayan/apps/cabinets/models.py new file mode 100644 index 0000000000..ddb5add7f7 --- /dev/null +++ b/mayan/apps/cabinets/models.py @@ -0,0 +1,87 @@ +from __future__ import absolute_import, unicode_literals + +from django.core.exceptions import NON_FIELD_ERRORS, ValidationError +from django.core.urlresolvers import reverse +from django.db import models, transaction +from django.utils.encoding import python_2_unicode_compatible +from django.utils.translation import ugettext_lazy as _ + +from mptt.fields import TreeForeignKey +from mptt.models import MPTTModel + +from acls.models import AccessControlList +from documents.models import Document +from documents.permissions import permission_document_view + + +@python_2_unicode_compatible +class Cabinet(MPTTModel): + parent = TreeForeignKey( + 'self', blank=True, db_index=True, null=True, related_name='children' + ) + label = models.CharField(max_length=128, verbose_name=_('Label')) + documents = models.ManyToManyField( + Document, blank=True, related_name='cabinets', + verbose_name=_('Documents') + ) + + class Meta: + ordering = ('parent__label', 'label') + # unique_together doesn't work if there is a FK + # https://code.djangoproject.com/ticket/1751 + unique_together = ('parent', 'label') + verbose_name = _('Cabinet') + verbose_name_plural = _('Cabinets') + + def __str__(self): + return self.get_full_path() + + def get_absolute_url(self): + return reverse('cabinets:cabinet_view', args=(self.pk,)) + + def get_document_count(self, user): + return self.get_documents_queryset(user=user).count() + + def get_documents_queryset(self, user): + return AccessControlList.objects.filter_by_access( + permission_document_view, user, queryset=self.documents + ) + + def get_full_path(self): + result = [] + for node in self.get_ancestors(include_self=True): + result.append(node.label) + + return ' / '.join(result) + + def validate_unique(self, exclude=None): + # Explicit validation of uniqueness of parent+label as the provided + # unique_together check in Meta is not working for all 100% cases + # when there is a FK in the unique_together tuple + # https://code.djangoproject.com/ticket/1751 + + with transaction.atomic(): + if Cabinet.objects.select_for_update().filter(parent=self.parent, label=self.label).exists(): + params = { + 'model_name': _('Cabinet'), + 'field_labels': _('Parent and Label') + } + raise ValidationError( + { + NON_FIELD_ERRORS: [ + ValidationError( + message=_( + '%(model_name)s with this %(field_labels)s already ' + 'exists.' + ), code='unique_together', params=params, + ) + ], + }, + ) + + +class DocumentCabinet(Cabinet): + class Meta: + proxy = True + verbose_name = _('Document cabinet') + verbose_name_plural = _('Document cabinets') diff --git a/mayan/apps/cabinets/permissions.py b/mayan/apps/cabinets/permissions.py new file mode 100644 index 0000000000..effed2cffe --- /dev/null +++ b/mayan/apps/cabinets/permissions.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import, unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from permissions import PermissionNamespace + +namespace = PermissionNamespace('cabinets', _('Cabinets')) + +# Translators: this refers to the permission that will allow users to add +# documents to cabinets. +permission_cabinet_add_document = namespace.add_permission( + name='cabinet_add_document', label=_('Add documents to cabinets') +) +permission_cabinet_create = namespace.add_permission( + name='cabinet_create', label=_('Create cabinets') +) +permission_cabinet_delete = namespace.add_permission( + name='cabinet_delete', label=_('Delete cabinets') +) +permission_cabinet_edit = namespace.add_permission( + name='cabinet_edit', label=_('Edit cabinets') +) +permission_cabinet_remove_document = namespace.add_permission( + name='cabinet_remove_document', label=_('Remove documents from cabinets') +) +permission_cabinet_view = namespace.add_permission( + name='cabinet_view', label=_('View cabinets') +) diff --git a/mayan/apps/cabinets/serializers.py b/mayan/apps/cabinets/serializers.py new file mode 100644 index 0000000000..c90365509a --- /dev/null +++ b/mayan/apps/cabinets/serializers.py @@ -0,0 +1,194 @@ +from __future__ import unicode_literals + +from django.db import transaction +from django.utils.translation import ugettext_lazy as _ + +from rest_framework import serializers +from rest_framework.reverse import reverse +from rest_framework.settings import api_settings + +from rest_framework_recursive.fields import RecursiveField + +from documents.models import Document +from documents.serializers import DocumentSerializer + +from .models import Cabinet + + +class CabinetSerializer(serializers.ModelSerializer): + children = RecursiveField( + help_text=_('List of children cabinets.'), many=True, read_only=True + ) + documents_count = serializers.SerializerMethodField( + help_text=_('Number of documents on this cabinet level.') + ) + full_path = serializers.SerializerMethodField( + help_text=_( + 'The name of this cabinet level appended to the names of its ' + 'ancestors.' + ) + ) + documents_url = serializers.HyperlinkedIdentityField( + help_text=_( + 'URL of the API endpoint showing the list documents inside this ' + 'cabinet.' + ), view_name='rest_api:cabinet-document-list' + ) + parent_url = serializers.SerializerMethodField() + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:cabinet-detail'}, + } + fields = ( + 'children', 'documents_count', 'documents_url', 'full_path', 'id', + 'label', 'parent', 'parent_url', 'url' + ) + model = Cabinet + + def get_documents_count(self, obj): + return obj.get_document_count(user=self.context['request'].user) + + def get_full_path(self, obj): + return obj.get_full_path() + + def get_parent_url(self, obj): + if obj.parent: + return reverse( + 'rest_api:cabinet-detail', args=(obj.parent.pk,), + format=self.context['format'], + request=self.context.get('request') + ) + else: + return '' + + +class WritableCabinetSerializer(serializers.ModelSerializer): + documents_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document primary keys to add to this ' + 'cabinet.' + ), required=False + ) + + # This is here because parent is optional in the model but the serializer + # sets it as required. + parent = serializers.PrimaryKeyRelatedField( + allow_null=True, queryset=Cabinet.objects.all(), required=False + ) + + class Meta: + fields = ('documents_pk_list', 'label', 'id', 'parent') + model = Cabinet + + def _add_documents(self, documents_pk_list, instance): + instance.documents.add( + *Document.objects.filter(pk__in=documents_pk_list.split(',')) + ) + + def create(self, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableCabinetSerializer, self).create(validated_data) + + if documents_pk_list: + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + def update(self, instance, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableCabinetSerializer, self).update( + instance, validated_data + ) + + if documents_pk_list: + instance.documents.clear() + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + def run_validation(self, data=None): + # Copy data into a new dictionary since data is an immutable type + result = data.copy() + + # Add None parent to keep validation from failing. + # This is here because parent is optional in the model but the serializer + # sets it as required. + result.setdefault('parent') + + data = super(WritableCabinetSerializer, self).run_validation(result) + + # Explicit validation of uniqueness of parent+label as the provided + # unique_together check in Meta is not working for all 100% cases + # when there is a FK in the unique_together tuple + # https://code.djangoproject.com/ticket/1751 + with transaction.atomic(): + if Cabinet.objects.select_for_update().filter(parent=data['parent'], label=data['label']).exists(): + params = { + 'model_name': _('Cabinet'), + 'field_labels': _('Parent and Label') + } + raise serializers.ValidationError( + { + api_settings.NON_FIELD_ERRORS_KEY: [ + _( + '%(model_name)s with this %(field_labels)s ' + 'already exists.' + ) % params + ], + }, + ) + + return data + + +class CabinetDocumentSerializer(DocumentSerializer): + cabinet_document_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a document in relation to the cabinet ' + 'storing it. This URL is different than the canonical document ' + 'URL.' + ) + ) + + class Meta(DocumentSerializer.Meta): + fields = DocumentSerializer.Meta.fields + ('cabinet_document_url',) + read_only_fields = DocumentSerializer.Meta.fields + + def get_cabinet_document_url(self, instance): + return reverse( + 'rest_api:cabinet-document', args=( + self.context['cabinet'].pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class NewCabinetDocumentSerializer(serializers.Serializer): + documents_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document primary keys to add to this ' + 'cabinet.' + ) + ) + + def _add_documents(self, documents_pk_list, instance): + instance.documents.add( + *Document.objects.filter(pk__in=documents_pk_list.split(',')) + ) + + def create(self, validated_data): + documents_pk_list = validated_data['documents_pk_list'] + + if documents_pk_list: + self._add_documents( + documents_pk_list=documents_pk_list, + instance=validated_data['cabinet'] + ) + + return {'documents_pk_list': documents_pk_list} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/.gitignore b/mayan/apps/cabinets/static/cabinets/packages/jstree/.gitignore new file mode 100644 index 0000000000..8b9a6f2678 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/.gitignore @@ -0,0 +1,13 @@ +/debug +/jstree.sublime-project +/jstree.sublime-workspace +/bower_components +/node_modules +/site +/nuget +/demo/filebrowser/data/root +/npm.txt +/libs +/docs +/dist/libs +/.vscode \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/LICENSE-MIT b/mayan/apps/cabinets/static/cabinets/packages/jstree/LICENSE-MIT new file mode 100644 index 0000000000..470dd6181a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) 2014 Ivan Bozhanov + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/README.md b/mayan/apps/cabinets/static/cabinets/packages/jstree/README.md new file mode 100644 index 0000000000..e1e6db769f --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/README.md @@ -0,0 +1,658 @@ +# jstree + +[jsTree](http://www.jstree.com/) is jquery plugin, that provides interactive trees. It is absolutely free, [open source](https://github.com/vakata/jstree) and distributed under the MIT license. + +jsTree is easily extendable, themable and configurable, it supports HTML & JSON data sources, AJAX & async callback loading. + +jsTree functions properly in either box-model (content-box or border-box), can be loaded as an AMD module, and has a built in mobile theme for responsive design, that can easily be customized. It uses jQuery's event system, so binding callbacks on various events in the tree is familiar and easy. + +You also get: + * drag & drop support + * keyboard navigation + * inline edit, create and delete + * tri-state checkboxes + * fuzzy searching + * customizable node types + +_Aside from this readme you can find a lot more info on [jstree.com](http://www.jstree.com) & [the discussion group](https://groups.google.com/forum/#!forum/jstree)_. + +--- + + + +- [Getting Started](#getting-started) + - [Include all neccessary files](#include-all-neccessary-files) + - [Populating a tree using HTML](#populating-a-tree-using-html) + - [Populating a tree using an array \(or JSON\)](#populating-a-tree-using-an-array-or-json) + - [The required JSON format](#the-required-json-format) + - [Populating the tree using AJAX](#populating-the-tree-using-ajax) + - [Populating the tree using AJAX and lazy loading nodes](#populating-the-tree-using-ajax-and-lazy-loading-nodes) + - [Populating the tree using a callback function](#populating-the-tree-using-a-callback-function) +- [Working with events](#working-with-events) +- [Interacting with the tree using the API](#interacting-with-the-tree-using-the-api) +- [More on configuration](#more-on-configuration) +- [Plugins](#plugins) + - [checkbox](#checkbox) + - [contextmenu](#contextmenu) + - [dnd](#dnd) + - [massload](#massload) + - [search](#search) + - [sort](#sort) + - [state](#state) + - [types](#types) + - [unique](#unique) + - [wholerow](#wholerow) + - [More plugins](#more-plugins) +- [License & Contributing](#license--contributing) + + + + +--- + +## Getting Started + +### Include all neccessary files +To get started you need 3 things in your page: + 1. jQuery (anything above 1.9.1 will work) + 2. A jstree theme (there is only one theme supplied by default) + 3. The jstree source file + +```html + + + + +``` + +_If you decide to host jstree yourself - the files are located in the `dist` folder. You can safely ignore the `dist/libs` folder._ + +--- + +### Populating a tree using HTML + +Now we are all set to create a tree, inline HTML is the easiest option (suitable for menus). All you need to do is select a node (using a jQuery selector) and invoke the `.jstree()` function to let jstree know you want to render a tree inside the selected node. `$.jstree.create(element)` can be used too. + +```html +
+
    +
  • Root node +
      +
    • Child node 1
    • +
    • Child node 2
    • +
    +
  • +
+
+ +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/) + +_You can add a few options when rendering a node using a data-attribute (note the quotes):_ +```html +
  • Root node ... +``` + +--- + +### Populating a tree using an array (or JSON) + +Building trees from HTML is easy, but it is not very flexible, inline JS data is a better option: + +```html +
    + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4478/) + +Unlike the previous simple HTML example, this time the `.jstree()` function accepts a config object. + +For now it is important to note that jstree will try to parse any data you specify in the `core.data` key and use it to create a tree. As seen in the previous example, if this key is missing jstree will try to parse the inline HTML of the container. + +#### The required JSON format + +The data you use must be in a specific format, each branch of the tree is represented by an object, which must at least have a `text` key. The `children` key can be used to add children to the branch, it should be an array of objects. + +_Keep in mind, you can use a simple string instead of an object if all you need is node with the given text, the above data can be written as:_ + +```js +[ { "text" : "Root node", "children" : [ "Child node 1", "Child node 2" ] } ] +``` + +There are other available options for each node, only set them if you need them like: + + * `id` - makes if possible to identify a node later (will also be used as a DOM ID of the `LI` node). _Make sure you do not repeat the same ID in a tree instance (that would defeat its purpose of being a unique identifier and may cause problems for jstree)_. + * `icon` - a string which will be used for the node's icon - this can either be a path to a file, or a className (or list of classNames), which you can style in your CSS (font icons also work). + * `data` - this can be anything you want - it is metadata you want attached to the node - you will be able to access and modify it any time later - it has no effect on the visuals of the node. + * `state` - an object specifyng a few options about the node: + - `selected` - if the node should be initially selected + - `opened` - if the node should be initially opened + - `disabled` - if the node should be disabled + - `checked` - __checkbox plugin specific__ - if the node should be checked (only used when `tie_selection` is `false`, which you should only do if you really know what you are doing) + - `undetermined` - __checkbox plugin specific__ - if the node should be rendered in undetermined state (only used with lazy loading and when the node is not yet loaded, otherwise this state is automatically calculated). + * `type` - __types plugin specific__ - the type of the nodes (should be defined in the types config), if not set `"default"` is assumed. + * `li_attr` - object of values which will be used to add HTML attributes on the resulting `LI` DOM node. + * `a_attr` - object of values which will be used to add HTML attributes on the resulting `A` node. + +Here is a new demo with some of those properties set: + +```html +
    + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4479/) + +--- + +### Populating the tree using AJAX + +Building off of the previous example, let's see how to have jstree make AJAX requests for you. + +```html +
    + +``` + +The server response is: +```json +[{ + "id":1,"text":"Root node","children":[ + {"id":2,"text":"Child node 1"}, + {"id":3,"text":"Child node 2"} + ] +}] +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4480/) + +Instead of a JS array, you can set `core.data` to a [jQuery AJAX config](http://api.jquery.com/jQuery.ajax/). +jsTree will hit that URL, and provided you return properly formatted JSON it will be displayed. + +_If you cannot provide proper JSON headers, set `core.data.dataType` to `"json"`._ + +The ids in the server response make it possible to identify nodes later (which we will see in the next few demos), but they are not required. + +__WHEN USING IDS MAKE SURE THEY ARE UNIQUE INSIDE A PARTICULAR TREE__ + +--- + +### Populating the tree using AJAX and lazy loading nodes + +Lazy loading means nodes will be loaded when they are needed. Imagine you have a huge amount of nodes you want to show, but loading them with a single request is way too much traffic. Lazy loading makes it possible to load nodes on the fly - jstree will perform AJAX requests as the user browses the tree. + +Here we take our previous example, and lazy load the "Child node 1" node. + +```html +
    + +``` + +The initial server response is: +```json +[{ + "id":1,"text":"Root node","children":[ + {"id":2,"text":"Child node 1","children":true}, + {"id":3,"text":"Child node 2"} + ] +}] +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4481/) + +Now to focus on what is different. First off the `"data"` config option of the data object. If you check with jQuery, it is supposed to be a string or an object. But jstree makes it possible to set a function. + +Each time jstree needs to make an AJAX call this function will be called and will receive a single parameter - the node that is being loaded. The return value of this function will be used as the actual `"data"` of the AJAX call. To understand better open up the demo and see the requests go off in the console. + +You will notice that the first request goes off to: +`http://www.jstree.com/fiddle?lazy&id=#` +`#` is the special ID that the function receives when jstree needs to load the root nodes. + +Now go ahead and open the root node - two children will be shown, but no request will be made - that is because we loaded those children along with the first request. + +Onto the next difference - "Child node 1" appears closed - that is because in the data we supplied `true` as the `"children"` property of this node (you can see it in the server response). This special value indicated to jstree, that it has to lazy load the "Child node 1" node. + +Proceed and open this node - you will see a next request fire off to: +`http://www.jstree.com/fiddle?lazy&id=2` +ID is set to `2` because the node being loaded has an ID of `2`, and we have configured jstree to send the node ID along with the AJAX request (the `data` function). + +The server response is: +```json +["Child node 3","Child node 4"] +``` + +_You can also set `"url"` to a function and it works exactly as with `"data"` - each time a request has to be made, jstree will invoke your function and the request will go off to whatever you return in this function. This is useful when dealing with URLs like: `http://example.com/get_children/1`._ + +### Populating the tree using a callback function + +Sometimes you may not want jsTree to make AJAX calls for you - you might want to make them yourself, or use some other method of puplating the tree. In that case you can use a callback function. + +```html +
    + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4482/) + +As you can see your function will receive two arguments - the node whose children need to be loaded and a callback function to call with the data once you have it. The data follows the same familiar JSON format and lazy loading works just as with AJAX (as you can see in the above example). + +--- + +## Working with events + +jstree provides a lot of events to let you know something happened with the tree. The events are the same regardless of how you populate the tree. +Let's use the most basic event `changed` - it fires when selection on the tree changes: + +```html +
    + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4483/) + +All jstree events fire in a special `".jstree"` namespace - this is why we listen for `"changed.jstree"`. The handler itself receives one additional parameter - it will be populated with all you need to know about the event that happened. In this case `data.selected` is an array of selected node IDs (please note, that if you have not specified IDs they will be autogenerated). + +Let's extend this a bit and log out the text of the node instead of the ID. + +```js +$('#container').on("changed.jstree", function (e, data) { + console.log(data.instance.get_selected(true)[0].text); + console.log(data.instance.get_node(data.selected[0]).text); +}); +``` + +The two rows above achieve exactly the same thing - get the text of the first selected node. + +In the `data` argument object you will always get an `instance` key - that is a reference to the tree instance, so that you can easily invoke methods. + +__All available functions and events are documented in the API docs__ + +--- + +## Interacting with the tree using the API + +We scratched the surface on interacting with the tree in the previous example. Let's move on to obtaining an instance and calling a method on this instance: + +```html + +
    + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4484/) + +The above example shows how to obtain a reference to a jstree instance (again with a selector, but this time instead of a config, we pass a boolean `true`), and call a couple of methods - the latter one is selecting a node by its ID. + +Methods can also be invoked like this: + +```js +$('#container').jstree("select_node", "1"); +``` + +__All available functions and events are documented in the API docs__ + +## More on configuration + +We already covered the config object in general (when we specified inline & AJAX data sources). + +```js +$("#tree").jstree({ /* config object goes here */ }); +``` + +Each key in the config object corresponds to a plugin, and the value of that key is the configuration for that plugin. There are also two special keys `"core"` and `"plugins"`: + * `"core"` stores the core configuration options + * `"plugins"` is an array of plugin names (strings) you want active on the instance + +When configuring you only need to set values that you want to be different from the defaults. + +__All config options and defaults are documented in the API docs__ + +```js +$("#tree").jstree({ + "core" : { // core options go here + "multiple" : false, // no multiselection + "themes" : { + "dots" : false // no connecting dots between dots + } + }, + "plugins" : ["state"] // activate the state plugin on this instance +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4485/) + +We will cover all plugins further down. + +__Keep in mind by default all modifications to the structure are prevented - that means drag'n'drop, create, rename, delete will not work unless you enable them.__ + +```js +$("#tree").jstree({ + "core" : { + "check_callback" : true, // enable all modifications + }, + "plugins" : ["dnd","contextmenu"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4486/) + +`"core.check_callback"` can also be set to a function, that will be invoked every time a modification is about to happen (or when jstree needs to check if a modification is possible). If you return `true` the operation will be allowed, a value of `false` means it will not be allowed. The possible operation you can expect are `create_node`, `rename_node`, `delete_node`, `move_node` and `copy_node`. The `more` parameter will contain various information provided by the plugin that is invoking the check. For example the DND plugin will provide an object containing information about the move or copy operation that is being checked - is it a multi tree operation, which node is currently hovered, where the insert arrow is pointing - before, after or inside, etc. + +```js +$("#tree").jstree({ + "core" : { + "check_callback" : function (operation, node, parent, position, more) { + if(operation === "copy_node" || operation === "move_node") { + if(parent.id === "#") { + return false; // prevent moving a child above or below the root + } + }, + return true; // allow everything else + } + }, + "plugins" : ["dnd","contextmenu"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4487/) + +The `more` parameter you receive contains other information related to the check being performed. + +__For example__: `move_node` & `copy_node` checks will fire repeatedly while the user drags a node, if the check was triggered by the `dnd` plugin `more` will contain a `dnd` key, which will be set to `true`. +You can check for `more.dnd` and only perform a certain action if `dnd` triggered the check. +If you only want to perform an operation when a node is really about to be dropped check for `more.core`. + +## Plugins + +jsTree comes with a few plugin bundled, but they will only modify your tree if you activate them using the `"plugins"` config option. Here is a brief description of each plugin. You can read more on the available config options for each plugin in the API docs. + +### checkbox +Renders a checkbox icon in front of each node, making multiselection easy. It also has a "tri-state" option, meaning a node with some of its children checked will get a "square" icon. + +_Keep in mind that if any sort of cascade is enabled, disabled nodes may be checked too (not by themselves, but for example when a parent of a disabled node is checked and selection is configured to cascade down)._ + +```js +$("#tree").jstree({ + "plugins" : ["checkbox"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4488/) + +### contextmenu +Makes it possible to right click nodes and shows a list of configurable actions in a menu. + +```js +$("#tree").jstree({ + "core" : { "check_callback" : true }, // so that modifying operations work + "plugins" : ["contextmenu"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4489/) + +### dnd +Makes it possible to drag and drop tree nodes and rearrange the tree. + +```js +$("#tree").jstree({ + "core" : { "check_callback" : true }, // so that operations work + "plugins" : ["dnd"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4490/) + +### massload +Makes it possible to load multiple nodes in a single go (for a lazy loaded tree). + +```js +$("#tree").jstree({ + "core" : { + "data" : { .. AJAX config .. } + }, + "massload" : { + "url" : "/some/path", + "data" : function (nodes) { + return { "ids" : nodes.join(",") }; + } + }, + "plugins" : [ "massload", "state" ] +}); +``` + +### search +Adds the possibility to search for items in the tree and show only matching nodes. It also has AJAX / callback hooks, so that search will work on lazy loaded trees too. + +```html + + + +
  • + +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4491/) + +### sort +Automatically arranges all sibling nodes according to a comparison config option function, which defaults to alphabetical order. + +```js +$("#tree").jstree({ + "plugins" : ["sort"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4492/) + +### state +Saves all opened and selected nodes in the user's browser, so when returning to the same tree the previous state will be restored. + +```js +$("#tree").jstree({ + // the key is important if you have multiple trees in the same domain + "state" : { "key" : "state_demo" }, + "plugins" : ["state"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4493/) + +### types +Makes it possible to add a "type" for a node, which means to easily control nesting rules and icon for groups of nodes instead of individually. To set a node type add a type property to the node structure. + +```js +$("#tree").jstree({ + "types" : { + "default" : { + "icon" : "glyphicon glyphicon-flash" + }, + "demo" : { + "icon" : "glyphicon glyphicon-ok" + } + }, + "plugins" : ["types"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4494/) + +### unique +Enforces that no nodes with the same name can coexist as siblings - prevents renaming and moving nodes to a parent, which already contains a node with the same name. + +```js +$("#tree").jstree({ + "plugins" : ["unique"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4495/) + +### wholerow +Makes each node appear block level which makes selection easier. May cause slow down for large trees in old browsers. + +```js +$("#tree").jstree({ + "plugins" : ["wholerow"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4496/) + +### More plugins +If you create your own plugin (or download a 3rd party one) you must include its source on the page and list its name in the `"plugins"` config array. + +```js +// conditional select +(function ($, undefined) { + "use strict"; + $.jstree.defaults.conditionalselect = function () { return true; }; + $.jstree.plugins.conditionalselect = function (options, parent) { + this.activate_node = function (obj, e) { + if(this.settings.conditionalselect.call(this, this.get_node(obj))) { + parent.activate_node.call(this, obj, e); + } + }; + }; +})(jQuery); +$("#tree").jstree({ + "conditionalselect" : function (node) { + return node.text === "Root node" ? false : true; + }, + "plugins" : ["conditionalselect"] +}); +``` + +[view result](http://jsfiddle.net/vakata/2kwkh2uL/4497/) + +As seen here when creating a plugin you can define a default config, add your own functions to jstree, or override existing ones while maintaining the ability to call the overridden function. + +## License & Contributing + +_Please do NOT edit files in the "dist" subdirectory as they are generated via grunt. You'll find source code in the "src" subdirectory!_ + +If you want to you can always [donate a small amount][paypal] to help the development of jstree. +[paypal]: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=paypal@vakata.com¤cy_code=USD&amount=&return=http://jstree.com/donation&item_name=Buy+me+a+coffee+for+jsTree + +Copyright (c) 2014 Ivan Bozhanov (http://vakata.com) + +Licensed under the [MIT license](http://www.opensource.org/licenses/mit-license.php). diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/bower.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/bower.json new file mode 100644 index 0000000000..535b66c151 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/bower.json @@ -0,0 +1,32 @@ +{ + "name": "jstree", + "version": "3.3.3", + "main" : [ + "./dist/jstree.js", + "./dist/themes/default/style.css" + ], + "ignore": [ + "**/.*", + "docs", + "demo", + "libs", + "node_modules", + "test", + "libs", + "jstree.jquery.json", + "gruntfile.js", + "package.json", + "bower.json", + "component.json", + "LICENCE-MIT", + "README.md" + ], + "dependencies": { + "jquery": ">=1.9.1" + }, + "keywords": [ + "ui", + "tree", + "jstree" + ] +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/component.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/component.json new file mode 100644 index 0000000000..2b9183e8d4 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/component.json @@ -0,0 +1,28 @@ +{ + "name": "jstree", + "repo": "vakata/jstree", + "description": "jsTree is jquery plugin, that provides interactive trees.", + "version": "3.3.3", + "license": "MIT", + "keywords": [ + "ui", + "tree", + "jstree" + ], + "scripts": [ + "dist/jstree.js", + "dist/jstree.min.js" + ], + "images": [ + "dist/themes/default/32px.png", + "dist/themes/default/40px.png", + "dist/themes/default/throbber.gif" + ], + "styles": [ + "dist/themes/default/style.css", + "dist/themes/default/style.min.css" + ], + "dependencies": { + "components/jquery": ">=1.9.1" + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/composer.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/composer.json new file mode 100644 index 0000000000..282b768a68 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/composer.json @@ -0,0 +1,46 @@ +{ + "name": "vakata/jstree", + "description": "jsTree is jquery plugin, that provides interactive trees.", + "type": "component", + "homepage": "http://jstree.com", + "license": "MIT", + "support": { + "issues": "https://github.com/vakata/jstree/issues", + "forum": "https://groups.google.com/forum/#!forum/jstree", + "source": "https://github.com/vakata/jstree" + }, + "authors": [ + { + "name": "Ivan Bozhanov", + "email": "jstree@jstree.com" + } + ], + "require": { + "components/jquery": ">=1.9.1" + }, + "suggest": { + "robloach/component-installer": "Allows installation of Components via Composer" + }, + "extra": { + "component": { + "scripts": [ + "dist/jstree.js" + ], + "styles": [ + "dist/themes/default/style.css" + ], + "images": [ + "dist/themes/default/32px.png", + "dist/themes/default/40px.png", + "dist/themes/default/throbber.gif" + ], + "files": [ + "dist/jstree.min.js", + "dist/themes/default/style.min.css", + "dist/themes/default/32px.png", + "dist/themes/default/40px.png", + "dist/themes/default/throbber.gif" + ] + } + } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/index.html new file mode 100644 index 0000000000..9c1a85597a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/index.html @@ -0,0 +1,146 @@ + + + + + jstree basic demos + + + + +

    HTML demo

    +
    +
      +
    • Root node +
        +
      • Child node 1
      • +
      • Child node 2
      • +
      +
    • +
    +
    + +

    Inline data demo

    +
    + +

    Data format demo

    +
    + +

    AJAX demo

    +
    + +

    Lazy loading demo

    +
    + +

    Callback function data demo

    +
    + +

    Interaction and events demo

    + either click the button or a node in the tree +
    + + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/root.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/root.json new file mode 100644 index 0000000000..8560404e85 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/basic/root.json @@ -0,0 +1 @@ +[{"id":1,"text":"Root node","children":[{"id":2,"text":"Child node 1"},{"id":3,"text":"Child node 2"}]}] \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/data/.htaccess b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/data/.htaccess new file mode 100644 index 0000000000..3418e55a68 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/data/.htaccess @@ -0,0 +1 @@ +deny from all \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/file_sprite.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/filebrowser/file_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..5d68245cb819c6776a1d7b012bb9f7690fb3505d GIT binary patch literal 19360 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
    RD-)MhF#wBrM|wrQ?3wmc+)$uB`=nx_giq)BO2l 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 && strlen($this->base)) { + if(strpos($temp, $this->base) !== 0) { throw new Exception('Path is not inside base ('.$this->base.'): ' . $temp); } + } + return $temp; + } + protected function path($id) { + $id = str_replace('/', DIRECTORY_SEPARATOR, $id); + $id = trim($id, DIRECTORY_SEPARATOR); + $id = $this->real($this->base . DIRECTORY_SEPARATOR . $id); + return $id; + } + protected function id($path) { + $path = $this->real($path); + $path = substr($path, strlen($this->base)); + $path = str_replace(DIRECTORY_SEPARATOR, '/', $path); + $path = trim($path, '/'); + return strlen($path) ? $path : '/'; + } + + public function __construct($base) { + $this->base = $this->real($base); + if(!$this->base) { throw new Exception('Base directory does not exist'); } + } + public function lst($id, $with_root = false) { + $dir = $this->path($id); + $lst = @scandir($dir); + if(!$lst) { throw new Exception('Could not list path: ' . $dir); } + $res = array(); + foreach($lst as $item) { + if($item == '.' || $item == '..' || $item === null) { continue; } + $tmp = preg_match('([^ a-zа-я-_0-9.]+)ui', $item); + if($tmp === false || $tmp === 1) { continue; } + if(is_dir($dir . DIRECTORY_SEPARATOR . $item)) { + $res[] = array('text' => $item, 'children' => true, 'id' => $this->id($dir . DIRECTORY_SEPARATOR . $item), 'icon' => 'folder'); + } + else { + $res[] = array('text' => $item, 'children' => false, 'id' => $this->id($dir . DIRECTORY_SEPARATOR . $item), 'type' => 'file', 'icon' => 'file file-'.substr($item, strrpos($item,'.') + 1)); + } + } + if($with_root && $this->id($dir) === '/') { + $res = array(array('text' => basename($this->base), 'children' => $res, 'id' => '/', 'icon'=>'folder', 'state' => array('opened' => true, 'disabled' => true))); + } + return $res; + } + public function data($id) { + if(strpos($id, ":")) { + $id = array_map(array($this, 'id'), explode(':', $id)); + return array('type'=>'multiple', 'content'=> 'Multiple selected: ' . implode(' ', $id)); + } + $dir = $this->path($id); + if(is_dir($dir)) { + return array('type'=>'folder', 'content'=> $id); + } + if(is_file($dir)) { + $ext = strpos($dir, '.') !== FALSE ? substr($dir, strrpos($dir, '.') + 1) : ''; + $dat = array('type' => $ext, 'content' => ''); + switch($ext) { + case 'txt': + case 'text': + case 'md': + case 'js': + case 'json': + case 'css': + case 'html': + case 'htm': + case 'xml': + case 'c': + case 'cpp': + case 'h': + case 'sql': + case 'log': + case 'py': + case 'rb': + case 'htaccess': + case 'php': + $dat['content'] = file_get_contents($dir); + break; + case 'jpg': + case 'jpeg': + case 'gif': + case 'png': + case 'bmp': + $dat['content'] = 'data:'.finfo_file(finfo_open(FILEINFO_MIME_TYPE), $dir).';base64,'.base64_encode(file_get_contents($dir)); + break; + default: + $dat['content'] = 'File not recognized: '.$this->id($dir); + break; + } + return $dat; + } + throw new Exception('Not a valid selection: ' . $dir); + } + public function create($id, $name, $mkdir = false) { + $dir = $this->path($id); + if(preg_match('([^ a-zа-я-_0-9.]+)ui', $name) || !strlen($name)) { + throw new Exception('Invalid name: ' . $name); + } + if($mkdir) { + mkdir($dir . DIRECTORY_SEPARATOR . $name); + } + else { + file_put_contents($dir . DIRECTORY_SEPARATOR . $name, ''); + } + return array('id' => $this->id($dir . DIRECTORY_SEPARATOR . $name)); + } + public function rename($id, $name) { + $dir = $this->path($id); + if($dir === $this->base) { + throw new Exception('Cannot rename root'); + } + if(preg_match('([^ a-zа-я-_0-9.]+)ui', $name) || !strlen($name)) { + throw new Exception('Invalid name: ' . $name); + } + $new = explode(DIRECTORY_SEPARATOR, $dir); + array_pop($new); + array_push($new, $name); + $new = implode(DIRECTORY_SEPARATOR, $new); + if($dir !== $new) { + if(is_file($new) || is_dir($new)) { throw new Exception('Path already exists: ' . $new); } + rename($dir, $new); + } + return array('id' => $this->id($new)); + } + public function remove($id) { + $dir = $this->path($id); + if($dir === $this->base) { + throw new Exception('Cannot remove root'); + } + if(is_dir($dir)) { + foreach(array_diff(scandir($dir), array(".", "..")) as $f) { + $this->remove($this->id($dir . DIRECTORY_SEPARATOR . $f)); + } + rmdir($dir); + } + if(is_file($dir)) { + unlink($dir); + } + return array('status' => 'OK'); + } + public function move($id, $par) { + $dir = $this->path($id); + $par = $this->path($par); + $new = explode(DIRECTORY_SEPARATOR, $dir); + $new = array_pop($new); + $new = $par . DIRECTORY_SEPARATOR . $new; + rename($dir, $new); + return array('id' => $this->id($new)); + } + public function copy($id, $par) { + $dir = $this->path($id); + $par = $this->path($par); + $new = explode(DIRECTORY_SEPARATOR, $dir); + $new = array_pop($new); + $new = $par . DIRECTORY_SEPARATOR . $new; + if(is_file($new) || is_dir($new)) { throw new Exception('Path already exists: ' . $new); } + + if(is_dir($dir)) { + mkdir($new); + foreach(array_diff(scandir($dir), array(".", "..")) as $f) { + $this->copy($this->id($dir . DIRECTORY_SEPARATOR . $f), $this->id($new)); + } + } + if(is_file($dir)) { + copy($dir, $new); + } + return array('id' => $this->id($new)); + } +} + +if(isset($_GET['operation'])) { + $fs = new fs(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR); + try { + $rslt = null; + switch($_GET['operation']) { + case 'get_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $rslt = $fs->lst($node, (isset($_GET['id']) && $_GET['id'] === '#')); + break; + case "get_content": + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $rslt = $fs->data($node); + break; + case 'create_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $rslt = $fs->create($node, isset($_GET['text']) ? $_GET['text'] : '', (!isset($_GET['type']) || $_GET['type'] !== 'file')); + break; + case 'rename_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $rslt = $fs->rename($node, isset($_GET['text']) ? $_GET['text'] : ''); + break; + case 'delete_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $rslt = $fs->remove($node); + break; + case 'move_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $parn = isset($_GET['parent']) && $_GET['parent'] !== '#' ? $_GET['parent'] : '/'; + $rslt = $fs->move($node, $parn); + break; + case 'copy_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : '/'; + $parn = isset($_GET['parent']) && $_GET['parent'] !== '#' ? $_GET['parent'] : '/'; + $rslt = $fs->copy($node, $parn); + break; + default: + throw new Exception('Unsupported operation: ' . $_GET['operation']); + break; + } + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($rslt); + } + catch (Exception $e) { + header($_SERVER["SERVER_PROTOCOL"] . ' 500 Server Error'); + header('Status: 500 Server Error'); + echo $e->getMessage(); + } + die(); +} +?> + + + + + + Title + + + + + +
    +
    +
    + + + +
    Select a file from the tree.
    +
    +
    + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.db.php b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.db.php new file mode 100644 index 0000000000..bf06935f22 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.db.php @@ -0,0 +1,1082 @@ +query('UPDATE table SET value = 1 WHERE id = ?', array(1)); +// get all results as array +$db->all('SELECT * FROM table WHERE id = ?', array(1), "array_key", bool_skip_key, "assoc"/"num"); +// get one result +$db->one('SELECT * FROM table WHERE id = ?', array(1), "assoc"/"num"); +// get a traversable object to pass to foreach, or use count(), or use direct access: [INDEX] +$db->get('SELECT * FROM table WHERE id = ?', array(1), "assoc"/"num")[1]; +*/ + +namespace +{ + class db + { + private function __construct() { + } + public function __clone() { + throw new \vakata\database\Exception('Cannot clone static DB'); + } + public static function get($settings = null) { + return new \vakata\database\DBC($settings); + } + public static function getc($settings = null, \vakata\cache\ICache $c = null) { + if($c === null) { $c = \vakata\cache\cache::inst(); } + return new \vakata\database\DBCCached($settings, $c); + } + } +} + +namespace vakata\database +{ + class Exception extends \Exception + { + } + + class Settings + { + public $type = null; + public $username = 'root'; + public $password = null; + public $database = null; + public $servername = 'localhost'; + public $serverport = null; + public $persist = false; + public $timezone = null; + public $charset = 'UTF8'; + + public function __construct($settings) { + $str = parse_url($settings); + if(!$str) { + throw new Exception('Malformed DB settings string: ' . $settings); + } + if(array_key_exists('scheme',$str)) { + $this->type = rawurldecode($str['scheme']); + } + if(array_key_exists('user',$str)) { + $this->username = rawurldecode($str['user']); + } + if(array_key_exists('pass',$str)) { + $this->password = rawurldecode($str['pass']); + } + if(array_key_exists('path',$str)) { + $this->database = trim(rawurldecode($str['path']),'/'); + } + if(array_key_exists('host',$str)) { + $this->servername = rawurldecode($str['host']); + } + if(array_key_exists('port',$str)) { + $this->serverport = rawurldecode($str['port']); + } + if(array_key_exists('query',$str)) { + parse_str($str['query'], $str); + $this->persist = (array_key_exists('persist', $str) && $str['persist'] === 'TRUE'); + if(array_key_exists('charset', $str)) { + $this->charset = $str['charset']; + } + if(array_key_exists('timezone', $str)) { + $this->timezone = $str['timezone']; + } + } + } + } + + interface IDB + { + public function connect(); + public function query($sql, $vars); + public function get($sql, $data, $key, $skip_key, $mode); + public function all($sql, $data, $key, $skip_key, $mode); + public function one($sql, $data, $mode); + public function raw($sql); + public function prepare($sql); + public function execute($data); + public function disconnect(); + } + + interface IDriver + { + public function prepare($sql); + public function execute($data); + public function query($sql, $data); + public function nextr($result); + public function seek($result, $row); + public function nf($result); + public function af(); + public function insert_id(); + public function real_query($sql); + public function get_settings(); + } + + abstract class ADriver implements IDriver + { + protected $lnk = null; + protected $settings = null; + + public function __construct(Settings $settings) { + $this->settings = $settings; + } + public function __destruct() { + if($this->is_connected()) { + $this->disconnect(); + } + } + public function get_settings() { + return $this->settings; + } + + public function connect() { + } + public function is_connected() { + return $this->lnk !== null; + } + public function disconnect() { + } + public function query($sql, $data = array()) { + return $this->execute($this->prepare($sql), $data); + } + public function prepare($sql) { + if(!$this->is_connected()) { $this->connect(); } + return $sql; + } + public function execute($sql, $data = array()) { + if(!$this->is_connected()) { $this->connect(); } + if(!is_array($data)) { $data = array(); } + $binder = '?'; + if(strpos($sql, $binder) !== false && is_array($data) && count($data)) { + $tmp = explode($binder, $sql); + if(!is_array($data)) { $data = array($data); } + $data = array_values($data); + if(count($data) >= count($tmp)) { $data = array_slice($data, 0, count($tmp)-1); } + $sql = $tmp[0]; + foreach($data as $i => $v) { + $sql .= $this->escape($v) . $tmp[($i + 1)]; + } + } + return $this->real_query($sql); + } + + public function real_query($sql) { + if(!$this->is_connected()) { $this->connect(); } + } + protected function escape($input) { + if(is_array($input)) { + foreach($input as $k => $v) { + $input[$k] = $this->escape($v); + } + return implode(',',$input); + } + if(is_string($input)) { + $input = addslashes($input); + return "'".$input."'"; + } + if(is_bool($input)) { + return $input === false ? 0 : 1; + } + if(is_null($input)) { + return 'NULL'; + } + return $input; + } + + public function nextr($result) {} + public function nf($result) {} + public function af() {} + public function insert_id() {} + public function seek($result, $row) {} + } + + class Result implements \Iterator, \ArrayAccess, \Countable + { + protected $all = null; + protected $rdy = false; + protected $rslt = null; + protected $mode = null; + protected $fake = null; + protected $skip = false; + + protected $fake_key = 0; + protected $real_key = 0; + public function __construct(Query $rslt, $key = null, $skip_key = false, $mode = 'assoc') { + $this->rslt = $rslt; + $this->mode = $mode; + $this->fake = $key; + $this->skip = $skip_key; + } + public function count() { + return $this->rdy ? count($this->all) : $this->rslt->nf(); + } + public function current() { + if(!$this->count()) { + return null; + } + if($this->rdy) { + return current($this->all); + } + $tmp = $this->rslt->row(); + $row = array(); + switch($this->mode) { + case 'num': + foreach($tmp as $k => $v) { + if(is_int($k)) { + $row[$k] = $v; + } + } + break; + case 'both': + $row = $tmp; + break; + case 'assoc': + default: + foreach($tmp as $k => $v) { + if(!is_int($k)) { + $row[$k] = $v; + } + } + break; + } + if($this->fake) { + $this->fake_key = $row[$this->fake]; + } + if($this->skip) { + unset($row[$this->fake]); + } + if(is_array($row) && count($row) === 1) { + $row = current($row); + } + return $row; + } + public function key() { + if($this->rdy) { + return key($this->all); + } + return $this->fake ? $this->fake_key : $this->real_key; + } + public function next() { + if($this->rdy) { + return next($this->all); + } + $this->rslt->nextr(); + $this->real_key++; + } + public function rewind() { + if($this->rdy) { + return reset($this->all); + } + if($this->real_key !== null) { + $this->rslt->seek(($this->real_key = 0)); + } + $this->rslt->nextr(); + } + public function valid() { + if($this->rdy) { + return current($this->all) !== false; + } + return $this->rslt->row() !== false && $this->rslt->row() !== null; + } + + public function one() { + $this->rewind(); + return $this->current(); + } + public function get() { + if(!$this->rdy) { + $this->all = array(); + foreach($this as $k => $v) { + $this->all[$k] = $v; + } + $this->rdy = true; + } + return $this->all; + } + public function offsetExists($offset) { + if($this->rdy) { + return isset($this->all[$offset]); + } + if($this->fake === null) { + return $this->rslt->seek(($this->real_key = $offset)); + } + $this->get(); + return isset($this->all[$offset]); + } + public function offsetGet($offset) { + if($this->rdy) { + return $this->all[$offset]; + } + if($this->fake === null) { + $this->rslt->seek(($this->real_key = $offset)); + $this->rslt->nextr(); + return $this->current(); + } + $this->get(); + return $this->all[$offset]; + } + public function offsetSet ($offset, $value ) { + throw new Exception('Cannot set result'); + } + public function offsetUnset ($offset) { + throw new Exception('Cannot unset result'); + } + public function __sleep() { + $this->get(); + return array('all', 'rdy', 'mode', 'fake', 'skip'); + } + public function __toString() { + return print_r($this->get(), true); + } + } + + class Query + { + protected $drv = null; + protected $sql = null; + protected $prp = null; + protected $rsl = null; + protected $row = null; + protected $num = null; + protected $aff = null; + protected $iid = null; + + public function __construct(IDriver $drv, $sql) { + $this->drv = $drv; + $this->sql = $sql; + $this->prp = $this->drv->prepare($sql); + } + public function execute($vars = array()) { + $this->rsl = $this->drv->execute($this->prp, $vars); + $this->num = (is_object($this->rsl) || is_resource($this->rsl)) && is_callable(array($this->drv, 'nf')) ? (int)@$this->drv->nf($this->rsl) : 0; + $this->aff = $this->drv->af(); + $this->iid = $this->drv->insert_id(); + return $this; + } + public function result($key = null, $skip_key = false, $mode = 'assoc') { + return new Result($this, $key, $skip_key, $mode); + } + public function row() { + return $this->row; + } + public function f($field) { + return $this->row[$field]; + } + public function nextr() { + $this->row = $this->drv->nextr($this->rsl); + return $this->row !== false && $this->row !== null; + } + public function seek($offset) { + return @$this->drv->seek($this->rsl, $offset) ? true : false; + } + public function nf() { + return $this->num; + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + } + + class DBC implements IDB + { + protected $drv = null; + protected $que = null; + + public function __construct($drv = null) { + if(!$drv && defined('DATABASE')) { + $drv = DATABASE; + } + if(!$drv) { + $this->error('Could not create database (no settings)'); + } + if(is_string($drv)) { + $drv = new \vakata\database\Settings($drv); + } + if($drv instanceof Settings) { + $tmp = '\\vakata\\database\\' . $drv->type . '_driver'; + if(!class_exists($tmp)) { + $this->error('Could not create database (no driver: '.$drv->type.')'); + } + $drv = new $tmp($drv); + } + if(!($drv instanceof IDriver)) { + $this->error('Could not create database - wrong driver'); + } + $this->drv = $drv; + } + + public function connect() { + if(!$this->drv->is_connected()) { + try { + $this->drv->connect(); + } + catch (Exception $e) { + $this->error($e->getMessage(), 1); + } + } + return true; + } + public function disconnect() { + if($this->drv->is_connected()) { + $this->drv->disconnect(); + } + } + + public function prepare($sql) { + try { + $this->que = new Query($this->drv, $sql); + return $this->que; + } catch (Exception $e) { + $this->error($e->getMessage(), 2); + } + } + public function execute($data = array()) { + try { + return $this->que->execute($data); + } catch (Exception $e) { + $this->error($e->getMessage(), 3); + } + } + public function query($sql, $data = array()) { + try { + $this->que = new Query($this->drv, $sql); + return $this->que->execute($data); + } + catch (Exception $e) { + $this->error($e->getMessage(), 4); + } + } + public function get($sql, $data = array(), $key = null, $skip_key = false, $mode = 'assoc') { + return $this->query($sql, $data)->result($key, $skip_key, $mode); + } + public function all($sql, $data = array(), $key = null, $skip_key = false, $mode = 'assoc') { + return $this->get($sql, $data, $key, $skip_key, $mode)->get(); + } + public function one($sql, $data = array(), $mode = 'assoc') { + return $this->query($sql, $data)->result(null, false, $mode)->one(); + } + public function raw($sql) { + return $this->drv->real_query($sql); + } + public function get_driver() { + return $this->drv->get_settings()->type; + } + + public function __call($method, $args) { + if($this->que && is_callable(array($this->que, $method))) { + try { + return call_user_func_array(array($this->que, $method), $args); + } catch (Exception $e) { + $this->error($e->getMessage(), 5); + } + } + } + + protected final function error($error = '') { + $dirnm = defined('LOGROOT') ? LOGROOT : realpath(dirname(__FILE__)); + @file_put_contents( + $dirnm . DIRECTORY_SEPARATOR . '_errors_sql.log', + '[' . date('d-M-Y H:i:s') . '] ' . $this->settings->type . ' > ' . preg_replace("@[\s\r\n\t]+@", ' ', $error) . "\n", + FILE_APPEND + ); + throw new Exception($error); + } + } + + class DBCCached extends DBC + { + protected $cache_inst = null; + protected $cache_nmsp = null; + public function __construct($settings = null, \vakata\cache\ICache $c = null) { + parent::__construct($settings); + $this->cache_inst = $c; + $this->cache_nmsp = 'DBCCached_' . md5(serialize($this->drv->get_settings())); + } + public function cache($expires, $sql, $data = array(), $key = null, $skip_key = false, $mode = 'assoc') { + $arg = func_get_args(); + array_shift($arg); + $key = md5(serialize($arg)); + if(!$this->cache_inst) { + return call_user_func_array(array($this, 'all'), $arg); + } + + $tmp = $this->cache_inst->get($key, $this->cache_nmsp); + if(!$tmp) { + $this->cache_inst->prep($key, $this->cache_nmsp); + $tmp = call_user_func_array(array($this, 'all'), $arg); + $this->cache_inst->set($key, $tmp, $this->cache_nmsp, $expires); + } + return $tmp; + } + public function clear() { + if($this->cache_inst) { + $this->cache_inst->clear($this->cache_nmsp); + } + } + } + + class mysqli_driver extends ADriver + { + protected $iid = 0; + protected $aff = 0; + protected $mnd = false; + + public function __construct($settings) { + parent::__construct($settings); + if(!$this->settings->serverport) { $this->settings->serverport = 3306; } + $this->mnd = function_exists('mysqli_fetch_all'); + } + + public function connect() { + $this->lnk = new \mysqli( + ($this->settings->persist ? 'p:' : '') . $this->settings->servername, + $this->settings->username, + $this->settings->password, + $this->settings->database, + $this->settings->serverport + ); + if($this->lnk->connect_errno) { + throw new Exception('Connect error: ' . $this->lnk->connect_errno); + } + if(!$this->lnk->set_charset($this->settings->charset)) { + throw new Exception('Charset error: ' . $this->lnk->connect_errno); + } + if($this->settings->timezone) { + @$this->lnk->query("SET time_zone = '" . addslashes($this->settings->timezone) . "'"); + } + return true; + } + public function disconnect() { + if($this->is_connected()) { + @$this->lnk->close(); + } + } + public function real_query($sql) { + if(!$this->is_connected()) { $this->connect(); } + $temp = $this->lnk->query($sql); + if(!$temp) { + throw new Exception('Could not execute query : ' . $this->lnk->error . ' <'.$sql.'>'); + } + $this->iid = $this->lnk->insert_id; + $this->aff = $this->lnk->affected_rows; + return $temp; + } + public function nextr($result) { + if($this->mnd) { + return $result->fetch_array(MYSQLI_BOTH); + } + else { + $ref = $result->result_metadata(); + if(!$ref) { return false; } + $tmp = mysqli_fetch_fields($ref); + if(!$tmp) { return false; } + $ref = array(); + foreach($tmp as $col) { $ref[$col->name] = null; } + $tmp = array(); + foreach($ref as $k => $v) { $tmp[] =& $ref[$k]; } + if(!call_user_func_array(array($result, 'bind_result'), $tmp)) { return false; } + if(!$result->fetch()) { return false; } + $tmp = array(); + $i = 0; + foreach($ref as $k => $v) { $tmp[$i++] = $v; $tmp[$k] = $v; } + return $tmp; + } + } + public function seek($result, $row) { + $temp = $result->data_seek($row); + return $temp; + } + public function nf($result) { + return $result->num_rows; + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + public function prepare($sql) { + if(!$this->is_connected()) { $this->connect(); } + $temp = $this->lnk->prepare($sql); + if(!$temp) { + throw new Exception('Could not prepare : ' . $this->lnk->error . ' <'.$sql.'>'); + } + return $temp; + } + public function execute($sql, $data = array()) { + if(!$this->is_connected()) { $this->connect(); } + if(!is_array($data)) { $data = array(); } + if(is_string($sql)) { + return parent::execute($sql, $data); + } + + $data = array_values($data); + if($sql->param_count) { + if(count($data) < $sql->param_count) { + throw new Exception('Prepared execute - not enough parameters.'); + } + $ref = array(''); + foreach($data as $i => $v) { + switch(gettype($v)) { + case "boolean": + case "integer": + $data[$i] = (int)$v; + $ref[0] .= 'i'; + $ref[$i+1] =& $data[$i]; + break; + case "double": + $ref[0] .= 'd'; + $ref[$i+1] =& $data[$i]; + break; + case "array": + $data[$i] = implode(',',$v); + $ref[0] .= 's'; + $ref[$i+1] =& $data[$i]; + break; + case "object": + case "resource": + $data[$i] = serialize($data[$i]); + $ref[0] .= 's'; + $ref[$i+1] =& $data[$i]; + break; + default: + $ref[0] .= 's'; + $ref[$i+1] =& $data[$i]; + break; + } + } + call_user_func_array(array($sql, 'bind_param'), $ref); + } + $rtrn = $sql->execute(); + if(!$this->mnd) { + $sql->store_result(); + } + if(!$rtrn) { + throw new Exception('Prepared execute error : ' . $this->lnk->error); + } + $this->iid = $this->lnk->insert_id; + $this->aff = $this->lnk->affected_rows; + if(!$this->mnd) { + return $sql->field_count ? $sql : $rtrn; + } + else { + return $sql->field_count ? $sql->get_result() : $rtrn; + } + } + + protected function escape($input) { + if(is_array($input)) { + foreach($input as $k => $v) { + $input[$k] = $this->escape($v); + } + return implode(',',$input); + } + if(is_string($input)) { + $input = $this->lnk->real_escape_string($input); + return "'".$input."'"; + } + if(is_bool($input)) { + return $input === false ? 0 : 1; + } + if(is_null($input)) { + return 'NULL'; + } + return $input; + } + } + + class mysql_driver extends ADriver + { + protected $iid = 0; + protected $aff = 0; + public function __construct($settings) { + parent::__construct($settings); + if(!$this->settings->serverport) { $this->settings->serverport = 3306; } + } + public function connect() { + $this->lnk = ($this->settings->persist) ? + @mysql_pconnect( + $this->settings->servername.':'.$this->settings->serverport, + $this->settings->username, + $this->settings->password + ) : + @mysql_connect( + $this->settings->servername.':'.$this->settings->serverport, + $this->settings->username, + $this->settings->password + ); + + if($this->lnk === false || !mysql_select_db($this->settings->database, $this->lnk) || !mysql_query("SET NAMES '".$this->settings->charset."'", $this->lnk)) { + throw new Exception('Connect error: ' . mysql_error()); + } + if($this->settings->timezone) { + @mysql_query("SET time_zone = '" . addslashes($this->settings->timezone) . "'", $this->lnk); + } + return true; + } + public function disconnect() { + if(is_resource($this->lnk)) { + mysql_close($this->lnk); + } + } + + public function real_query($sql) { + if(!$this->is_connected()) { $this->connect(); } + $temp = mysql_query($sql, $this->lnk); + if(!$temp) { + throw new Exception('Could not execute query : ' . mysql_error($this->lnk) . ' <'.$sql.'>'); + } + $this->iid = mysql_insert_id($this->lnk); + $this->aff = mysql_affected_rows($this->lnk); + return $temp; + } + public function nextr($result) { + return mysql_fetch_array($result, MYSQL_BOTH); + } + public function seek($result, $row) { + $temp = @mysql_data_seek($result, $row); + if(!$temp) { + //throw new Exception('Could not seek : ' . mysql_error($this->lnk)); + } + return $temp; + } + public function nf($result) { + return mysql_num_rows($result); + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + + protected function escape($input) { + if(is_array($input)) { + foreach($input as $k => $v) { + $input[$k] = $this->escape($v); + } + return implode(',',$input); + } + if(is_string($input)) { + $input = mysql_real_escape_string($input, $this->lnk); + return "'".$input."'"; + } + if(is_bool($input)) { + return $input === false ? 0 : 1; + } + if(is_null($input)) { + return 'NULL'; + } + return $input; + } + } + + class postgre_driver extends ADriver + { + protected $iid = 0; + protected $aff = 0; + public function __construct($settings) { + parent::__construct($settings); + if(!$this->settings->serverport) { $this->settings->serverport = 5432; } + } + public function connect() { + $this->lnk = ($this->settings->persist) ? + @pg_pconnect( + "host=" . $this->settings->servername . " " . + "port=" . $this->settings->serverport . " " . + "user=" . $this->settings->username . " " . + "password=" . $this->settings->password . " " . + "dbname=" . $this->settings->database . " " . + "options='--client_encoding=".strtoupper($this->settings->charset)."' " + ) : + @pg_connect( + "host=" . $this->settings->servername . " " . + "port=" . $this->settings->serverport . " " . + "user=" . $this->settings->username . " " . + "password=" . $this->settings->password . " " . + "dbname=" . $this->settings->database . " " . + "options='--client_encoding=".strtoupper($this->settings->charset)."' " + ); + if($this->lnk === false) { + throw new Exception('Connect error'); + } + if($this->settings->timezone) { + @pg_query($this->lnk, "SET TIME ZONE '".addslashes($this->settings->timezone)."'"); + } + return true; + } + public function disconnect() { + if(is_resource($this->lnk)) { + pg_close($this->lnk); + } + } + public function real_query($sql) { + return $this->query($sql); + } + public function prepare($sql) { + if(!$this->is_connected()) { $this->connect(); } + $binder = '?'; + if(strpos($sql, $binder) !== false) { + $tmp = explode($binder, $sql); + $sql = $tmp[0]; + foreach($tmp as $i => $v) { + $sql .= '$' . ($i + 1); + if(isset($tmp[($i + 1)])) { + $sql .= $tmp[($i + 1)]; + } + } + } + return $sql; + } + public function execute($sql, $data = array()) { + if(!$this->is_connected()) { $this->connect(); } + if(!is_array($data)) { $data = array(); } + $temp = (is_array($data) && count($data)) ? pg_query_params($this->lnk, $sql, $data) : pg_query_params($this->lnk, $sql, array()); + if(!$temp) { + throw new Exception('Could not execute query : ' . pg_last_error($this->lnk) . ' <'.$sql.'>'); + } + if(preg_match('@^\s*(INSERT|REPLACE)\s+INTO@i', $sql)) { + $this->iid = pg_query($this->lnk, 'SELECT lastval()'); + $this->aff = pg_affected_rows($temp); + } + return $temp; + } + + public function nextr($result) { + return pg_fetch_array($result, NULL, PGSQL_BOTH); + } + public function seek($result, $row) { + $temp = @pg_result_seek($result, $row); + if(!$temp) { + //throw new Exception('Could not seek : ' . pg_last_error($this->lnk)); + } + return $temp; + } + public function nf($result) { + return pg_num_rows($result); + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + + // Функция mysql_query? + // - http://okbob.blogspot.com/2009/08/mysql-functions-for-postgresql.html + // - http://www.xach.com/aolserver/mysql-to-postgresql.html + // - REPLACE unixtimestamp / limit / curdate + } + + class oracle_driver extends ADriver + { + protected $iid = 0; + protected $aff = 0; + + public function connect() { + $this->lnk = ($this->settings->persist) ? + @oci_pconnect($this->settings->username, $this->settings->password, $this->settings->servername, $this->settings->charset) : + @oci_connect ($this->settings->username, $this->settings->password, $this->settings->servername, $this->settings->charset); + if($this->lnk === false) { + throw new Exception('Connect error : ' . oci_error()); + } + if($this->settings->timezone) { + $this->real_query("ALTER session SET time_zone = '" . addslashes($this->settings->timezone) . "'"); + } + return true; + } + public function disconnect() { + if(is_resource($this->lnk)) { + oci_close($this->lnk); + } + } + public function real_query($sql) { + if(!$this->is_connected()) { $this->connect(); } + $temp = oci_parse($this->lnk, $sql); + if(!$temp || !oci_execute($temp)) { + throw new Exception('Could not execute real query : ' . oci_error($temp)); + } + $this->aff = oci_num_rows($temp); + return $temp; + } + + public function prepare($sql) { + if(!$this->is_connected()) { $this->connect(); } + $binder = '?'; + if(strpos($sql, $binder) !== false && $vars !== false) { + $tmp = explode($this->binder, $sql); + $sql = $tmp[0]; + foreach($tmp as $i => $v) { + $sql .= ':f' . $i; + if(isset($tmp[($i + 1)])) { + $sql .= $tmp[($i + 1)]; + } + } + } + return oci_parse($this->lnk, $sql); + } + public function execute($sql, $data = array()) { + if(!$this->is_connected()) { $this->connect(); } + if(!is_array($data)) { $data = array(); } + $data = array_values($data); + foreach($data as $i => $v) { + switch(gettype($v)) { + case "boolean": + case "integer": + $data[$i] = (int)$v; + oci_bind_by_name($sql, 'f'.$i, $data[$i], SQLT_INT); + break; + case "array": + $data[$i] = implode(',',$v); + oci_bind_by_name($sql, 'f'.$i, $data[$i]); + break; + case "object": + case "resource": + $data[$i] = serialize($data[$i]); + oci_bind_by_name($sql, 'f'.$i, $data[$i]); + break; + default: + oci_bind_by_name($sql, 'f'.$i, $data[$i]); + break; + } + } + $temp = oci_execute($sql); + if(!$temp) { + throw new Exception('Could not execute query : ' . oci_error($sql)); + } + $this->aff = oci_num_rows($sql); + + /* TO DO: get iid + if(!$seqname) { return $this->error('INSERT_ID not supported with no sequence.'); } + $stm = oci_parse($this->link, 'SELECT '.strtoupper(str_replace("'",'',$seqname)).'.CURRVAL FROM DUAL'); + oci_execute($stm, $sql); + $tmp = oci_fetch_array($stm); + $tmp = $tmp[0]; + oci_free_statement($stm); + */ + return $sql; + } + public function nextr($result) { + return oci_fetch_array($result, OCI_BOTH); + } + public function seek($result, $row) { + $cnt = 0; + while($cnt < $row) { + if(oci_fetch_array($result, OCI_BOTH) === false) { + return false; + } + $cnt++; + } + return true; + } + public function nf($result) { + return oci_num_rows($result); + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + } + + class ibase_driver extends ADriver + { + protected $iid = 0; + protected $aff = 0; + public function __construct($settings) { + parent::__construct($settings); + if(!is_file($this->settings->database) && is_file('/'.$this->settings->database)) { + $this->settings->database = '/'.$this->settings->database; + } + $this->settings->servername = ($this->settings->servername === 'localhost' || $this->settings->servername === '127.0.0.1' || $this->settings->servername === '') ? + '' : + $this->settings->servername . ':'; + } + public function connect() { + $this->lnk = ($this->settings->persist) ? + @ibase_pconnect( + $this->settings->servername . $this->settings->database, + $this->settings->username, + $this->settings->password, + strtoupper($this->settings->charset) + ) : + @ibase_connect( + $this->settings->servername . $this->settings->database, + $this->settings->username, + $this->settings->password, + strtoupper($this->settings->charset) + ); + if($this->lnk === false) { + throw new Exception('Connect error: ' . ibase_errmsg()); + } + return true; + } + public function disconnect() { + if(is_resource($this->lnk)) { + ibase_close($this->lnk); + } + } + + public function real_query($sql) { + if(!$this->is_connected()) { $this->connect(); } + $temp = ibase_query($sql, $this->lnk); + if(!$temp) { + throw new Exception('Could not execute query : ' . ibase_errmsg() . ' <'.$sql.'>'); + } + //$this->iid = mysql_insert_id($this->lnk); + $this->aff = ibase_affected_rows($this->lnk); + return $temp; + } + public function prepare($sql) { + if(!$this->is_connected()) { $this->connect(); } + return ibase_prepare($this->lnk, $sql); + } + public function execute($sql, $data = array()) { + if(!$this->is_connected()) { $this->connect(); } + if(!is_array($data)) { $data = array(); } + $data = array_values($data); + foreach($data as $i => $v) { + switch(gettype($v)) { + case "boolean": + case "integer": + $data[$i] = (int)$v; + break; + case "array": + $data[$i] = implode(',',$v); + break; + case "object": + case "resource": + $data[$i] = serialize($data[$i]); + break; + } + } + array_unshift($data, $sql); + $temp = call_user_func_array("ibase_execute", $data); + if(!$temp) { + throw new Exception('Could not execute query : ' . ibase_errmsg() . ' <'.$sql.'>'); + } + $this->aff = ibase_affected_rows($this->lnk); + return $temp; + } + public function nextr($result) { + return ibase_fetch_assoc($result, IBASE_TEXT); + } + public function seek($result, $row) { + return false; + } + public function nf($result) { + return false; + } + public function af() { + return $this->aff; + } + public function insert_id() { + return $this->iid; + } + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.tree.php b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.tree.php new file mode 100644 index 0000000000..94731d4b2a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/class.tree.php @@ -0,0 +1,986 @@ + 'structure', // the structure table (containing the id, left, right, level, parent_id and position fields) + 'data_table' => 'structure', // table for additional fields (apart from structure ones, can be the same as structure_table) + 'data2structure' => 'id', // which field from the data table maps to the structure table + 'structure' => array( // which field (value) maps to what in the structure (key) + 'id' => 'id', + 'left' => 'lft', + 'right' => 'rgt', + 'level' => 'lvl', + 'parent_id' => 'pid', + 'position' => 'pos' + ), + 'data' => array() // array of additional fields from the data table + ); + + public function __construct(\vakata\database\IDB $db, array $options = array()) { + $this->db = $db; + $this->options = array_merge($this->default, $options); + } + + public function get_node($id, $options = array()) { + $node = $this->db->one(" + SELECT + s.".implode(", s.", $this->options['structure']).", + d.".implode(", d.", $this->options['data'])." + FROM + ".$this->options['structure_table']." s, + ".$this->options['data_table']." d + WHERE + s.".$this->options['structure']['id']." = d.".$this->options['data2structure']." AND + s.".$this->options['structure']['id']." = ".(int)$id + ); + if(!$node) { + throw new Exception('Node does not exist'); + } + if(isset($options['with_children'])) { + $node['children'] = $this->get_children($id, isset($options['deep_children'])); + } + if(isset($options['with_path'])) { + $node['path'] = $this->get_path($id); + } + return $node; + } + + public function get_children($id, $recursive = false) { + $sql = false; + if($recursive) { + $node = $this->get_node($id); + $sql = " + SELECT + s.".implode(", s.", $this->options['structure']).", + d.".implode(", d.", $this->options['data'])." + FROM + ".$this->options['structure_table']." s, + ".$this->options['data_table']." d + WHERE + s.".$this->options['structure']['id']." = d.".$this->options['data2structure']." AND + s.".$this->options['structure']['left']." > ".(int)$node[$this->options['structure']['left']]." AND + s.".$this->options['structure']['right']." < ".(int)$node[$this->options['structure']['right']]." + ORDER BY + s.".$this->options['structure']['left']." + "; + } + else { + $sql = " + SELECT + s.".implode(", s.", $this->options['structure']).", + d.".implode(", d.", $this->options['data'])." + FROM + ".$this->options['structure_table']." s, + ".$this->options['data_table']." d + WHERE + s.".$this->options['structure']['id']." = d.".$this->options['data2structure']." AND + s.".$this->options['structure']['parent_id']." = ".(int)$id." + ORDER BY + s.".$this->options['structure']['position']." + "; + } + return $this->db->all($sql); + } + + public function get_path($id) { + $node = $this->get_node($id); + $sql = false; + if($node) { + $sql = " + SELECT + s.".implode(", s.", $this->options['structure']).", + d.".implode(", d.", $this->options['data'])." + FROM + ".$this->options['structure_table']." s, + ".$this->options['data_table']." d + WHERE + s.".$this->options['structure']['id']." = d.".$this->options['data2structure']." AND + s.".$this->options['structure']['left']." < ".(int)$node[$this->options['structure']['left']]." AND + s.".$this->options['structure']['right']." > ".(int)$node[$this->options['structure']['right']]." + ORDER BY + s.".$this->options['structure']['left']." + "; + } + return $sql ? $this->db->all($sql) : false; + } + + public function mk($parent, $position = 0, $data = array()) { + $parent = (int)$parent; + if($parent == 0) { throw new Exception('Parent is 0'); } + $parent = $this->get_node($parent, array('with_children'=> true)); + if(!$parent['children']) { $position = 0; } + if($parent['children'] && $position >= count($parent['children'])) { $position = count($parent['children']); } + + $sql = array(); + $par = array(); + + // PREPARE NEW PARENT + // update positions of all next elements + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$this->options['structure']["position"]." + 1 + WHERE + ".$this->options['structure']["parent_id"]." = ".(int)$parent[$this->options['structure']['id']]." AND + ".$this->options['structure']["position"]." >= ".$position." + "; + $par[] = false; + + // update left indexes + $ref_lft = false; + if(!$parent['children']) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else { + $ref_lft = $parent['children'][(int)$position][$this->options['structure']["left"]]; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." + 2 + WHERE + ".$this->options['structure']["left"]." >= ".(int)$ref_lft." + "; + $par[] = false; + + // update right indexes + $ref_rgt = false; + if(!$parent['children']) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else { + $ref_rgt = $parent['children'][(int)$position][$this->options['structure']["left"]] + 1; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." + 2 + WHERE + ".$this->options['structure']["right"]." >= ".(int)$ref_rgt." + "; + $par[] = false; + + // INSERT NEW NODE IN STRUCTURE + $sql[] = "INSERT INTO ".$this->options['structure_table']." (".implode(",", $this->options['structure']).") VALUES (?".str_repeat(',?', count($this->options['structure']) - 1).")"; + $tmp = array(); + foreach($this->options['structure'] as $k => $v) { + switch($k) { + case 'id': + $tmp[] = null; + break; + case 'left': + $tmp[] = (int)$ref_lft; + break; + case 'right': + $tmp[] = (int)$ref_lft + 1; + break; + case 'level': + $tmp[] = (int)$parent[$v] + 1; + break; + case 'parent_id': + $tmp[] = $parent[$this->options['structure']['id']]; + break; + case 'position': + $tmp[] = $position; + break; + default: + $tmp[] = null; + } + } + $par[] = $tmp; + + foreach($sql as $k => $v) { + try { + $this->db->query($v, $par[$k]); + } catch(Exception $e) { + $this->reconstruct(); + throw new Exception('Could not create'); + } + } + if($data && count($data)) { + $node = $this->db->insert_id(); + if(!$this->rn($node,$data)) { + $this->rm($node); + throw new Exception('Could not rename after create'); + } + } + return $node; + } + + public function mv($id, $parent, $position = 0) { + $id = (int)$id; + $parent = (int)$parent; + if($parent == 0 || $id == 0 || $id == 1) { + throw new Exception('Cannot move inside 0, or move root node'); + } + + $parent = $this->get_node($parent, array('with_children'=> true, 'with_path' => true)); + $id = $this->get_node($id, array('with_children'=> true, 'deep_children' => true, 'with_path' => true)); + if(!$parent['children']) { + $position = 0; + } + if($id[$this->options['structure']['parent_id']] == $parent[$this->options['structure']['id']] && $position > $id[$this->options['structure']['position']]) { + $position ++; + } + if($parent['children'] && $position >= count($parent['children'])) { + $position = count($parent['children']); + } + if($id[$this->options['structure']['left']] < $parent[$this->options['structure']['left']] && $id[$this->options['structure']['right']] > $parent[$this->options['structure']['right']]) { + throw new Exception('Could not move parent inside child'); + } + + $tmp = array(); + $tmp[] = (int)$id[$this->options['structure']["id"]]; + if($id['children'] && is_array($id['children'])) { + foreach($id['children'] as $c) { + $tmp[] = (int)$c[$this->options['structure']["id"]]; + } + } + $width = (int)$id[$this->options['structure']["right"]] - (int)$id[$this->options['structure']["left"]] + 1; + + $sql = array(); + + // PREPARE NEW PARENT + // update positions of all next elements + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$this->options['structure']["position"]." + 1 + WHERE + ".$this->options['structure']["id"]." != ".(int)$id[$this->options['structure']['id']]." AND + ".$this->options['structure']["parent_id"]." = ".(int)$parent[$this->options['structure']['id']]." AND + ".$this->options['structure']["position"]." >= ".$position." + "; + + // update left indexes + $ref_lft = false; + if(!$parent['children']) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else { + $ref_lft = $parent['children'][(int)$position][$this->options['structure']["left"]]; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." + ".$width." + WHERE + ".$this->options['structure']["left"]." >= ".(int)$ref_lft." AND + ".$this->options['structure']["id"]." NOT IN(".implode(',',$tmp).") + "; + // update right indexes + $ref_rgt = false; + if(!$parent['children']) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else { + $ref_rgt = $parent['children'][(int)$position][$this->options['structure']["left"]] + 1; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." + ".$width." + WHERE + ".$this->options['structure']["right"]." >= ".(int)$ref_rgt." AND + ".$this->options['structure']["id"]." NOT IN(".implode(',',$tmp).") + "; + + // MOVE THE ELEMENT AND CHILDREN + // left, right and level + $diff = $ref_lft - (int)$id[$this->options['structure']["left"]]; + + if($diff > 0) { $diff = $diff - $width; } + $ldiff = ((int)$parent[$this->options['structure']['level']] + 1) - (int)$id[$this->options['structure']['level']]; + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." + ".$diff.", + ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." + ".$diff.", + ".$this->options['structure']["level"]." = ".$this->options['structure']["level"]." + ".$ldiff." + WHERE ".$this->options['structure']["id"]." IN(".implode(',',$tmp).") + "; + // position and parent_id + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$position.", + ".$this->options['structure']["parent_id"]." = ".(int)$parent[$this->options['structure']["id"]]." + WHERE ".$this->options['structure']["id"]." = ".(int)$id[$this->options['structure']['id']]." + "; + + // CLEAN OLD PARENT + // position of all next elements + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$this->options['structure']["position"]." - 1 + WHERE + ".$this->options['structure']["parent_id"]." = ".(int)$id[$this->options['structure']["parent_id"]]." AND + ".$this->options['structure']["position"]." > ".(int)$id[$this->options['structure']["position"]]; + // left indexes + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." - ".$width." + WHERE + ".$this->options['structure']["left"]." > ".(int)$id[$this->options['structure']["right"]]." AND + ".$this->options['structure']["id"]." NOT IN(".implode(',',$tmp).") + "; + // right indexes + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." - ".$width." + WHERE + ".$this->options['structure']["right"]." > ".(int)$id[$this->options['structure']["right"]]." AND + ".$this->options['structure']["id"]." NOT IN(".implode(',',$tmp).") + "; + + foreach($sql as $k => $v) { + //echo preg_replace('@[\s\t]+@',' ',$v) ."\n"; + try { + $this->db->query($v); + } catch(Exception $e) { + $this->reconstruct(); + throw new Exception('Error moving'); + } + } + return true; + } + + public function cp($id, $parent, $position = 0) { + $id = (int)$id; + $parent = (int)$parent; + if($parent == 0 || $id == 0 || $id == 1) { + throw new Exception('Could not copy inside parent 0, or copy root nodes'); + } + + $parent = $this->get_node($parent, array('with_children'=> true, 'with_path' => true)); + $id = $this->get_node($id, array('with_children'=> true, 'deep_children' => true, 'with_path' => true)); + $old_nodes = $this->db->get(" + SELECT * FROM ".$this->options['structure_table']." + WHERE ".$this->options['structure']["left"]." > ".$id[$this->options['structure']["left"]]." AND ".$this->options['structure']["right"]." < ".$id[$this->options['structure']["right"]]." + ORDER BY ".$this->options['structure']["left"]." + "); + if(!$parent['children']) { + $position = 0; + } + if($id[$this->options['structure']['parent_id']] == $parent[$this->options['structure']['id']] && $position > $id[$this->options['structure']['position']]) { + //$position ++; + } + if($parent['children'] && $position >= count($parent['children'])) { + $position = count($parent['children']); + } + + $tmp = array(); + $tmp[] = (int)$id[$this->options['structure']["id"]]; + if($id['children'] && is_array($id['children'])) { + foreach($id['children'] as $c) { + $tmp[] = (int)$c[$this->options['structure']["id"]]; + } + } + $width = (int)$id[$this->options['structure']["right"]] - (int)$id[$this->options['structure']["left"]] + 1; + + $sql = array(); + + // PREPARE NEW PARENT + // update positions of all next elements + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$this->options['structure']["position"]." + 1 + WHERE + ".$this->options['structure']["parent_id"]." = ".(int)$parent[$this->options['structure']['id']]." AND + ".$this->options['structure']["position"]." >= ".$position." + "; + + // update left indexes + $ref_lft = false; + if(!$parent['children']) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_lft = $parent[$this->options['structure']["right"]]; + } + else { + $ref_lft = $parent['children'][(int)$position][$this->options['structure']["left"]]; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." + ".$width." + WHERE + ".$this->options['structure']["left"]." >= ".(int)$ref_lft." + "; + // update right indexes + $ref_rgt = false; + if(!$parent['children']) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else if(!isset($parent['children'][$position])) { + $ref_rgt = $parent[$this->options['structure']["right"]]; + } + else { + $ref_rgt = $parent['children'][(int)$position][$this->options['structure']["left"]] + 1; + } + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." + ".$width." + WHERE + ".$this->options['structure']["right"]." >= ".(int)$ref_rgt." + "; + + // MOVE THE ELEMENT AND CHILDREN + // left, right and level + $diff = $ref_lft - (int)$id[$this->options['structure']["left"]]; + + if($diff <= 0) { $diff = $diff - $width; } + $ldiff = ((int)$parent[$this->options['structure']['level']] + 1) - (int)$id[$this->options['structure']['level']]; + + // build all fields + data table + $fields = array_combine($this->options['structure'], $this->options['structure']); + unset($fields['id']); + $fields[$this->options['structure']["left"]] = $this->options['structure']["left"]." + ".$diff; + $fields[$this->options['structure']["right"]] = $this->options['structure']["right"]." + ".$diff; + $fields[$this->options['structure']["level"]] = $this->options['structure']["level"]." + ".$ldiff; + $sql[] = " + INSERT INTO ".$this->options['structure_table']." ( ".implode(',',array_keys($fields))." ) + SELECT ".implode(',',array_values($fields))." FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']["id"]." IN (".implode(",", $tmp).") + ORDER BY ".$this->options['structure']["level"]." ASC"; + + foreach($sql as $k => $v) { + try { + $this->db->query($v); + } catch(Exception $e) { + $this->reconstruct(); + throw new Exception('Error copying'); + } + } + $iid = (int)$this->db->insert_id(); + + try { + $this->db->query(" + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$position.", + ".$this->options['structure']["parent_id"]." = ".(int)$parent[$this->options['structure']["id"]]." + WHERE ".$this->options['structure']["id"]." = ".$iid." + "); + } catch(Exception $e) { + $this->rm($iid); + $this->reconstruct(); + throw new Exception('Could not update adjacency after copy'); + } + $fields = $this->options['data']; + unset($fields['id']); + $update_fields = array(); + foreach($fields as $f) { + $update_fields[] = $f.'=VALUES('.$f.')'; + } + $update_fields = implode(',', $update_fields); + if(count($fields)) { + try { + $this->db->query(" + INSERT INTO ".$this->options['data_table']." (".$this->options['data2structure'].",".implode(",",$fields).") + SELECT ".$iid.",".implode(",",$fields)." FROM ".$this->options['data_table']." WHERE ".$this->options['data2structure']." = ".$id[$this->options['data2structure']]." + ON DUPLICATE KEY UPDATE ".$update_fields." + "); + } + catch(Exception $e) { + $this->rm($iid); + $this->reconstruct(); + throw new Exception('Could not update data after copy'); + } + } + + // manually fix all parent_ids and copy all data + $new_nodes = $this->db->get(" + SELECT * FROM ".$this->options['structure_table']." + WHERE ".$this->options['structure']["left"]." > ".$ref_lft." AND ".$this->options['structure']["right"]." < ".($ref_lft + $width - 1)." AND ".$this->options['structure']["id"]." != ".$iid." + ORDER BY ".$this->options['structure']["left"]." + "); + $parents = array(); + foreach($new_nodes as $node) { + if(!isset($parents[$node[$this->options['structure']["left"]]])) { $parents[$node[$this->options['structure']["left"]]] = $iid; } + for($i = $node[$this->options['structure']["left"]] + 1; $i < $node[$this->options['structure']["right"]]; $i++) { + $parents[$i] = $node[$this->options['structure']["id"]]; + } + } + $sql = array(); + foreach($new_nodes as $k => $node) { + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["parent_id"]." = ".$parents[$node[$this->options['structure']["left"]]]." + WHERE ".$this->options['structure']["id"]." = ".(int)$node[$this->options['structure']["id"]]." + "; + if(count($fields)) { + $up = ""; + foreach($fields as $f) + $sql[] = " + INSERT INTO ".$this->options['data_table']." (".$this->options['data2structure'].",".implode(",",$fields).") + SELECT ".(int)$node[$this->options['structure']["id"]].",".implode(",",$fields)." FROM ".$this->options['data_table']." + WHERE ".$this->options['data2structure']." = ".$old_nodes[$k][$this->options['structure']['id']]." + ON DUPLICATE KEY UPDATE ".$update_fields." + "; + } + } + //var_dump($sql); + foreach($sql as $k => $v) { + try { + $this->db->query($v); + } catch(Exception $e) { + $this->rm($iid); + $this->reconstruct(); + throw new Exception('Error copying'); + } + } + return $iid; + } + + public function rm($id) { + $id = (int)$id; + if(!$id || $id === 1) { throw new Exception('Could not create inside roots'); } + $data = $this->get_node($id, array('with_children' => true, 'deep_children' => true)); + $lft = (int)$data[$this->options['structure']["left"]]; + $rgt = (int)$data[$this->options['structure']["right"]]; + $pid = (int)$data[$this->options['structure']["parent_id"]]; + $pos = (int)$data[$this->options['structure']["position"]]; + $dif = $rgt - $lft + 1; + + $sql = array(); + // deleting node and its children from structure + $sql[] = " + DELETE FROM ".$this->options['structure_table']." + WHERE ".$this->options['structure']["left"]." >= ".(int)$lft." AND ".$this->options['structure']["right"]." <= ".(int)$rgt." + "; + // shift left indexes of nodes right of the node + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["left"]." = ".$this->options['structure']["left"]." - ".(int)$dif." + WHERE ".$this->options['structure']["left"]." > ".(int)$rgt." + "; + // shift right indexes of nodes right of the node and the node's parents + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["right"]." = ".$this->options['structure']["right"]." - ".(int)$dif." + WHERE ".$this->options['structure']["right"]." > ".(int)$lft." + "; + // Update position of siblings below the deleted node + $sql[] = " + UPDATE ".$this->options['structure_table']." + SET ".$this->options['structure']["position"]." = ".$this->options['structure']["position"]." - 1 + WHERE ".$this->options['structure']["parent_id"]." = ".$pid." AND ".$this->options['structure']["position"]." > ".(int)$pos." + "; + // delete from data table + if($this->options['data_table']) { + $tmp = array(); + $tmp[] = (int)$data['id']; + if($data['children'] && is_array($data['children'])) { + foreach($data['children'] as $v) { + $tmp[] = (int)$v['id']; + } + } + $sql[] = "DELETE FROM ".$this->options['data_table']." WHERE ".$this->options['data2structure']." IN (".implode(',',$tmp).")"; + } + + foreach($sql as $v) { + try { + $this->db->query($v); + } catch(Exception $e) { + $this->reconstruct(); + throw new Exception('Could not remove'); + } + } + return true; + } + + public function rn($id, $data) { + if(!(int)$this->db->one('SELECT 1 AS res FROM '.$this->options['structure_table'].' WHERE '.$this->options['structure']['id'].' = '.(int)$id)) { + throw new Exception('Could not rename non-existing node'); + } + $tmp = array(); + foreach($this->options['data'] as $v) { + if(isset($data[$v])) { + $tmp[$v] = $data[$v]; + } + } + if(count($tmp)) { + $tmp[$this->options['data2structure']] = $id; + $sql = " + INSERT INTO + ".$this->options['data_table']." (".implode(',', array_keys($tmp)).") + VALUES(?".str_repeat(',?', count($tmp) - 1).") + ON DUPLICATE KEY UPDATE + ".implode(' = ?, ', array_keys($tmp))." = ?"; + $par = array_merge(array_values($tmp), array_values($tmp)); + try { + $this->db->query($sql, $par); + } + catch(Exception $e) { + throw new Exception('Could not rename'); + } + } + return true; + } + + public function analyze($get_errors = false) { + $report = array(); + if((int)$this->db->one("SELECT COUNT(".$this->options['structure']["id"].") AS res FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']["parent_id"]." = 0") !== 1) { + $report[] = "No or more than one root node."; + } + if((int)$this->db->one("SELECT ".$this->options['structure']["left"]." AS res FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']["parent_id"]." = 0") !== 1) { + $report[] = "Root node's left index is not 1."; + } + if((int)$this->db->one(" + SELECT + COUNT(".$this->options['structure']['id'].") AS res + FROM ".$this->options['structure_table']." s + WHERE + ".$this->options['structure']["parent_id"]." != 0 AND + (SELECT COUNT(".$this->options['structure']['id'].") FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']["id"]." = s.".$this->options['structure']["parent_id"].") = 0") > 0 + ) { + $report[] = "Missing parents."; + } + if( + (int)$this->db->one("SELECT MAX(".$this->options['structure']["right"].") AS res FROM ".$this->options['structure_table']) / 2 != + (int)$this->db->one("SELECT COUNT(".$this->options['structure']["id"].") AS res FROM ".$this->options['structure_table']) + ) { + $report[] = "Right index does not match node count."; + } + if( + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["right"].") AS res FROM ".$this->options['structure_table']) != + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["left"].") AS res FROM ".$this->options['structure_table']) + ) { + $report[] = "Duplicates in nested set."; + } + if( + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["id"].") AS res FROM ".$this->options['structure_table']) != + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["left"].") AS res FROM ".$this->options['structure_table']) + ) { + $report[] = "Left indexes not unique."; + } + if( + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["id"].") AS res FROM ".$this->options['structure_table']) != + (int)$this->db->one("SELECT COUNT(DISTINCT ".$this->options['structure']["right"].") AS res FROM ".$this->options['structure_table']) + ) { + $report[] = "Right indexes not unique."; + } + if( + (int)$this->db->one(" + SELECT + s1.".$this->options['structure']["id"]." AS res + FROM ".$this->options['structure_table']." s1, ".$this->options['structure_table']." s2 + WHERE + s1.".$this->options['structure']['id']." != s2.".$this->options['structure']['id']." AND + s1.".$this->options['structure']['left']." = s2.".$this->options['structure']['right']." + LIMIT 1") + ) { + $report[] = "Nested set - matching left and right indexes."; + } + if( + (int)$this->db->one(" + SELECT + ".$this->options['structure']["id"]." AS res + FROM ".$this->options['structure_table']." s + WHERE + ".$this->options['structure']['position']." >= ( + SELECT + COUNT(".$this->options['structure']["id"].") + FROM ".$this->options['structure_table']." + WHERE ".$this->options['structure']['parent_id']." = s.".$this->options['structure']['parent_id']." + ) + LIMIT 1") || + (int)$this->db->one(" + SELECT + s1.".$this->options['structure']["id"]." AS res + FROM ".$this->options['structure_table']." s1, ".$this->options['structure_table']." s2 + WHERE + s1.".$this->options['structure']['id']." != s2.".$this->options['structure']['id']." AND + s1.".$this->options['structure']['parent_id']." = s2.".$this->options['structure']['parent_id']." AND + s1.".$this->options['structure']['position']." = s2.".$this->options['structure']['position']." + LIMIT 1") + ) { + $report[] = "Positions not correct."; + } + if((int)$this->db->one(" + SELECT + COUNT(".$this->options['structure']["id"].") FROM ".$this->options['structure_table']." s + WHERE + ( + SELECT + COUNT(".$this->options['structure']["id"].") + FROM ".$this->options['structure_table']." + WHERE + ".$this->options['structure']["right"]." < s.".$this->options['structure']["right"]." AND + ".$this->options['structure']["left"]." > s.".$this->options['structure']["left"]." AND + ".$this->options['structure']["level"]." = s.".$this->options['structure']["level"]." + 1 + ) != + ( + SELECT + COUNT(*) + FROM ".$this->options['structure_table']." + WHERE + ".$this->options['structure']["parent_id"]." = s.".$this->options['structure']["id"]." + )") + ) { + $report[] = "Adjacency and nested set do not match."; + } + if( + $this->options['data_table'] && + (int)$this->db->one(" + SELECT + COUNT(".$this->options['structure']["id"].") AS res + FROM ".$this->options['structure_table']." s + WHERE + (SELECT COUNT(".$this->options['data2structure'].") FROM ".$this->options['data_table']." WHERE ".$this->options['data2structure']." = s.".$this->options['structure']["id"].") = 0 + ") + ) { + $report[] = "Missing records in data table."; + } + if( + $this->options['data_table'] && + (int)$this->db->one(" + SELECT + COUNT(".$this->options['data2structure'].") AS res + FROM ".$this->options['data_table']." s + WHERE + (SELECT COUNT(".$this->options['structure']["id"].") FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']["id"]." = s.".$this->options['data2structure'].") = 0 + ") + ) { + $report[] = "Dangling records in data table."; + } + return $get_errors ? $report : count($report) == 0; + } + + public function reconstruct($analyze = true) { + if($analyze && $this->analyze()) { return true; } + + if(!$this->db->query("" . + "CREATE TEMPORARY TABLE temp_tree (" . + "".$this->options['structure']["id"]." INTEGER NOT NULL, " . + "".$this->options['structure']["parent_id"]." INTEGER NOT NULL, " . + "". $this->options['structure']["position"]." INTEGER NOT NULL" . + ") " + )) { return false; } + if(!$this->db->query("" . + "INSERT INTO temp_tree " . + "SELECT " . + "".$this->options['structure']["id"].", " . + "".$this->options['structure']["parent_id"].", " . + "".$this->options['structure']["position"]." " . + "FROM ".$this->options['structure_table']."" + )) { return false; } + + if(!$this->db->query("" . + "CREATE TEMPORARY TABLE temp_stack (" . + "".$this->options['structure']["id"]." INTEGER NOT NULL, " . + "".$this->options['structure']["left"]." INTEGER, " . + "".$this->options['structure']["right"]." INTEGER, " . + "".$this->options['structure']["level"]." INTEGER, " . + "stack_top INTEGER NOT NULL, " . + "".$this->options['structure']["parent_id"]." INTEGER, " . + "".$this->options['structure']["position"]." INTEGER " . + ") " + )) { return false; } + + $counter = 2; + if(!$this->db->query("SELECT COUNT(*) FROM temp_tree")) { + return false; + } + $this->db->nextr(); + $maxcounter = (int) $this->db->f(0) * 2; + $currenttop = 1; + if(!$this->db->query("" . + "INSERT INTO temp_stack " . + "SELECT " . + "".$this->options['structure']["id"].", " . + "1, " . + "NULL, " . + "0, " . + "1, " . + "".$this->options['structure']["parent_id"].", " . + "".$this->options['structure']["position"]." " . + "FROM temp_tree " . + "WHERE ".$this->options['structure']["parent_id"]." = 0" + )) { return false; } + if(!$this->db->query("DELETE FROM temp_tree WHERE ".$this->options['structure']["parent_id"]." = 0")) { + return false; + } + + while ($counter <= $maxcounter) { + if(!$this->db->query("" . + "SELECT " . + "temp_tree.".$this->options['structure']["id"]." AS tempmin, " . + "temp_tree.".$this->options['structure']["parent_id"]." AS pid, " . + "temp_tree.".$this->options['structure']["position"]." AS lid " . + "FROM temp_stack, temp_tree " . + "WHERE " . + "temp_stack.".$this->options['structure']["id"]." = temp_tree.".$this->options['structure']["parent_id"]." AND " . + "temp_stack.stack_top = ".$currenttop." " . + "ORDER BY temp_tree.".$this->options['structure']["position"]." ASC LIMIT 1" + )) { return false; } + + if($this->db->nextr()) { + $tmp = $this->db->f("tempmin"); + + $q = "INSERT INTO temp_stack (stack_top, ".$this->options['structure']["id"].", ".$this->options['structure']["left"].", ".$this->options['structure']["right"].", ".$this->options['structure']["level"].", ".$this->options['structure']["parent_id"].", ".$this->options['structure']["position"].") VALUES(".($currenttop + 1).", ".$tmp.", ".$counter.", NULL, ".$currenttop.", ".$this->db->f("pid").", ".$this->db->f("lid").")"; + if(!$this->db->query($q)) { + return false; + } + if(!$this->db->query("DELETE FROM temp_tree WHERE ".$this->options['structure']["id"]." = ".$tmp)) { + return false; + } + $counter++; + $currenttop++; + } + else { + if(!$this->db->query("" . + "UPDATE temp_stack SET " . + "".$this->options['structure']["right"]." = ".$counter.", " . + "stack_top = -stack_top " . + "WHERE stack_top = ".$currenttop + )) { return false; } + $counter++; + $currenttop--; + } + } + + $temp_fields = $this->options['structure']; + unset($temp_fields["parent_id"]); + unset($temp_fields["position"]); + unset($temp_fields["left"]); + unset($temp_fields["right"]); + unset($temp_fields["level"]); + if(count($temp_fields) > 1) { + if(!$this->db->query("" . + "CREATE TEMPORARY TABLE temp_tree2 " . + "SELECT ".implode(", ", $temp_fields)." FROM ".$this->options['structure_table']." " + )) { return false; } + } + if(!$this->db->query("TRUNCATE TABLE ".$this->options['structure_table']."")) { + return false; + } + if(!$this->db->query("" . + "INSERT INTO ".$this->options['structure_table']." (" . + "".$this->options['structure']["id"].", " . + "".$this->options['structure']["parent_id"].", " . + "".$this->options['structure']["position"].", " . + "".$this->options['structure']["left"].", " . + "".$this->options['structure']["right"].", " . + "".$this->options['structure']["level"]." " . + ") " . + "SELECT " . + "".$this->options['structure']["id"].", " . + "".$this->options['structure']["parent_id"].", " . + "".$this->options['structure']["position"].", " . + "".$this->options['structure']["left"].", " . + "".$this->options['structure']["right"].", " . + "".$this->options['structure']["level"]." " . + "FROM temp_stack " . + "ORDER BY ".$this->options['structure']["id"]."" + )) { + return false; + } + if(count($temp_fields) > 1) { + $sql = "" . + "UPDATE ".$this->options['structure_table']." v, temp_tree2 SET v.".$this->options['structure']["id"]." = v.".$this->options['structure']["id"]." "; + foreach($temp_fields as $k => $v) { + if($k == "id") continue; + $sql .= ", v.".$v." = temp_tree2.".$v." "; + } + $sql .= " WHERE v.".$this->options['structure']["id"]." = temp_tree2.".$this->options['structure']["id"]." "; + if(!$this->db->query($sql)) { + return false; + } + } + // fix positions + $nodes = $this->db->get("SELECT ".$this->options['structure']['id'].", ".$this->options['structure']['parent_id']." FROM ".$this->options['structure_table']." ORDER BY ".$this->options['structure']['parent_id'].", ".$this->options['structure']['position']); + $last_parent = false; + $last_position = false; + foreach($nodes as $node) { + if((int)$node[$this->options['structure']['parent_id']] !== $last_parent) { + $last_position = 0; + $last_parent = (int)$node[$this->options['structure']['parent_id']]; + } + $this->db->query("UPDATE ".$this->options['structure_table']." SET ".$this->options['structure']['position']." = ".$last_position." WHERE ".$this->options['structure']['id']." = ".(int)$node[$this->options['structure']['id']]); + $last_position++; + } + if($this->options['data_table'] != $this->options['structure_table']) { + // fix missing data records + $this->db->query(" + INSERT INTO + ".$this->options['data_table']." (".implode(',',$this->options['data']).") + SELECT ".$this->options['structure']['id']." ".str_repeat(", ".$this->options['structure']['id'], count($this->options['data']) - 1)." + FROM ".$this->options['structure_table']." s + WHERE (SELECT COUNT(".$this->options['data2structure'].") FROM ".$this->options['data_table']." WHERE ".$this->options['data2structure']." = s.".$this->options['structure']['id'].") = 0 " + ); + // remove dangling data records + $this->db->query(" + DELETE FROM + ".$this->options['data_table']." + WHERE + (SELECT COUNT(".$this->options['structure']['id'].") FROM ".$this->options['structure_table']." WHERE ".$this->options['structure']['id']." = ".$this->options['data_table'].".".$this->options['data2structure'].") = 0 + "); + } + return true; + } + + public function res($data = array()) { + if(!$this->db->query("TRUNCATE TABLE ".$this->options['structure_table'])) { return false; } + if(!$this->db->query("TRUNCATE TABLE ".$this->options['data_table'])) { return false; } + $sql = "INSERT INTO ".$this->options['structure_table']." (".implode(",", $this->options['structure']).") VALUES (?".str_repeat(',?', count($this->options['structure']) - 1).")"; + $par = array(); + foreach($this->options['structure'] as $k => $v) { + switch($k) { + case 'id': + $par[] = null; + break; + case 'left': + $par[] = 1; + break; + case 'right': + $par[] = 2; + break; + case 'level': + $par[] = 0; + break; + case 'parent_id': + $par[] = 0; + break; + case 'position': + $par[] = 0; + break; + default: + $par[] = null; + } + } + if(!$this->db->query($sql, $par)) { return false; } + $id = $this->db->insert_id(); + foreach($this->options['structure'] as $k => $v) { + if(!isset($data[$k])) { $data[$k] = null; } + } + return $this->rn($id, $data); + } + + public function dump() { + $nodes = $this->db->get(" + SELECT + s.".implode(", s.", $this->options['structure']).", + d.".implode(", d.", $this->options['data'])." + FROM + ".$this->options['structure_table']." s, + ".$this->options['data_table']." d + WHERE + s.".$this->options['structure']['id']." = d.".$this->options['data2structure']." + ORDER BY ".$this->options['structure']["left"] + ); + echo "\n\n"; + foreach($nodes as $node) { + echo str_repeat(" ",(int)$node[$this->options['structure']["level"]] * 2); + echo $node[$this->options['structure']["id"]]." ".$node["nm"]." (".$node[$this->options['structure']["left"]].",".$node[$this->options['structure']["right"]].",".$node[$this->options['structure']["level"]].",".$node[$this->options['structure']["parent_id"]].",".$node[$this->options['structure']["position"]].")" . "\n"; + } + echo str_repeat("-",40); + echo "\n\n"; + } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/data.sql b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/data.sql new file mode 100644 index 0000000000..d906ffa880 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/data.sql @@ -0,0 +1,91 @@ +-- phpMyAdmin SQL Dump +-- version 4.0.1 +-- http://www.phpmyadmin.net +-- +-- Host: 127.0.0.1 +-- Generation Time: Apr 15, 2014 at 05:14 PM +-- Server version: 5.5.27 +-- PHP Version: 5.4.7 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + +-- +-- Database: `test` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `tree_data` +-- + +CREATE TABLE IF NOT EXISTS `tree_data` ( + `id` int(10) unsigned NOT NULL, + `nm` varchar(255) CHARACTER SET utf8 NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `tree_data` +-- + +INSERT INTO `tree_data` (`id`, `nm`) VALUES +(1, 'root'), +(1063, 'Node 12'), +(1064, 'Node 2'), +(1065, 'Node 3'), +(1066, 'Node 4'), +(1067, 'Node 5'), +(1068, 'Node 6'), +(1069, 'Node 7'), +(1070, 'Node 8'), +(1071, 'Node 9'), +(1072, 'Node 9'), +(1073, 'Node 9'), +(1074, 'Node 9'), +(1075, 'Node 7'), +(1076, 'Node 8'), +(1077, 'Node 9'), +(1078, 'Node 9'), +(1079, 'Node 9'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `tree_struct` +-- + +CREATE TABLE IF NOT EXISTS `tree_struct` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `lft` int(10) unsigned NOT NULL, + `rgt` int(10) unsigned NOT NULL, + `lvl` int(10) unsigned NOT NULL, + `pid` int(10) unsigned NOT NULL, + `pos` int(10) unsigned NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1083 ; + +-- +-- Dumping data for table `tree_struct` +-- + +INSERT INTO `tree_struct` (`id`, `lft`, `rgt`, `lvl`, `pid`, `pos`) VALUES +(1, 1, 36, 0, 0, 0), +(1063, 2, 31, 1, 1, 0), +(1064, 3, 30, 2, 1063, 0), +(1065, 4, 29, 3, 1064, 0), +(1066, 5, 28, 4, 1065, 0), +(1067, 6, 19, 5, 1066, 0), +(1068, 7, 18, 6, 1067, 0), +(1069, 8, 17, 7, 1068, 0), +(1070, 9, 16, 8, 1069, 0), +(1071, 12, 13, 9, 1070, 1), +(1072, 14, 15, 9, 1070, 2), +(1073, 10, 11, 9, 1070, 0), +(1074, 32, 35, 1, 1, 1), +(1075, 20, 27, 5, 1066, 1), +(1076, 21, 26, 6, 1075, 0), +(1077, 24, 25, 7, 1076, 1), +(1078, 33, 34, 2, 1074, 0), +(1079, 22, 23, 7, 1076, 0); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/index.php b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/index.php new file mode 100644 index 0000000000..89657e2bb0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/demo/sitebrowser/index.php @@ -0,0 +1,172 @@ + 'tree_struct', 'data_table' => 'tree_data', 'data' => array('nm'))); + try { + $rslt = null; + switch($_GET['operation']) { + case 'analyze': + var_dump($fs->analyze(true)); + die(); + break; + case 'get_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $temp = $fs->get_children($node); + $rslt = array(); + foreach($temp as $v) { + $rslt[] = array('id' => $v['id'], 'text' => $v['nm'], 'children' => ($v['rgt'] - $v['lft'] > 1)); + } + break; + case "get_content": + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : 0; + $node = explode(':', $node); + if(count($node) > 1) { + $rslt = array('content' => 'Multiple selected'); + } + else { + $temp = $fs->get_node((int)$node[0], array('with_path' => true)); + $rslt = array('content' => 'Selected: /' . implode('/',array_map(function ($v) { return $v['nm']; }, $temp['path'])). '/'.$temp['nm']); + } + break; + case 'create_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $temp = $fs->mk($node, isset($_GET['position']) ? (int)$_GET['position'] : 0, array('nm' => isset($_GET['text']) ? $_GET['text'] : 'New node')); + $rslt = array('id' => $temp); + break; + case 'rename_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $rslt = $fs->rn($node, array('nm' => isset($_GET['text']) ? $_GET['text'] : 'Renamed node')); + break; + case 'delete_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $rslt = $fs->rm($node); + break; + case 'move_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $parn = isset($_GET['parent']) && $_GET['parent'] !== '#' ? (int)$_GET['parent'] : 0; + $rslt = $fs->mv($node, $parn, isset($_GET['position']) ? (int)$_GET['position'] : 0); + break; + case 'copy_node': + $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; + $parn = isset($_GET['parent']) && $_GET['parent'] !== '#' ? (int)$_GET['parent'] : 0; + $rslt = $fs->cp($node, $parn, isset($_GET['position']) ? (int)$_GET['position'] : 0); + break; + default: + throw new Exception('Unsupported operation: ' . $_GET['operation']); + break; + } + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($rslt); + } + catch (Exception $e) { + header($_SERVER["SERVER_PROTOCOL"] . ' 500 Server Error'); + header('Status: 500 Server Error'); + echo $e->getMessage(); + } + die(); +} +?> + + + + + + Title + + + + + +
    +
    +
    + + + +
    Select a node from the tree.
    +
    +
    + + + + + + diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.js new file mode 100644 index 0000000000..b6509d4671 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.js @@ -0,0 +1,8305 @@ +/*globals jQuery, define, module, exports, require, window, document, postMessage */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(typeof module !== 'undefined' && module.exports) { + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; +/*! + * jsTree 3.3.3 + * http://jstree.com/ + * + * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com) + * + * Licensed same as jquery - under the terms of the MIT License + * http://www.opensource.org/licenses/mit-license.php + */ +/*! + * if using jslint please allow for the jQuery global and use following options: + * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true + */ +/*jshint -W083 */ + + // prevent another load? maybe there is a better way? + if($.jstree) { + return; + } + + /** + * ### jsTree core functionality + */ + + // internal variables + var instance_counter = 0, + ccp_node = false, + ccp_mode = false, + ccp_inst = false, + themes_loaded = [], + src = $('script:last').attr('src'), + document = window.document; // local variable is always faster to access then a global + + /** + * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances. + * @name $.jstree + */ + $.jstree = { + /** + * specifies the jstree version in use + * @name $.jstree.version + */ + version : '3.3.3', + /** + * holds all the default options used when creating new instances + * @name $.jstree.defaults + */ + defaults : { + /** + * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]` + * @name $.jstree.defaults.plugins + */ + plugins : [] + }, + /** + * stores all loaded jstree plugins (used internally) + * @name $.jstree.plugins + */ + plugins : {}, + path : src && src.indexOf('/') !== -1 ? src.replace(/\/[^\/]+$/,'') : '', + idregex : /[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g, + root : '#' + }; + + /** + * creates a jstree instance + * @name $.jstree.create(el [, options]) + * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector + * @param {Object} options options for this instance (extends `$.jstree.defaults`) + * @return {jsTree} the new instance + */ + $.jstree.create = function (el, options) { + var tmp = new $.jstree.core(++instance_counter), + opt = options; + options = $.extend(true, {}, $.jstree.defaults, options); + if(opt && opt.plugins) { + options.plugins = opt.plugins; + } + $.each(options.plugins, function (i, k) { + if(i !== 'core') { + tmp = tmp.plugin(k, options[k]); + } + }); + $(el).data('jstree', tmp); + tmp.init(el, options); + return tmp; + }; + /** + * remove all traces of jstree from the DOM and destroy all instances + * @name $.jstree.destroy() + */ + $.jstree.destroy = function () { + $('.jstree:jstree').jstree('destroy'); + $(document).off('.jstree'); + }; + /** + * the jstree class constructor, used only internally + * @private + * @name $.jstree.core(id) + * @param {Number} id this instance's index + */ + $.jstree.core = function (id) { + this._id = id; + this._cnt = 0; + this._wrk = null; + this._data = { + core : { + themes : { + name : false, + dots : false, + icons : false, + ellipsis : false + }, + selected : [], + last_error : {}, + working : false, + worker_queue : [], + focused : null + } + }; + }; + /** + * get a reference to an existing instance + * + * __Examples__ + * + * // provided a container with an ID of "tree", and a nested node with an ID of "branch" + * // all of there will return the same instance + * $.jstree.reference('tree'); + * $.jstree.reference('#tree'); + * $.jstree.reference($('#tree')); + * $.jstree.reference(document.getElementByID('tree')); + * $.jstree.reference('branch'); + * $.jstree.reference('#branch'); + * $.jstree.reference($('#branch')); + * $.jstree.reference(document.getElementByID('branch')); + * + * @name $.jstree.reference(needle) + * @param {DOMElement|jQuery|String} needle + * @return {jsTree|null} the instance or `null` if not found + */ + $.jstree.reference = function (needle) { + var tmp = null, + obj = null; + if(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; } + + if(!obj || !obj.length) { + try { obj = $(needle); } catch (ignore) { } + } + if(!obj || !obj.length) { + try { obj = $('#' + needle.replace($.jstree.idregex,'\\$&')); } catch (ignore) { } + } + if(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) { + tmp = obj; + } + else { + $('.jstree').each(function () { + var inst = $(this).data('jstree'); + if(inst && inst._model.data[needle]) { + tmp = inst; + return false; + } + }); + } + return tmp; + }; + /** + * Create an instance, get an instance or invoke a command on a instance. + * + * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken). + * + * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function). + * + * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`). + * + * In any other case - nothing is returned and chaining is not broken. + * + * __Examples__ + * + * $('#tree1').jstree(); // creates an instance + * $('#tree2').jstree({ plugins : [] }); // create an instance with some options + * $('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments + * $('#tree2').jstree(); // get an existing instance (or create an instance) + * $('#tree2').jstree(true); // get an existing instance (will not create new instance) + * $('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method) + * + * @name $().jstree([arg]) + * @param {String|Object} arg + * @return {Mixed} + */ + $.fn.jstree = function (arg) { + // check for string argument + var is_method = (typeof arg === 'string'), + args = Array.prototype.slice.call(arguments, 1), + result = null; + if(arg === true && !this.length) { return false; } + this.each(function () { + // get the instance (if there is one) and method (if it exists) + var instance = $.jstree.reference(this), + method = is_method && instance ? instance[arg] : null; + // if calling a method, and method is available - execute on the instance + result = is_method && method ? + method.apply(instance, args) : + null; + // if there is no instance and no method is being called - create one + if(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) { + $.jstree.create(this, arg); + } + // if there is an instance and no method is called - return the instance + if( (instance && !is_method) || arg === true ) { + result = instance || false; + } + // if there was a method call which returned a result - break and return the value + if(result !== null && result !== undefined) { + return false; + } + }); + // if there was a method call with a valid return value - return that, otherwise continue the chain + return result !== null && result !== undefined ? + result : this; + }; + /** + * used to find elements containing an instance + * + * __Examples__ + * + * $('div:jstree').each(function () { + * $(this).jstree('destroy'); + * }); + * + * @name $(':jstree') + * @return {jQuery} + */ + $.expr.pseudos.jstree = $.expr.createPseudo(function(search) { + return function(a) { + return $(a).hasClass('jstree') && + $(a).data('jstree') !== undefined; + }; + }); + + /** + * stores all defaults for the core + * @name $.jstree.defaults.core + */ + $.jstree.defaults.core = { + /** + * data configuration + * + * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items). + * + * You can also pass in a HTML string or a JSON array here. + * + * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree. + * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used. + * + * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result. + * + * __Examples__ + * + * // AJAX + * $('#tree').jstree({ + * 'core' : { + * 'data' : { + * 'url' : '/get/children/', + * 'data' : function (node) { + * return { 'id' : node.id }; + * } + * } + * }); + * + * // direct data + * $('#tree').jstree({ + * 'core' : { + * 'data' : [ + * 'Simple root node', + * { + * 'id' : 'node_2', + * 'text' : 'Root node with options', + * 'state' : { 'opened' : true, 'selected' : true }, + * 'children' : [ { 'text' : 'Child 1' }, 'Child 2'] + * } + * ] + * } + * }); + * + * // function + * $('#tree').jstree({ + * 'core' : { + * 'data' : function (obj, callback) { + * callback.call(this, ['Root 1', 'Root 2']); + * } + * }); + * + * @name $.jstree.defaults.core.data + */ + data : false, + /** + * configure the various strings used throughout the tree + * + * You can use an object where the key is the string you need to replace and the value is your replacement. + * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement. + * If left as `false` no replacement is made. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'strings' : { + * 'Loading ...' : 'Please wait ...' + * } + * } + * }); + * + * @name $.jstree.defaults.core.strings + */ + strings : false, + /** + * determines what happens when a user tries to modify the structure of the tree + * If left as `false` all operations like create, rename, delete, move or copy are prevented. + * You can set this to `true` to allow all interactions or use a function to have better control. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'check_callback' : function (operation, node, node_parent, node_position, more) { + * // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node' + * // in case of 'rename_node' node_position is filled with the new node name + * return operation === 'rename_node' ? true : false; + * } + * } + * }); + * + * @name $.jstree.defaults.core.check_callback + */ + check_callback : false, + /** + * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc) + * @name $.jstree.defaults.core.error + */ + error : $.noop, + /** + * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`) + * @name $.jstree.defaults.core.animation + */ + animation : 200, + /** + * a boolean indicating if multiple nodes can be selected + * @name $.jstree.defaults.core.multiple + */ + multiple : true, + /** + * theme configuration object + * @name $.jstree.defaults.core.themes + */ + themes : { + /** + * the name of the theme to use (if left as `false` the default theme is used) + * @name $.jstree.defaults.core.themes.name + */ + name : false, + /** + * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme. + * @name $.jstree.defaults.core.themes.url + */ + url : false, + /** + * the location of all jstree themes - only used if `url` is set to `true` + * @name $.jstree.defaults.core.themes.dir + */ + dir : false, + /** + * a boolean indicating if connecting dots are shown + * @name $.jstree.defaults.core.themes.dots + */ + dots : true, + /** + * a boolean indicating if node icons are shown + * @name $.jstree.defaults.core.themes.icons + */ + icons : true, + /** + * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container + * @name $.jstree.defaults.core.themes.ellipsis + */ + ellipsis : false, + /** + * a boolean indicating if the tree background is striped + * @name $.jstree.defaults.core.themes.stripes + */ + stripes : false, + /** + * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants) + * @name $.jstree.defaults.core.themes.variant + */ + variant : false, + /** + * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`. + * @name $.jstree.defaults.core.themes.responsive + */ + responsive : false + }, + /** + * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user) + * @name $.jstree.defaults.core.expand_selected_onload + */ + expand_selected_onload : true, + /** + * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true` + * @name $.jstree.defaults.core.worker + */ + worker : true, + /** + * Force node text to plain text (and escape HTML). Defaults to `false` + * @name $.jstree.defaults.core.force_text + */ + force_text : false, + /** + * Should the node should be toggled if the text is double clicked . Defaults to `true` + * @name $.jstree.defaults.core.dblclick_toggle + */ + dblclick_toggle : true + }; + $.jstree.core.prototype = { + /** + * used to decorate an instance with a plugin. Used internally. + * @private + * @name plugin(deco [, opts]) + * @param {String} deco the plugin to decorate with + * @param {Object} opts options for the plugin + * @return {jsTree} + */ + plugin : function (deco, opts) { + var Child = $.jstree.plugins[deco]; + if(Child) { + this._data[deco] = {}; + Child.prototype = this; + return new Child(opts, this); + } + return this; + }, + /** + * initialize the instance. Used internally. + * @private + * @name init(el, optons) + * @param {DOMElement|jQuery|String} el the element we are transforming + * @param {Object} options options for this instance + * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree + */ + init : function (el, options) { + this._model = { + data : {}, + changed : [], + force_full_redraw : false, + redraw_timeout : false, + default_state : { + loaded : true, + opened : false, + selected : false, + disabled : false + } + }; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + + this.element = $(el).addClass('jstree jstree-' + this._id); + this.settings = options; + + this._data.core.ready = false; + this._data.core.loaded = false; + this._data.core.rtl = (this.element.css("direction") === "rtl"); + this.element[this._data.core.rtl ? 'addClass' : 'removeClass']("jstree-rtl"); + this.element.attr('role','tree'); + if(this.settings.core.multiple) { + this.element.attr('aria-multiselectable', true); + } + if(!this.element.attr('tabindex')) { + this.element.attr('tabindex','0'); + } + + this.bind(); + /** + * triggered after all events are bound + * @event + * @name init.jstree + */ + this.trigger("init"); + + this._data.core.original_container_html = this.element.find(" > ul > li").clone(true); + this._data.core.original_container_html + .find("li").addBack() + .contents().filter(function() { + return this.nodeType === 3 && (!this.nodeValue || /^\s+$/.test(this.nodeValue)); + }) + .remove(); + this.element.html("<"+"ul class='jstree-container-ul jstree-children' role='group'><"+"li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + "
    "); + this.element.attr('aria-activedescendant','j' + this._id + '_loading'); + this._data.core.li_height = this.get_container_ul().children("li").first().height() || 24; + this._data.core.node = this._create_prototype_node(); + /** + * triggered after the loading text is shown and before loading starts + * @event + * @name loading.jstree + */ + this.trigger("loading"); + this.load_node($.jstree.root); + }, + /** + * destroy an instance + * @name destroy() + * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact + */ + destroy : function (keep_html) { + if(this._wrk) { + try { + window.URL.revokeObjectURL(this._wrk); + this._wrk = null; + } + catch (ignore) { } + } + if(!keep_html) { this.element.empty(); } + this.teardown(); + }, + /** + * Create prototype node + */ + _create_prototype_node : function () { + var _node = document.createElement('LI'), _temp1, _temp2; + _node.setAttribute('role', 'treeitem'); + _temp1 = document.createElement('I'); + _temp1.className = 'jstree-icon jstree-ocl'; + _temp1.setAttribute('role', 'presentation'); + _node.appendChild(_temp1); + _temp1 = document.createElement('A'); + _temp1.className = 'jstree-anchor'; + _temp1.setAttribute('href','#'); + _temp1.setAttribute('tabindex','-1'); + _temp2 = document.createElement('I'); + _temp2.className = 'jstree-icon jstree-themeicon'; + _temp2.setAttribute('role', 'presentation'); + _temp1.appendChild(_temp2); + _node.appendChild(_temp1); + _temp1 = _temp2 = null; + + return _node; + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name teardown() + */ + teardown : function () { + this.unbind(); + this.element + .removeClass('jstree') + .removeData('jstree') + .find("[class^='jstree']") + .addBack() + .attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); }); + this.element = null; + }, + /** + * bind all events. Used internally. + * @private + * @name bind() + */ + bind : function () { + var word = '', + tout = null, + was_click = 0; + this.element + .on("dblclick.jstree", function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(document.selection && document.selection.empty) { + document.selection.empty(); + } + else { + if(window.getSelection) { + var sel = window.getSelection(); + try { + sel.removeAllRanges(); + sel.collapse(); + } catch (ignore) { } + } + } + }) + .on("mousedown.jstree", $.proxy(function (e) { + if(e.target === this.element[0]) { + e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome) + was_click = +(new Date()); // ie does not allow to prevent losing focus + } + }, this)) + .on("mousedown.jstree", ".jstree-ocl", function (e) { + e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon + }) + .on("click.jstree", ".jstree-ocl", $.proxy(function (e) { + this.toggle_node(e.target); + }, this)) + .on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(this.settings.core.dblclick_toggle) { + this.toggle_node(e.target); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + e.preventDefault(); + if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); } + this.activate_node(e.currentTarget, e); + }, this)) + .on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(e.which !== 32 && e.which !== 13 && (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)) { return true; } + var o = null; + if(this._data.core.rtl) { + if(e.which === 37) { e.which = 39; } + else if(e.which === 39) { e.which = 37; } + } + switch(e.which) { + case 32: // aria defines space only with Ctrl + if(e.ctrlKey) { + e.type = "click"; + $(e.currentTarget).trigger(e); + } + break; + case 13: // enter + e.type = "click"; + $(e.currentTarget).trigger(e); + break; + case 37: // left + e.preventDefault(); + if(this.is_open(e.currentTarget)) { + this.close_node(e.currentTarget); + } + else { + o = this.get_parent(e.currentTarget); + if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); } + } + break; + case 38: // up + e.preventDefault(); + o = this.get_prev_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 39: // right + e.preventDefault(); + if(this.is_closed(e.currentTarget)) { + this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); }); + } + else if (this.is_open(e.currentTarget)) { + o = this.get_node(e.currentTarget, true).children('.jstree-children')[0]; + if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); } + } + break; + case 40: // down + e.preventDefault(); + o = this.get_next_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 106: // aria defines * on numpad as open_all - not very common + this.open_all(); + break; + case 36: // home + e.preventDefault(); + o = this._firstChild(this.get_container_ul()[0]); + if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); } + break; + case 35: // end + e.preventDefault(); + this.element.find('.jstree-anchor').filter(':visible').last().focus(); + break; + case 113: // f2 - safe to include - if check_callback is false it will fail + e.preventDefault(); + this.edit(e.currentTarget); + break; + default: + break; + /*! + // delete + case 46: + e.preventDefault(); + o = this.get_node(e.currentTarget); + if(o && o.id && o.id !== $.jstree.root) { + o = this.is_selected(o) ? this.get_selected() : o; + this.delete_node(o); + } + break; + + */ + } + }, this)) + .on("load_node.jstree", $.proxy(function (e, data) { + if(data.status) { + if(data.node.id === $.jstree.root && !this._data.core.loaded) { + this._data.core.loaded = true; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + /** + * triggered after the root node is loaded for the first time + * @event + * @name loaded.jstree + */ + this.trigger("loaded"); + } + if(!this._data.core.ready) { + setTimeout($.proxy(function() { + if(this.element && !this.get_container_ul().find('.jstree-loading').length) { + this._data.core.ready = true; + if(this._data.core.selected.length) { + if(this.settings.core.expand_selected_onload) { + var tmp = [], i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents); + } + tmp = $.vakata.array_unique(tmp); + for(i = 0, j = tmp.length; i < j; i++) { + this.open_node(tmp[i], false, 0); + } + } + this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected }); + } + /** + * triggered after all nodes are finished loading + * @event + * @name ready.jstree + */ + this.trigger("ready"); + } + }, this), 0); + } + } + }, this)) + // quick searching when the tree is focused + .on('keypress.jstree', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(tout) { clearTimeout(tout); } + tout = setTimeout(function () { + word = ''; + }, 500); + + var chr = String.fromCharCode(e.which).toLowerCase(), + col = this.element.find('.jstree-anchor').filter(':visible'), + ind = col.index(document.activeElement) || 0, + end = false; + word += chr; + + // match for whole word from current node down (including the current node) + if(word.length > 1) { + col.slice(ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // match for whole word from the beginning of the tree + col.slice(0, ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + // list nodes that start with that letter (only if word consists of a single char) + if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) { + // search for the next node starting with that letter + col.slice(ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // search from the beginning + col.slice(0, ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + }, this)) + // THEME RELATED + .on("init.jstree", $.proxy(function () { + var s = this.settings.core.themes; + this._data.core.themes.dots = s.dots; + this._data.core.themes.stripes = s.stripes; + this._data.core.themes.icons = s.icons; + this._data.core.themes.ellipsis = s.ellipsis; + this.set_theme(s.name || "default", s.url); + this.set_theme_variant(s.variant); + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ](); + this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ](); + this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ](); + this[ this._data.core.themes.ellipsis ? "show_ellipsis" : "hide_ellipsis" ](); + }, this)) + .on('blur.jstree', '.jstree-anchor', $.proxy(function (e) { + this._data.core.focused = null; + $(e.currentTarget).filter('.jstree-hovered').mouseleave(); + this.element.attr('tabindex', '0'); + }, this)) + .on('focus.jstree', '.jstree-anchor', $.proxy(function (e) { + var tmp = this.get_node(e.currentTarget); + if(tmp && tmp.id) { + this._data.core.focused = tmp.id; + } + this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave(); + $(e.currentTarget).mouseenter(); + this.element.attr('tabindex', '-1'); + }, this)) + .on('focus.jstree', $.proxy(function () { + if(+(new Date()) - was_click > 500 && !this._data.core.focused) { + was_click = 0; + var act = this.get_node(this.element.attr('aria-activedescendant'), true); + if(act) { + act.find('> .jstree-anchor').focus(); + } + } + }, this)) + .on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) { + this.hover_node(e.currentTarget); + }, this)) + .on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name unbind() + */ + unbind : function () { + this.element.off('.jstree'); + $(document).off('.jstree-' + this._id); + }, + /** + * trigger an event. Used internally. + * @private + * @name trigger(ev [, data]) + * @param {String} ev the name of the event to trigger + * @param {Object} data additional data to pass with the event + */ + trigger : function (ev, data) { + if(!data) { + data = {}; + } + data.instance = this; + this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data); + }, + /** + * returns the jQuery extended instance container + * @name get_container() + * @return {jQuery} + */ + get_container : function () { + return this.element; + }, + /** + * returns the jQuery extended main UL node inside the instance container. Used internally. + * @private + * @name get_container_ul() + * @return {jQuery} + */ + get_container_ul : function () { + return this.element.children(".jstree-children").first(); + }, + /** + * gets string replacements (localization). Used internally. + * @private + * @name get_string(key) + * @param {String} key + * @return {String} + */ + get_string : function (key) { + var a = this.settings.core.strings; + if($.isFunction(a)) { return a.call(this, key); } + if(a && a[key]) { return a[key]; } + return key; + }, + /** + * gets the first child of a DOM node. Used internally. + * @private + * @name _firstChild(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _firstChild : function (dom) { + dom = dom ? dom.firstChild : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the next sibling of a DOM node. Used internally. + * @private + * @name _nextSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _nextSibling : function (dom) { + dom = dom ? dom.nextSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the previous sibling of a DOM node. Used internally. + * @private + * @name _previousSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _previousSibling : function (dom) { + dom = dom ? dom.previousSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.previousSibling; + } + return dom; + }, + /** + * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc) + * @name get_node(obj [, as_dom]) + * @param {mixed} obj + * @param {Boolean} as_dom + * @return {Object|jQuery} + */ + get_node : function (obj, as_dom) { + if(obj && obj.id) { + obj = obj.id; + } + var dom; + try { + if(this._model.data[obj]) { + obj = this._model.data[obj]; + } + else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) { + obj = this._model.data[obj.replace(/^#/, '')]; + } + else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) { + obj = this._model.data[$.jstree.root]; + } + else { + return false; + } + + if(as_dom) { + obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + } + return obj; + } catch (ex) { return false; } + }, + /** + * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array) + * @name get_path(obj [, glue, ids]) + * @param {mixed} obj the node + * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned + * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used + * @return {mixed} + */ + get_path : function (obj, glue, ids) { + obj = obj.parents ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root || !obj.parents) { + return false; + } + var i, j, p = []; + p.push(ids ? obj.id : obj.text); + for(i = 0, j = obj.parents.length; i < j; i++) { + p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i])); + } + p = p.reverse().slice(1); + return glue ? p.join(glue) : p; + }, + /** + * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_next_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_next_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this._firstChild(this.get_container_ul()[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + if(obj.hasClass("jstree-open")) { + tmp = this._firstChild(obj.children('.jstree-children')[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + if(tmp !== null) { + return $(tmp); + } + } + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + return $(tmp); + } + return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first(); + }, + /** + * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_prev_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_prev_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this.get_container_ul()[0].lastChild; + while (tmp && tmp.offsetHeight === 0) { + tmp = this._previousSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + obj = $(tmp); + while(obj.hasClass("jstree-open")) { + obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last"); + } + return obj; + } + tmp = obj[0].parentNode.parentNode; + return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false; + }, + /** + * get the parent ID of a node + * @name get_parent(obj) + * @param {mixed} obj + * @return {String} + */ + get_parent : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.parent; + }, + /** + * get a jQuery collection of all the children of a node (node must be rendered) + * @name get_children_dom(obj) + * @param {mixed} obj + * @return {jQuery} + */ + get_children_dom : function (obj) { + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + return this.get_container_ul().children(".jstree-node"); + } + if(!obj || !obj.length) { + return false; + } + return obj.children(".jstree-children").children(".jstree-node"); + }, + /** + * checks if a node has children + * @name is_parent(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_parent : function (obj) { + obj = this.get_node(obj); + return obj && (obj.state.loaded === false || obj.children.length > 0); + }, + /** + * checks if a node is loaded (its children are available) + * @name is_loaded(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loaded : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.loaded; + }, + /** + * check if a node is currently loading (fetching children) + * @name is_loading(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loading : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.loading; + }, + /** + * check if a node is opened + * @name is_open(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_open : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.opened; + }, + /** + * check if a node is in a closed state + * @name is_closed(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_closed : function (obj) { + obj = this.get_node(obj); + return obj && this.is_parent(obj) && !obj.state.opened; + }, + /** + * check if a node has no children + * @name is_leaf(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_leaf : function (obj) { + return !this.is_parent(obj); + }, + /** + * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array. + * @name load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status + * @return {Boolean} + * @trigger load_node.jstree + */ + load_node : function (obj, callback) { + var k, l, i, j, c; + if($.isArray(obj)) { + this._load_nodes(obj.slice(), callback); + return true; + } + obj = this.get_node(obj); + if(!obj) { + if(callback) { callback.call(this, obj, false); } + return false; + } + // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again? + if(obj.state.loaded) { + obj.state.loaded = false; + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + for(k = 0, l = obj.children_d.length; k < l; k++) { + if(this._model.data[obj.children_d[k]].state.selected) { + c = true; + } + delete this._model.data[obj.children_d[k]]; + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + obj.children = []; + obj.children_d = []; + if(c) { + this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected }); + } + } + obj.state.failed = false; + obj.state.loading = true; + this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true); + this._load_node(obj, $.proxy(function (status) { + obj = this._model.data[obj.id]; + obj.state.loading = false; + obj.state.loaded = status; + obj.state.failed = !obj.state.loaded; + var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false; + for(i = 0, j = obj.children.length; i < j; i++) { + if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.state.loaded && dom && dom.length) { + dom.removeClass('jstree-closed jstree-open jstree-leaf'); + if (!has_children) { + dom.addClass('jstree-leaf'); + } + else { + if (obj.id !== '#') { + dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed'); + } + } + } + dom.removeClass("jstree-loading").attr('aria-busy',false); + /** + * triggered after a node is loaded + * @event + * @name load_node.jstree + * @param {Object} node the node that was loading + * @param {Boolean} status was the node loaded successfully + */ + this.trigger('load_node', { "node" : obj, "status" : status }); + if(callback) { + callback.call(this, obj, status); + } + }, this)); + return true; + }, + /** + * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally. + * @private + * @name _load_nodes(nodes [, callback]) + * @param {array} nodes + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes + */ + _load_nodes : function (nodes, callback, is_callback, force_reload) { + var r = true, + c = function () { this._load_nodes(nodes, callback, true); }, + m = this._model.data, i, j, tmp = []; + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) { + if(!this.is_loading(nodes[i])) { + this.load_node(nodes[i], c); + } + r = false; + } + } + if(r) { + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && m[nodes[i]].state.loaded) { + tmp.push(nodes[i]); + } + } + if(callback && !callback.done) { + callback.call(this, tmp); + callback.done = true; + } + } + }, + /** + * loads all unloaded nodes + * @name load_all([obj, callback]) + * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree + * @param {function} callback a function to be executed once loading all the nodes is complete, + * @trigger load_all.jstree + */ + load_all : function (obj, callback) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var to_load = [], + m = this._model.data, + c = m[obj.id].children_d, + i, j; + if(obj.state && !obj.state.loaded) { + to_load.push(obj.id); + } + for(i = 0, j = c.length; i < j; i++) { + if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) { + to_load.push(c[i]); + } + } + if(to_load.length) { + this._load_nodes(to_load, function () { + this.load_all(obj, callback); + }); + } + else { + /** + * triggered after a load_all call completes + * @event + * @name load_all.jstree + * @param {Object} node the recursively loaded node + */ + if(callback) { callback.call(this, obj); } + this.trigger('load_all', { "node" : obj }); + } + }, + /** + * handles the actual loading of a node. Used only internally. + * @private + * @name _load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status + * @return {Boolean} + */ + _load_node : function (obj, callback) { + var s = this.settings.core.data, t; + var notTextOrCommentNode = function notTextOrCommentNode () { + return this.nodeType !== 3 && this.nodeType !== 8; + }; + // use original HTML + if(!s) { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) { + callback.call(this, status); + }); + } + else { + return callback.call(this, false); + } + // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false); + } + if($.isFunction(s)) { + return s.call(this, obj, $.proxy(function (d) { + if(d === false) { + callback.call(this, false); + } + else { + this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) { + callback.call(this, status); + }); + } + // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d)); + }, this)); + } + if(typeof s === 'object') { + if(s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, obj); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, obj); + } + return $.ajax(s) + .done($.proxy(function (d,t,x) { + var type = x.getResponseHeader('Content-Type'); + if((type && type.indexOf('json') !== -1) || typeof d === "object") { + return this._append_json_data(obj, d, function (status) { callback.call(this, status); }); + //return callback.call(this, this._append_json_data(obj, d)); + } + if((type && type.indexOf('html') !== -1) || typeof d === "string") { + return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); }); + // return callback.call(this, this._append_html_data(obj, $(d))); + } + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + }, this)) + .fail($.proxy(function (f) { + callback.call(this, false); + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)); + } + t = ($.isArray(s) || $.isPlainObject(s)) ? JSON.parse(JSON.stringify(s)) : s; + if(obj.id === $.jstree.root) { + return this._append_json_data(obj, t, function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) ); + } + if(typeof s === 'string') { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) ); + } + return callback.call(this, false); + }, + /** + * adds a node to the list of nodes to redraw. Used only internally. + * @private + * @name _node_changed(obj [, callback]) + * @param {mixed} obj + */ + _node_changed : function (obj) { + obj = this.get_node(obj); + if(obj) { + this._model.changed.push(obj.id); + } + }, + /** + * appends HTML content to the tree. Used internally. + * @private + * @name _append_html_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the HTML string to parse and append + * @trigger model.jstree, changed.jstree + */ + _append_html_data : function (dom, data, cb) { + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + var dat = data.is('ul') ? data.children() : data, + par = dom.id, + chd = [], + dpc = [], + m = this._model.data, + p = m[par], + s = this._data.core.selected.length, + tmp, i, j; + dat.each($.proxy(function (i, v) { + tmp = this._parse_model_from_html($(v), par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + }, this)); + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + /** + * triggered when new data is inserted to the tree model + * @event + * @name model.jstree + * @param {Array} nodes an array of node IDs + * @param {String} parent the parent ID of the nodes + */ + this.trigger('model', { "nodes" : dpc, 'parent' : par }); + if(par !== $.jstree.root) { + this._node_changed(par); + this.redraw(); + } + else { + this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(this._data.core.selected.length !== s) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }, + /** + * appends JSON content to the tree. Used internally. + * @private + * @name _append_json_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the JSON object to parse and append + * @param {Boolean} force_processing internal param - do not set + * @trigger model.jstree, changed.jstree + */ + _append_json_data : function (dom, data, cb, force_processing) { + if(this.element === null) { return; } + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + // *%$@!!! + if(data.d) { + data = data.d; + if(typeof data === "string") { + data = JSON.parse(data); + } + } + if(!$.isArray(data)) { data = [data]; } + var w = null, + args = { + 'df' : this._model.default_state, + 'dat' : data, + 'par' : dom.id, + 'm' : this._model.data, + 't_id' : this._id, + 't_cnt' : this._cnt, + 'sel' : this._data.core.selected + }, + func = function (data, undefined) { + if(data.data) { data = data.data; } + var dat = data.dat, + par = data.par, + chd = [], + dpc = [], + add = [], + df = data.df, + t_id = data.t_id, + t_cnt = data.t_cnt, + m = data.m, + p = m[par], + sel = data.sel, + tmp, i, j, rslt, + parse_flat = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = parse_flat(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }, + parse_nest = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, tmp; + do { + tid = 'j' + t_id + '_' + (++t_cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = parse_nest(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }; + + if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) { + // Flat JSON support (for easy import from DB): + // 1) convert to object (foreach) + for(i = 0, j = dat.length; i < j; i++) { + if(!dat[i].children) { + dat[i].children = []; + } + m[dat[i].id.toString()] = dat[i]; + } + // 2) populate children (foreach) + for(i = 0, j = dat.length; i < j; i++) { + m[dat[i].parent.toString()].children.push(dat[i].id.toString()); + // populate parent.children_d + p.children_d.push(dat[i].id.toString()); + } + // 3) normalize && populate parents and children_d with recursion + for(i = 0, j = p.children.length; i < j; i++) { + tmp = parse_flat(m[p.children[i]], par, p.parents.concat()); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true; + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + else { + for(i = 0, j = dat.length; i < j; i++) { + tmp = parse_nest(dat[i], par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + } + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + if(typeof window === 'undefined' || typeof window.document === 'undefined') { + postMessage(rslt); + } + else { + return rslt; + } + }, + rslt = function (rslt, worker) { + if(this.element === null) { return; } + this._cnt = rslt.cnt; + var i, m = this._model.data; + for (i in m) { + if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) { + rslt.mod[i].state.loading = true; + } + } + this._model.data = rslt.mod; // breaks the reference in load_node - careful + + if(worker) { + var j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(); + m = this._model.data; + // if selection was changed while calculating in worker + if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) { + // deselect nodes that are no longer selected + for(i = 0, j = r.length; i < j; i++) { + if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) { + m[r[i]].state.selected = false; + } + } + // select nodes that were selected in the mean time + for(i = 0, j = s.length; i < j; i++) { + if($.inArray(s[i], r) === -1) { + m[s[i]].state.selected = true; + } + } + } + } + if(rslt.add.length) { + this._data.core.selected = this._data.core.selected.concat(rslt.add); + } + + this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par }); + + if(rslt.par !== $.jstree.root) { + this._node_changed(rslt.par); + this.redraw(); + } + else { + // this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(rslt.add.length) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }; + if(this.settings.core.worker && window.Blob && window.URL && window.Worker) { + try { + if(this._wrk === null) { + this._wrk = window.URL.createObjectURL( + new window.Blob( + ['self.onmessage = ' + func.toString()], + {type:"text/javascript"} + ) + ); + } + if(!this._data.core.working || force_processing) { + this._data.core.working = true; + w = new window.Worker(this._wrk); + w.onmessage = $.proxy(function (e) { + rslt.call(this, e.data, true); + try { w.terminate(); w = null; } catch(ignore) { } + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + }, this); + if(!args.par) { + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + else { + w.postMessage(args); + } + } + else { + this._data.core.worker_queue.push([dom, data, cb, true]); + } + } + catch(e) { + rslt.call(this, func(args), false); + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + } + else { + rslt.call(this, func(args), false); + } + }, + /** + * parses a node from a jQuery object and appends them to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_html(d [, p, ps]) + * @param {jQuery} d the jQuery object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_html : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = [].concat(ps); } + if(p) { ps.unshift(p); } + var c, e, m = this._model.data, + data = { + id : false, + text : false, + icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }, i, tmp, tid; + for(i in this._model.default_state) { + if(this._model.default_state.hasOwnProperty(i)) { + data.state[i] = this._model.default_state[i]; + } + } + tmp = $.vakata.attributes(d, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(!v.length) { return true; } + data.li_attr[i] = v; + if(i === 'id') { + data.id = v.toString(); + } + }); + tmp = d.children('a').first(); + if(tmp.length) { + tmp = $.vakata.attributes(tmp, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(v.length) { + data.a_attr[i] = v; + } + }); + } + tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone(); + tmp.children("ins, i, ul").remove(); + tmp = tmp.html(); + tmp = $('
    ').html(tmp); + data.text = this.settings.core.force_text ? tmp.text() : tmp.html(); + tmp = d.data(); + data.data = tmp ? $.extend(true, {}, tmp) : null; + data.state.opened = d.hasClass('jstree-open'); + data.state.selected = d.children('a').hasClass('jstree-clicked'); + data.state.disabled = d.children('a').hasClass('jstree-disabled'); + if(data.data && data.data.jstree) { + for(i in data.data.jstree) { + if(data.data.jstree.hasOwnProperty(i)) { + data.state[i] = data.data.jstree[i]; + } + } + } + tmp = d.children("a").children(".jstree-themeicon"); + if(tmp.length) { + data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel'); + } + if(data.state.icon !== undefined) { + data.icon = data.state.icon; + } + if(data.icon === undefined || data.icon === null || data.icon === "") { + data.icon = true; + } + tmp = d.children("ul").children("li"); + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + data.id = data.li_attr.id ? data.li_attr.id.toString() : tid; + if(tmp.length) { + tmp.each($.proxy(function (i, v) { + c = this._parse_model_from_html($(v), data.id, ps); + e = this._model.data[c]; + data.children.push(c); + if(e.children_d.length) { + data.children_d = data.children_d.concat(e.children_d); + } + }, this)); + data.children_d = data.children_d.concat(data.children); + } + else { + if(d.hasClass('jstree-closed')) { + data.state.loaded = false; + } + } + if(data.li_attr['class']) { + data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open',''); + } + if(data.a_attr['class']) { + data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled',''); + } + m[data.id] = data; + if(data.state.selected) { + this._data.core.selected.push(data.id); + } + return data.id; + }, + /** + * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_flat_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_flat_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + m = this._model.data, + df = this._model.default_state, + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * parses a node from a JSON object and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp; + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = this._parse_model_from_json(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * redraws all nodes that need to be redrawn. Used internally. + * @private + * @name _redraw() + * @trigger redraw.jstree + */ + _redraw : function () { + var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]), + f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused; + for(i = 0, j = nodes.length; i < j; i++) { + tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw); + if(tmp && this._model.force_full_redraw) { + f.appendChild(tmp); + } + } + if(this._model.force_full_redraw) { + f.className = this.get_container_ul()[0].className; + f.setAttribute('role','group'); + this.element.empty().append(f); + //this.get_container_ul()[0].appendChild(f); + } + if(fe !== null) { + tmp = this.get_node(fe, true); + if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) { + tmp.children('.jstree-anchor').focus(); + } + else { + this._data.core.focused = null; + } + } + this._model.force_full_redraw = false; + this._model.changed = []; + /** + * triggered after nodes are redrawn + * @event + * @name redraw.jstree + * @param {array} nodes the redrawn nodes + */ + this.trigger('redraw', { "nodes" : nodes }); + }, + /** + * redraws all nodes that need to be redrawn or optionally - the whole tree + * @name redraw([full]) + * @param {Boolean} full if set to `true` all nodes are redrawn. + */ + redraw : function (full) { + if(full) { + this._model.force_full_redraw = true; + } + //if(this._model.redraw_timeout) { + // clearTimeout(this._model.redraw_timeout); + //} + //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0); + this._redraw(); + }, + /** + * redraws a single node's children. Used internally. + * @private + * @name draw_children(node) + * @param {mixed} node the node whose children will be redrawn + */ + draw_children : function (node) { + var obj = this.get_node(node), + i = false, + j = false, + k = false, + d = document; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + node = this.get_node(node, true); + if(!node || !node.length) { return false; } // TODO: quick toggle + + node.children('.jstree-children').remove(); + node = node[0]; + if(obj.children.length && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], true, true)); + } + node.appendChild(k); + } + }, + /** + * redraws a single node. Used internally. + * @private + * @name redraw_node(node, deep, is_callback, force_render) + * @param {mixed} node the node to redraw + * @param {Boolean} deep should child nodes be redrawn too + * @param {Boolean} is_callback is this a recursion call + * @param {Boolean} force_render should children of closed parents be drawn anyway + */ + redraw_node : function (node, deep, is_callback, force_render) { + var obj = this.get_node(node), + par = false, + ind = false, + old = false, + i = false, + j = false, + k = false, + c = '', + d = document, + m = this._model.data, + f = false, + s = false, + tmp = null, + t = 0, + l = 0, + has_children = false, + last_sibling = false; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + deep = deep || obj.children.length === 0; + node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element); + if(!node) { + deep = true; + //node = d.createElement('LI'); + if(!is_callback) { + par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null; + if(par !== null && (!par || !m[obj.parent].state.opened)) { + return false; + } + ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children); + } + } + else { + node = $(node); + if(!is_callback) { + par = node.parent().parent()[0]; + if(par === this.element[0]) { + par = null; + } + ind = node.index(); + } + // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage + if(!deep && obj.children.length && !node.children('.jstree-children').length) { + deep = true; + } + if(!deep) { + old = node.children('.jstree-children')[0]; + } + f = node.children('.jstree-anchor')[0] === document.activeElement; + node.remove(); + //node = d.createElement('LI'); + //node = node[0]; + } + node = this._data.core.node.cloneNode(true); + // node is DOM, deep is boolean + + c = 'jstree-node '; + for(i in obj.li_attr) { + if(obj.li_attr.hasOwnProperty(i)) { + if(i === 'id') { continue; } + if(i !== 'class') { + node.setAttribute(i, obj.li_attr[i]); + } + else { + c += obj.li_attr[i]; + } + } + } + if(!obj.a_attr.id) { + obj.a_attr.id = obj.id + '_anchor'; + } + node.setAttribute('aria-selected', !!obj.state.selected); + node.setAttribute('aria-level', obj.parents.length); + node.setAttribute('aria-labelledby', obj.a_attr.id); + if(obj.state.disabled) { + node.setAttribute('aria-disabled', true); + } + + for(i = 0, j = obj.children.length; i < j; i++) { + if(!m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) { + i = $.inArray(obj.id, m[obj.parent].children); + last_sibling = obj.id; + if(i !== -1) { + i++; + for(j = m[obj.parent].children.length; i < j; i++) { + if(!m[m[obj.parent].children[i]].state.hidden) { + last_sibling = m[obj.parent].children[i]; + } + if(last_sibling !== obj.id) { + break; + } + } + } + } + + if(obj.state.hidden) { + c += ' jstree-hidden'; + } + if(obj.state.loaded && !has_children) { + c += ' jstree-leaf'; + } + else { + c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed'; + node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) ); + } + if(last_sibling === obj.id) { + c += ' jstree-last'; + } + node.id = obj.id; + node.className = c; + c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : ''); + for(j in obj.a_attr) { + if(obj.a_attr.hasOwnProperty(j)) { + if(j === 'href' && obj.a_attr[j] === '#') { continue; } + if(j !== 'class') { + node.childNodes[1].setAttribute(j, obj.a_attr[j]); + } + else { + c += ' ' + obj.a_attr[j]; + } + } + } + if(c.length) { + node.childNodes[1].className = 'jstree-anchor ' + c; + } + if((obj.icon && obj.icon !== true) || obj.icon === false) { + if(obj.icon === false) { + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden'; + } + else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) { + node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom'; + } + else { + node.childNodes[1].childNodes[0].style.backgroundImage = 'url("'+obj.icon+'")'; + node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center'; + node.childNodes[1].childNodes[0].style.backgroundSize = 'auto'; + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom'; + } + } + + if(this.settings.core.force_text) { + node.childNodes[1].appendChild(d.createTextNode(obj.text)); + } + else { + node.childNodes[1].innerHTML += obj.text; + } + + + if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], deep, true)); + } + node.appendChild(k); + } + if(old) { + node.appendChild(old); + } + if(!is_callback) { + // append back using par / ind + if(!par) { + par = this.element[0]; + } + for(i = 0, j = par.childNodes.length; i < j; i++) { + if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) { + tmp = par.childNodes[i]; + break; + } + } + if(!tmp) { + tmp = d.createElement('UL'); + tmp.setAttribute('role', 'group'); + tmp.className = 'jstree-children'; + par.appendChild(tmp); + } + par = tmp; + + if(ind < par.childNodes.length) { + par.insertBefore(node, par.childNodes[ind]); + } + else { + par.appendChild(node); + } + if(f) { + t = this.element[0].scrollTop; + l = this.element[0].scrollLeft; + node.childNodes[1].focus(); + this.element[0].scrollTop = t; + this.element[0].scrollLeft = l; + } + } + if(obj.state.opened && !obj.state.loaded) { + obj.state.opened = false; + setTimeout($.proxy(function () { + this.open_node(obj.id, false, 0); + }, this), 0); + } + return node; + }, + /** + * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready. + * @name open_node(obj [, callback, animation]) + * @param {mixed} obj the node to open + * @param {Function} callback a function to execute once the node is opened + * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger open_node.jstree, after_open.jstree, before_open.jstree + */ + open_node : function (obj, callback, animation) { + var t1, t2, d, t; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.open_node(obj[t1], callback, animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + if(!this.is_closed(obj)) { + if(callback) { + callback.call(this, obj, false); + } + return false; + } + if(!this.is_loaded(obj)) { + if(this.is_loading(obj)) { + return setTimeout($.proxy(function () { + this.open_node(obj, callback, animation); + }, this), 500); + } + this.load_node(obj, function (o, ok) { + return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false); + }); + } + else { + d = this.get_node(obj, true); + t = this; + if(d.length) { + if(animation && d.children(".jstree-children").length) { + d.children(".jstree-children").stop(true, true); + } + if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) { + this.draw_children(obj); + //d = this.get_node(obj, true); + } + if(!animation) { + this.trigger('before_open', { "node" : obj }); + d[0].className = d[0].className.replace('jstree-closed', 'jstree-open'); + d[0].setAttribute("aria-expanded", true); + } + else { + this.trigger('before_open', { "node" : obj }); + d + .children(".jstree-children").css("display","none").end() + .removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true) + .children(".jstree-children").stop(true, true) + .slideDown(animation, function () { + this.style.display = ""; + if (t.element) { + t.trigger("after_open", { "node" : obj }); + } + }); + } + } + obj.state.opened = true; + if(callback) { + callback.call(this, obj, true); + } + if(!d.length) { + /** + * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet) + * @event + * @name before_open.jstree + * @param {Object} node the opened node + */ + this.trigger('before_open', { "node" : obj }); + } + /** + * triggered when a node is opened (if there is an animation it will not be completed yet) + * @event + * @name open_node.jstree + * @param {Object} node the opened node + */ + this.trigger('open_node', { "node" : obj }); + if(!animation || !d.length) { + /** + * triggered when a node is opened and the animation is complete + * @event + * @name after_open.jstree + * @param {Object} node the opened node + */ + this.trigger("after_open", { "node" : obj }); + } + return true; + } + }, + /** + * opens every parent of a node (node should be loaded) + * @name _open_to(obj) + * @param {mixed} obj the node to reveal + * @private + */ + _open_to : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + var i, j, p = obj.parents; + for(i = 0, j = p.length; i < j; i+=1) { + if(i !== $.jstree.root) { + this.open_node(p[i], false, 0); + } + } + return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + }, + /** + * closes a node, hiding its children + * @name close_node(obj [, animation]) + * @param {mixed} obj the node to close + * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger close_node.jstree, after_close.jstree + */ + close_node : function (obj, animation) { + var t1, t2, t, d; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.close_node(obj[t1], animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(this.is_closed(obj)) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + t = this; + d = this.get_node(obj, true); + + obj.state.opened = false; + /** + * triggered when a node is closed (if there is an animation it will not be complete yet) + * @event + * @name close_node.jstree + * @param {Object} node the closed node + */ + this.trigger('close_node',{ "node" : obj }); + if(!d.length) { + /** + * triggered when a node is closed and the animation is complete + * @event + * @name after_close.jstree + * @param {Object} node the closed node + */ + this.trigger("after_close", { "node" : obj }); + } + else { + if(!animation) { + d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); + d.attr("aria-expanded", false).children('.jstree-children').remove(); + this.trigger("after_close", { "node" : obj }); + } + else { + d + .children(".jstree-children").attr("style","display:block !important").end() + .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) + .children(".jstree-children").stop(true, true).slideUp(animation, function () { + this.style.display = ""; + d.children('.jstree-children').remove(); + if (t.element) { + t.trigger("after_close", { "node" : obj }); + } + }); + } + } + }, + /** + * toggles a node - closing it if it is open, opening it if it is closed + * @name toggle_node(obj) + * @param {mixed} obj the node to toggle + */ + toggle_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.toggle_node(obj[t1]); + } + return true; + } + if(this.is_closed(obj)) { + return this.open_node(obj); + } + if(this.is_open(obj)) { + return this.close_node(obj); + } + }, + /** + * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready. + * @name open_all([obj, animation, original_obj]) + * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation + * @param {jQuery} reference to the node that started the process (internal use) + * @trigger open_all.jstree + */ + open_all : function (obj, animation, original_obj) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this; + if(!dom.length) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + if(this.is_closed(this._model.data[obj.children_d[i]])) { + this._model.data[obj.children_d[i]].state.opened = true; + } + } + return this.trigger('open_all', { "node" : obj }); + } + original_obj = original_obj || dom; + _this = this; + dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed'); + dom.each(function () { + _this.open_node( + this, + function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } }, + animation || 0 + ); + }); + if(original_obj.find('.jstree-closed').length === 0) { + /** + * triggered when an `open_all` call completes + * @event + * @name open_all.jstree + * @param {Object} node the opened node + */ + this.trigger('open_all', { "node" : this.get_node(original_obj) }); + } + }, + /** + * closes all nodes within a node (or the tree), revaling their children + * @name close_all([obj, animation]) + * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation + * @trigger close_all.jstree + */ + close_all : function (obj, animation) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), + _this = this, i, j; + if(dom.length) { + dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open'); + $(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); }); + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].state.opened = false; + } + /** + * triggered when an `close_all` call completes + * @event + * @name close_all.jstree + * @param {Object} node the closed node + */ + this.trigger('close_all', { "node" : obj }); + }, + /** + * checks if a node is disabled (not selectable) + * @name is_disabled(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_disabled : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.disabled; + }, + /** + * enables a node - so that it can be selected + * @name enable_node(obj) + * @param {mixed} obj the node to enable + * @trigger enable_node.jstree + */ + enable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = false; + this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false); + /** + * triggered when an node is enabled + * @event + * @name enable_node.jstree + * @param {Object} node the enabled node + */ + this.trigger('enable_node', { 'node' : obj }); + }, + /** + * disables a node - so that it can not be selected + * @name disable_node(obj) + * @param {mixed} obj the node to disable + * @trigger disable_node.jstree + */ + disable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = true; + this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true); + /** + * triggered when an node is disabled + * @event + * @name disable_node.jstree + * @param {Object} node the disabled node + */ + this.trigger('disable_node', { 'node' : obj }); + }, + /** + * determines if a node is hidden + * @name is_hidden(obj) + * @param {mixed} obj the node + */ + is_hidden : function (obj) { + obj = this.get_node(obj); + return obj.state.hidden === true; + }, + /** + * hides a node - it is still in the structure but will not be visible + * @name hide_node(obj) + * @param {mixed} obj the node to hide + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger hide_node.jstree + */ + hide_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(!obj.state.hidden) { + obj.state.hidden = true; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is hidden + * @event + * @name hide_node.jstree + * @param {Object} node the hidden node + */ + this.trigger('hide_node', { 'node' : obj }); + } + }, + /** + * shows a node + * @name show_node(obj) + * @param {mixed} obj the node to show + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger show_node.jstree + */ + show_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(obj.state.hidden) { + obj.state.hidden = false; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is shown + * @event + * @name show_node.jstree + * @param {Object} node the shown node + */ + this.trigger('show_node', { 'node' : obj }); + } + }, + /** + * hides all nodes + * @name hide_all() + * @trigger hide_all.jstree + */ + hide_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) { + m[i].state.hidden = true; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are hidden + * @event + * @name hide_all.jstree + * @param {Array} nodes the IDs of all hidden nodes + */ + this.trigger('hide_all', { 'nodes' : ids }); + return ids; + }, + /** + * shows all nodes + * @name show_all() + * @trigger show_all.jstree + */ + show_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) { + m[i].state.hidden = false; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are shown + * @event + * @name show_all.jstree + * @param {Array} nodes the IDs of all shown nodes + */ + this.trigger('show_all', { 'nodes' : ids }); + return ids; + }, + /** + * called when a node is selected by the user. Used internally. + * @private + * @name activate_node(obj, e) + * @param {mixed} obj the node + * @param {Object} e the related event + * @trigger activate_node.jstree, changed.jstree + */ + activate_node : function (obj, e) { + if(this.is_disabled(obj)) { + return false; + } + if(!e || typeof e !== 'object') { + e = {}; + } + + // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node + this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null; + if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; } + if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); } + + if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) { + if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) { + this.deselect_node(obj, false, e); + } + else { + this.deselect_all(true); + this.select_node(obj, false, false, e); + this._data.core.last_clicked = this.get_node(obj); + } + } + else { + if(e.shiftKey) { + var o = this.get_node(obj).id, + l = this._data.core.last_clicked.id, + p = this.get_node(this._data.core.last_clicked.parent).children, + c = false, + i, j; + for(i = 0, j = p.length; i < j; i += 1) { + // separate IFs work whem o and l are the same + if(p[i] === o) { + c = !c; + } + if(p[i] === l) { + c = !c; + } + if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) { + if (!this.is_hidden(p[i])) { + this.select_node(p[i], true, false, e); + } + } + else { + this.deselect_node(p[i], true, e); + } + } + this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e }); + } + else { + if(!this.is_selected(obj)) { + this.select_node(obj, false, false, e); + } + else { + this.deselect_node(obj, false, e); + } + } + } + /** + * triggered when an node is clicked or intercated with by the user + * @event + * @name activate_node.jstree + * @param {Object} node + * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object) + */ + this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e }); + }, + /** + * applies the hover state on a node, called when a node is hovered by the user. Used internally. + * @private + * @name hover_node(obj) + * @param {mixed} obj + * @trigger hover_node.jstree + */ + hover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || obj.children('.jstree-hovered').length) { + return false; + } + var o = this.element.find('.jstree-hovered'), t = this.element; + if(o && o.length) { this.dehover_node(o); } + + obj.children('.jstree-anchor').addClass('jstree-hovered'); + /** + * triggered when an node is hovered + * @event + * @name hover_node.jstree + * @param {Object} node + */ + this.trigger('hover_node', { 'node' : this.get_node(obj) }); + setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0); + }, + /** + * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally. + * @private + * @name dehover_node(obj) + * @param {mixed} obj + * @trigger dehover_node.jstree + */ + dehover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || !obj.children('.jstree-hovered').length) { + return false; + } + obj.children('.jstree-anchor').removeClass('jstree-hovered'); + /** + * triggered when an node is no longer hovered + * @event + * @name dehover_node.jstree + * @param {Object} node + */ + this.trigger('dehover_node', { 'node' : this.get_node(obj) }); + }, + /** + * select a node + * @name select_node(obj [, supress_event, prevent_open]) + * @param {mixed} obj an array can be used to select multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened + * @trigger select_node.jstree, changed.jstree + */ + select_node : function (obj, supress_event, prevent_open, e) { + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.select_node(obj[t1], supress_event, prevent_open, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.selected) { + obj.state.selected = true; + this._data.core.selected.push(obj.id); + if(!prevent_open) { + dom = this._open_to(obj); + } + if(dom && dom.length) { + dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked'); + } + /** + * triggered when an node is selected + * @event + * @name select_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this select_node + */ + this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + /** + * triggered when selection changes + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this changed event + */ + this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * deselect a node + * @name deselect_node(obj [, supress_event]) + * @param {mixed} obj an array can be used to deselect multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_node.jstree, changed.jstree + */ + deselect_node : function (obj, supress_event, e) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.deselect_node(obj[t1], supress_event, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.selected) { + obj.state.selected = false; + this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id); + if(dom.length) { + dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked'); + } + /** + * triggered when an node is deselected + * @event + * @name deselect_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this deselect_node + */ + this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * select all nodes in the tree + * @name select_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger select_all.jstree, changed.jstree + */ + select_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + this._data.core.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are selected + * @event + * @name select_all.jstree + * @param {Array} selected the current selection + */ + this.trigger('select_all', { 'selected' : this._data.core.selected }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * deselect all selected nodes + * @name deselect_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_all.jstree, changed.jstree + */ + deselect_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = false; + } + } + this._data.core.selected = []; + this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false); + /** + * triggered when all nodes are deselected + * @event + * @name deselect_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + */ + this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * checks if a node is selected + * @name is_selected(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_selected : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.state.selected; + }, + /** + * get an array of all selected nodes + * @name get_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_selected : function (full) { + return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice(); + }, + /** + * get an array of all top level selected nodes (ignoring children of selected nodes) + * @name get_top_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_top_selected : function (full) { + var tmp = this.get_selected(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }, + /** + * get an array of all bottom level selected nodes (ignoring selected parents) + * @name get_bottom_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_bottom_selected : function (full) { + var tmp = this.get_selected(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }, + /** + * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally. + * @name get_state() + * @private + * @return {Object} + */ + get_state : function () { + var state = { + 'core' : { + 'open' : [], + 'scroll' : { + 'left' : this.element.scrollLeft(), + 'top' : this.element.scrollTop() + }, + /*! + 'themes' : { + 'name' : this.get_theme(), + 'icons' : this._data.core.themes.icons, + 'dots' : this._data.core.themes.dots + }, + */ + 'selected' : [] + } + }, i; + for(i in this._model.data) { + if(this._model.data.hasOwnProperty(i)) { + if(i !== $.jstree.root) { + if(this._model.data[i].state.opened) { + state.core.open.push(i); + } + if(this._model.data[i].state.selected) { + state.core.selected.push(i); + } + } + } + } + return state; + }, + /** + * sets the state of the tree. Used internally. + * @name set_state(state [, callback]) + * @private + * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it. + * @param {Function} callback an optional function to execute once the state is restored. + * @trigger set_state.jstree + */ + set_state : function (state, callback) { + if(state) { + if(state.core) { + var res, n, t, _this, i; + if(state.core.open) { + if(!$.isArray(state.core.open) || !state.core.open.length) { + delete state.core.open; + this.set_state(state, callback); + } + else { + this._load_nodes(state.core.open, function (nodes) { + this.open_node(nodes, false, 0); + delete state.core.open; + this.set_state(state, callback); + }); + } + return false; + } + if(state.core.scroll) { + if(state.core.scroll && state.core.scroll.left !== undefined) { + this.element.scrollLeft(state.core.scroll.left); + } + if(state.core.scroll && state.core.scroll.top !== undefined) { + this.element.scrollTop(state.core.scroll.top); + } + delete state.core.scroll; + this.set_state(state, callback); + return false; + } + if(state.core.selected) { + _this = this; + this.deselect_all(); + $.each(state.core.selected, function (i, v) { + _this.select_node(v, false, true); + }); + delete state.core.selected; + this.set_state(state, callback); + return false; + } + for(i in state) { + if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) { + delete state[i]; + } + } + if($.isEmptyObject(state.core)) { + delete state.core; + this.set_state(state, callback); + return false; + } + } + if($.isEmptyObject(state)) { + state = null; + if(callback) { callback.call(this); } + /** + * triggered when a `set_state` call completes + * @event + * @name set_state.jstree + */ + this.trigger('set_state'); + return false; + } + return true; + } + return false; + }, + /** + * refreshes the tree - all nodes are reloaded with calls to `load_node`. + * @name refresh() + * @param {Boolean} skip_loading an option to skip showing the loading indicator + * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state + * @trigger refresh.jstree + */ + refresh : function (skip_loading, forget_state) { + this._data.core.state = forget_state === true ? {} : this.get_state(); + if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); } + this._cnt = 0; + this._model.data = {}; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + this._data.core.selected = []; + this._data.core.last_clicked = null; + this._data.core.focused = null; + + var c = this.get_container_ul()[0].className; + if(!skip_loading) { + this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + ""); + this.element.attr('aria-activedescendant','j'+this._id+'_loading'); + } + this.load_node($.jstree.root, function (o, s) { + if(s) { + this.get_container_ul()[0].className = c; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + this.set_state($.extend(true, {}, this._data.core.state), function () { + /** + * triggered when a `refresh` call completes + * @event + * @name refresh.jstree + */ + this.trigger('refresh'); + }); + } + this._data.core.state = null; + }); + }, + /** + * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. + * @name refresh_node(obj) + * @param {mixed} obj the node + * @trigger refresh_node.jstree + */ + refresh_node : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var opened = [], to_load = [], s = this._data.core.selected.concat([]); + to_load.push(obj.id); + if(obj.state.opened === true) { opened.push(obj.id); } + this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); + this._load_nodes(to_load, $.proxy(function (nodes) { + this.open_node(opened, false, 0); + this.select_node(s); + /** + * triggered when a node is refreshed + * @event + * @name refresh_node.jstree + * @param {Object} node - the refreshed node + * @param {Array} nodes - an array of the IDs of the nodes that were reloaded + */ + this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); + }, this), false, true); + }, + /** + * set (change) the ID of a node + * @name set_id(obj, id) + * @param {mixed} obj the node + * @param {String} id the new ID + * @return {Boolean} + * @trigger set_id.jstree + */ + set_id : function (obj, id) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var i, j, m = this._model.data, old = obj.id; + id = id.toString(); + // update parents (replace current ID with new one in children and children_d) + m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; + for(i = 0, j = obj.parents.length; i < j; i++) { + m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; + } + // update children (replace current ID with new one in parent and parents) + for(i = 0, j = obj.children.length; i < j; i++) { + m[obj.children[i]].parent = id; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; + } + i = $.inArray(obj.id, this._data.core.selected); + if(i !== -1) { this._data.core.selected[i] = id; } + // update model and obj itself (obj.id, this._model.data[KEY]) + i = this.get_node(obj.id, true); + if(i) { + i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); + if(this.element.attr('aria-activedescendant') === obj.id) { + this.element.attr('aria-activedescendant', id); + } + } + delete m[obj.id]; + obj.id = id; + obj.li_attr.id = id; + m[id] = obj; + /** + * triggered when a node id value is changed + * @event + * @name set_id.jstree + * @param {Object} node + * @param {String} old the old id + */ + this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); + return true; + }, + /** + * get the text value of a node + * @name get_text(obj) + * @param {mixed} obj the node + * @return {String} + */ + get_text : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.text; + }, + /** + * set the text value of a node. Used internally, please use `rename_node(obj, val)`. + * @private + * @name set_text(obj, val) + * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes + * @param {String} val the new text value + * @return {Boolean} + * @trigger set_text.jstree + */ + set_text : function (obj, val) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_text(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + obj.text = val; + if(this.get_node(obj, true).length) { + this.redraw_node(obj.id); + } + /** + * triggered when a node text value is changed + * @event + * @name set_text.jstree + * @param {Object} obj + * @param {String} text the new value + */ + this.trigger('set_text',{ "obj" : obj, "text" : val }); + return true; + }, + /** + * gets a JSON representation of a node (or the whole tree) + * @name get_json([obj, options]) + * @param {mixed} obj + * @param {Object} options + * @param {Boolean} options.no_state do not return state information + * @param {Boolean} options.no_id do not return ID + * @param {Boolean} options.no_children do not include children + * @param {Boolean} options.no_data do not include node data + * @param {Boolean} options.no_li_attr do not include LI attributes + * @param {Boolean} options.no_a_attr do not include A attributes + * @param {Boolean} options.flat return flat JSON instead of nested + * @return {Object} + */ + get_json : function (obj, options, flat) { + obj = this.get_node(obj || $.jstree.root); + if(!obj) { return false; } + if(options && options.flat && !flat) { flat = []; } + var tmp = { + 'id' : obj.id, + 'text' : obj.text, + 'icon' : this.get_icon(obj), + 'li_attr' : $.extend(true, {}, obj.li_attr), + 'a_attr' : $.extend(true, {}, obj.a_attr), + 'state' : {}, + 'data' : options && options.no_data ? false : $.extend(true, {}, obj.data) + //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), + }, i, j; + if(options && options.flat) { + tmp.parent = obj.parent; + } + else { + tmp.children = []; + } + if(!options || !options.no_state) { + for(i in obj.state) { + if(obj.state.hasOwnProperty(i)) { + tmp.state[i] = obj.state[i]; + } + } + } else { + delete tmp.state; + } + if(options && options.no_li_attr) { + delete tmp.li_attr; + } + if(options && options.no_a_attr) { + delete tmp.a_attr; + } + if(options && options.no_id) { + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + } + if(options && options.flat && obj.id !== $.jstree.root) { + flat.push(tmp); + } + if(!options || !options.no_children) { + for(i = 0, j = obj.children.length; i < j; i++) { + if(options && options.flat) { + this.get_json(obj.children[i], options, flat); + } + else { + tmp.children.push(this.get_json(obj.children[i], options)); + } + } + } + return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); + }, + /** + * create a new node (do not confuse with load_node) + * @name create_node([par, node, pos, callback, is_loaded]) + * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) + * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) + * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" + * @param {Function} callback a function to be called once the node is created + * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded + * @return {String} the ID of the newly create node + * @trigger model.jstree, create_node.jstree + */ + create_node : function (par, node, pos, callback, is_loaded) { + if(par === null) { par = $.jstree.root; } + par = this.get_node(par); + if(!par) { return false; } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); + } + if(!node) { node = { "text" : this.get_string('New node') }; } + if(typeof node === "string") { node = { "text" : node }; } + if(node.text === undefined) { node.text = this.get_string('New node'); } + var tmp, dpc, i, j; + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children); + par = tmp; + break; + case "after" : + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children) + 1; + par = tmp; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > par.children.length) { pos = par.children.length; } + if(!node.id) { node.id = true; } + if(!this.check("create_node", node, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, par.id, par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : par.id }); + + par.children_d = par.children_d.concat(dpc); + for(i = 0, j = par.parents.length; i < j; i++) { + this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); + } + node = tmp; + tmp = []; + for(i = 0, j = par.children.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = par.children[i]; + } + tmp[pos] = node.id; + par.children = tmp; + + this.redraw_node(par, true); + if(callback) { callback.call(this, this.get_node(node)); } + /** + * triggered when a node is created + * @event + * @name create_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the new node among the parent's children + */ + this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); + return node.id; + }, + /** + * set the text value of a node + * @name rename_node(obj, val) + * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name + * @param {String} val the new text value + * @return {Boolean} + * @trigger rename_node.jstree + */ + rename_node : function (obj, val) { + var t1, t2, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.rename_node(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.text; + if(!this.check("rename_node", obj, this.get_parent(obj), val)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) + /** + * triggered when a node is renamed + * @event + * @name rename_node.jstree + * @param {Object} node + * @param {String} text the new value + * @param {String} old the old value + */ + this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); + return true; + }, + /** + * remove a node + * @name delete_node(obj) + * @param {mixed} obj the node, you can pass an array to delete multiple nodes + * @return {Boolean} + * @trigger delete_node.jstree, changed.jstree + */ + delete_node : function (obj) { + var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.delete_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + par = this.get_node(obj.parent); + pos = $.inArray(obj.id, par.children); + c = false; + if(!this.check("delete_node", obj, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(pos !== -1) { + par.children = $.vakata.array_remove(par.children, pos); + } + tmp = obj.children_d.concat([]); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + for(k = 0, l = tmp.length; k < l; k++) { + if(this._model.data[tmp[k]].state.selected) { + c = true; + break; + } + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + /** + * triggered when a node is deleted + * @event + * @name delete_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + */ + this.trigger('delete_node', { "node" : obj, "parent" : par.id }); + if(c) { + this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); + } + for(k = 0, l = tmp.length; k < l; k++) { + delete this._model.data[tmp[k]]; + } + if($.inArray(this._data.core.focused, tmp) !== -1) { + this._data.core.focused = null; + top = this.element[0].scrollTop; + lft = this.element[0].scrollLeft; + if(par.id === $.jstree.root) { + if (this._model.data[$.jstree.root].children[0]) { + this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); + } + } + else { + this.get_node(par, true).children('.jstree-anchor').focus(); + } + this.element[0].scrollTop = top; + this.element[0].scrollLeft = lft; + } + this.redraw_node(par, true); + return true; + }, + /** + * check if an operation is premitted on the tree. Used internally. + * @private + * @name check(chk, obj, par, pos) + * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" + * @param {mixed} obj the node + * @param {mixed} par the parent + * @param {mixed} pos the position to insert at, or if "rename_node" - the new name + * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node + * @return {Boolean} + */ + check : function (chk, obj, par, pos, more) { + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, + chc = this.settings.core.check_callback; + if(chk === "move_node" || chk === "copy_node") { + if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + } + if(tmp && tmp.data) { tmp = tmp.data; } + if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { + if(tmp.functions[chk] === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return tmp.functions[chk]; + } + if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + return true; + }, + /** + * get the last error + * @name last_error() + * @return {Object} + */ + last_error : function () { + return this._data.core.last_error; + }, + /** + * move a node to a new parent + * @name move_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to move, pass an array to move multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger move_node.jstree + */ + move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(is_multi) { + if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { + if(old_ins) { old_ins.delete_node(obj); } + return tmp; + } + return false; + } + //var m = this._model.data; + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(obj.parent === new_par.id) { + dpc = new_par.children.concat(); + tmp = $.inArray(obj.id, dpc); + if(tmp !== -1) { + dpc = $.vakata.array_remove(dpc, tmp); + if(pos > tmp) { pos--; } + } + tmp = []; + for(i = 0, j = dpc.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = dpc[i]; + } + tmp[pos] = obj.id; + new_par.children = tmp; + this._node_changed(new_par.id); + this.redraw(new_par.id === $.jstree.root); + } + else { + // clean old parent and up + tmp = obj.children_d.concat(); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + dpc = []; + p = old_ins._model.data[obj.parents[i]].children_d; + for(k = 0, l = p.length; k < l; k++) { + if($.inArray(p[k], tmp) === -1) { + dpc.push(p[k]); + } + } + old_ins._model.data[obj.parents[i]].children_d = dpc; + } + old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = obj.id; + new_par.children = dpc; + new_par.children_d.push(obj.id); + new_par.children_d = new_par.children_d.concat(obj.children_d); + + // update object + obj.parent = new_par.id; + tmp = new_par.parents.concat(); + tmp.unshift(new_par.id); + p = obj.parents.length; + obj.parents = tmp; + + // update object children + tmp = tmp.concat(); + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); + Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); + } + + if(old_par === $.jstree.root || new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(old_par); + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(); + } + } + if(callback) { callback.call(this, obj, new_par, pos); } + /** + * triggered when a node is moved + * @event + * @name move_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the old position of the node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return obj.id; + }, + /** + * copy a node to a new parent + * @name copy_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to copy, pass an array to copy multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger model.jstree copy_node.jstree + */ + copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; + if(!node) { return false; } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = tmp.id; + new_par.children = dpc; + new_par.children_d.push(tmp.id); + new_par.children_d = new_par.children_d.concat(tmp.children_d); + + if(new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(new_par.id === $.jstree.root); + } + if(callback) { callback.call(this, tmp, new_par, pos); } + /** + * triggered when a node is copied + * @event + * @name copy_node.jstree + * @param {Object} node the copied node + * @param {Object} original the original node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the position of the original node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return tmp.id; + }, + /** + * cut a node (a later call to `paste(obj)` would move the node) + * @name cut(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger cut.jstree + */ + cut : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'move_node'; + /** + * triggered when nodes are added to the buffer for moving + * @event + * @name cut.jstree + * @param {Array} node + */ + this.trigger('cut', { "node" : obj }); + }, + /** + * copy a node (a later call to `paste(obj)` would copy the node) + * @name copy(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger copy.jstree + */ + copy : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'copy_node'; + /** + * triggered when nodes are added to the buffer for copying + * @event + * @name copy.jstree + * @param {Array} node + */ + this.trigger('copy', { "node" : obj }); + }, + /** + * get the current buffer (any nodes that are waiting for a paste operation) + * @name get_buffer() + * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) + */ + get_buffer : function () { + return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; + }, + /** + * check if there is something in the buffer to paste + * @name can_paste() + * @return {Boolean} + */ + can_paste : function () { + return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; + }, + /** + * copy or move the previously cut or copied nodes to a new parent + * @name paste(obj [, pos]) + * @param {mixed} obj the new parent + * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` + * @trigger paste.jstree + */ + paste : function (obj, pos) { + obj = this.get_node(obj); + if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } + if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { + /** + * triggered when paste is invoked + * @event + * @name paste.jstree + * @param {String} parent the ID of the receiving node + * @param {Array} node the nodes in the buffer + * @param {String} mode the performed operation - "copy_node" or "move_node" + */ + this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); + } + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + }, + /** + * clear the buffer of previously copied or cut nodes + * @name clear_buffer() + * @trigger clear_buffer.jstree + */ + clear_buffer : function () { + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + /** + * triggered when the copy / cut buffer is cleared + * @event + * @name clear_buffer.jstree + */ + this.trigger('clear_buffer'); + }, + /** + * put a node in edit mode (input field to rename the node) + * @name edit(obj [, default_text, callback]) + * @param {mixed} obj + * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) + * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text + */ + edit : function (obj, default_text, callback) { + var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; + obj = this.get_node(obj); + if(!obj) { return false; } + if(this.settings.core.check_callback === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' }; + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + tmp = obj; + default_text = typeof default_text === 'string' ? default_text : obj.text; + this.set_text(obj, ""); + obj = this._open_to(obj); + tmp.text = default_text; + + rtl = this._data.core.rtl; + w = this.element.width(); + this._data.core.focused = tmp.id; + a = obj.children('.jstree-anchor').focus(); + s = $(''); + /*! + oi = obj.children("i:visible"), + ai = a.children("i:visible"), + w1 = oi.width() * oi.length, + w2 = ai.width() * ai.length, + */ + t = default_text; + h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); + h2 = $("<"+"input />", { + "value" : t, + "class" : "jstree-rename-input", + // "size" : t.length, + "css" : { + "padding" : "0", + "border" : "1px solid silver", + "box-sizing" : "border-box", + "display" : "inline-block", + "height" : (this._data.core.li_height) + "px", + "lineHeight" : (this._data.core.li_height) + "px", + "width" : "150px" // will be set a bit further down + }, + "blur" : $.proxy(function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var i = s.children(".jstree-rename-input"), + v = i.val(), + f = this.settings.core.force_text, + nv; + if(v === "") { v = t; } + h1.remove(); + s.replaceWith(a); + s.remove(); + t = f ? t : $('
    ').append($.parseHTML(t)).html(); + this.set_text(obj, t); + nv = !!this.rename_node(obj, f ? $('
    ').text(v).text() : $('
    ').append($.parseHTML(v)).html()); + if(!nv) { + this.set_text(obj, t); // move this up? and fix #483 + } + this._data.core.focused = tmp.id; + setTimeout($.proxy(function () { + var node = this.get_node(tmp.id, true); + if(node.length) { + this._data.core.focused = tmp.id; + node.children('.jstree-anchor').focus(); + } + }, this), 0); + if(callback) { + callback.call(this, tmp, nv, cancel); + } + h2 = null; + }, this), + "keydown" : function (e) { + var key = e.which; + if(key === 27) { + cancel = true; + this.value = t; + } + if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { + e.stopImmediatePropagation(); + } + if(key === 27 || key === 13) { + e.preventDefault(); + this.blur(); + } + }, + "click" : function (e) { e.stopImmediatePropagation(); }, + "mousedown" : function (e) { e.stopImmediatePropagation(); }, + "keyup" : function (e) { + h2.width(Math.min(h1.text("pW" + this.value).width(),w)); + }, + "keypress" : function(e) { + if(e.which === 13) { return false; } + } + }); + fn = { + fontFamily : a.css('fontFamily') || '', + fontSize : a.css('fontSize') || '', + fontWeight : a.css('fontWeight') || '', + fontStyle : a.css('fontStyle') || '', + fontStretch : a.css('fontStretch') || '', + fontVariant : a.css('fontVariant') || '', + letterSpacing : a.css('letterSpacing') || '', + wordSpacing : a.css('wordSpacing') || '' + }; + s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); + a.replaceWith(s); + h1.css(fn); + h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); + $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { + if (h2 && e.target !== h2) { + $(h2).blur(); + } + }); + }, + + + /** + * changes the theme + * @name set_theme(theme_name [, theme_url]) + * @param {String} theme_name the name of the new theme to apply + * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. + * @trigger set_theme.jstree + */ + set_theme : function (theme_name, theme_url) { + if(!theme_name) { return false; } + if(theme_url === true) { + var dir = this.settings.core.themes.dir; + if(!dir) { dir = $.jstree.path + '/themes'; } + theme_url = dir + '/' + theme_name + '/style.css'; + } + if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { + $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); + themes_loaded.push(theme_url); + } + if(this._data.core.themes.name) { + this.element.removeClass('jstree-' + this._data.core.themes.name); + } + this._data.core.themes.name = theme_name; + this.element.addClass('jstree-' + theme_name); + this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); + /** + * triggered when a theme is set + * @event + * @name set_theme.jstree + * @param {String} theme the new theme + */ + this.trigger('set_theme', { 'theme' : theme_name }); + }, + /** + * gets the name of the currently applied theme name + * @name get_theme() + * @return {String} + */ + get_theme : function () { return this._data.core.themes.name; }, + /** + * changes the theme variant (if the theme has variants) + * @name set_theme_variant(variant_name) + * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) + */ + set_theme_variant : function (variant_name) { + if(this._data.core.themes.variant) { + this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + this._data.core.themes.variant = variant_name; + if(variant_name) { + this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + }, + /** + * gets the name of the currently applied theme variant + * @name get_theme() + * @return {String} + */ + get_theme_variant : function () { return this._data.core.themes.variant; }, + /** + * shows a striped background on the container (if the theme supports it) + * @name show_stripes() + */ + show_stripes : function () { + this._data.core.themes.stripes = true; + this.get_container_ul().addClass("jstree-striped"); + /** + * triggered when stripes are shown + * @event + * @name show_stripes.jstree + */ + this.trigger('show_stripes'); + }, + /** + * hides the striped background on the container + * @name hide_stripes() + */ + hide_stripes : function () { + this._data.core.themes.stripes = false; + this.get_container_ul().removeClass("jstree-striped"); + /** + * triggered when stripes are hidden + * @event + * @name hide_stripes.jstree + */ + this.trigger('hide_stripes'); + }, + /** + * toggles the striped background on the container + * @name toggle_stripes() + */ + toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, + /** + * shows the connecting dots (if the theme supports it) + * @name show_dots() + */ + show_dots : function () { + this._data.core.themes.dots = true; + this.get_container_ul().removeClass("jstree-no-dots"); + /** + * triggered when dots are shown + * @event + * @name show_dots.jstree + */ + this.trigger('show_dots'); + }, + /** + * hides the connecting dots + * @name hide_dots() + */ + hide_dots : function () { + this._data.core.themes.dots = false; + this.get_container_ul().addClass("jstree-no-dots"); + /** + * triggered when dots are hidden + * @event + * @name hide_dots.jstree + */ + this.trigger('hide_dots'); + }, + /** + * toggles the connecting dots + * @name toggle_dots() + */ + toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, + /** + * show the node icons + * @name show_icons() + */ + show_icons : function () { + this._data.core.themes.icons = true; + this.get_container_ul().removeClass("jstree-no-icons"); + /** + * triggered when icons are shown + * @event + * @name show_icons.jstree + */ + this.trigger('show_icons'); + }, + /** + * hide the node icons + * @name hide_icons() + */ + hide_icons : function () { + this._data.core.themes.icons = false; + this.get_container_ul().addClass("jstree-no-icons"); + /** + * triggered when icons are hidden + * @event + * @name hide_icons.jstree + */ + this.trigger('hide_icons'); + }, + /** + * toggle the node icons + * @name toggle_icons() + */ + toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, + /** + * show the node ellipsis + * @name show_icons() + */ + show_ellipsis : function () { + this._data.core.themes.ellipsis = true; + this.get_container_ul().addClass("jstree-ellipsis"); + /** + * triggered when ellisis is shown + * @event + * @name show_ellipsis.jstree + */ + this.trigger('show_ellipsis'); + }, + /** + * hide the node ellipsis + * @name hide_ellipsis() + */ + hide_ellipsis : function () { + this._data.core.themes.ellipsis = false; + this.get_container_ul().removeClass("jstree-ellipsis"); + /** + * triggered when ellisis is hidden + * @event + * @name hide_ellipsis.jstree + */ + this.trigger('hide_ellipsis'); + }, + /** + * toggle the node ellipsis + * @name toggle_icons() + */ + toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, + /** + * set the node icon for a node + * @name set_icon(obj, icon) + * @param {mixed} obj + * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + */ + set_icon : function (obj, icon) { + var t1, t2, dom, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_icon(obj[t1], icon); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.icon; + obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; + dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); + if(icon === false) { + this.hide_icon(obj); + } + else if(icon === true || icon === null || icon === undefined || icon === '') { + dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); + if(old === false) { this.show_icon(obj); } + } + else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { + dom.removeClass(old).css("background",""); + dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + else { + dom.removeClass(old).css("background",""); + dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + return true; + }, + /** + * get the node icon for a node + * @name get_icon(obj) + * @param {mixed} obj + * @return {String} + */ + get_icon : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.icon; + }, + /** + * hide the icon on an individual node + * @name hide_icon(obj) + * @param {mixed} obj + */ + hide_icon : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + obj.icon = false; + this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); + return true; + }, + /** + * show the icon on an individual node + * @name show_icon(obj) + * @param {mixed} obj + */ + show_icon : function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + dom = this.get_node(obj, true); + obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; + if(!obj.icon) { obj.icon = true; } + dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); + return true; + } + }; + + // helpers + $.vakata = {}; + // collect attributes + $.vakata.attributes = function(node, with_values) { + node = $(node)[0]; + var attr = with_values ? {} : []; + if(node && node.attributes) { + $.each(node.attributes, function (i, v) { + if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } + if(v.value !== null && $.trim(v.value) !== '') { + if(with_values) { attr[v.name] = v.value; } + else { attr.push(v.name); } + } + }); + } + return attr; + }; + $.vakata.array_unique = function(array) { + var a = [], i, j, l, o = {}; + for(i = 0, l = array.length; i < l; i++) { + if(o[array[i]] === undefined) { + a.push(array[i]); + o[array[i]] = true; + } + } + return a; + }; + // remove item from array + $.vakata.array_remove = function(array, from) { + array.splice(from, 1); + return array; + //var rest = array.slice((to || from) + 1 || array.length); + //array.length = from < 0 ? array.length + from : from; + //array.push.apply(array, rest); + //return array; + }; + // remove item from array + $.vakata.array_remove_item = function(array, item) { + var tmp = $.inArray(item, array); + return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; + }; + $.vakata.array_filter = function(c,a,b,d,e) { + if (c.filter) { + return c.filter(a, b); + } + d=[]; + for (e in c) { + if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { + d.push(c[e]); + } + } + return d; + }; + + +/** + * ### Changed plugin + * + * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes. + */ + + $.jstree.plugins.changed = function (options, parent) { + var last = []; + this.trigger = function (ev, data) { + var i, j; + if(!data) { + data = {}; + } + if(ev.replace('.jstree','') === 'changed') { + data.changed = { selected : [], deselected : [] }; + var tmp = {}; + for(i = 0, j = last.length; i < j; i++) { + tmp[last[i]] = 1; + } + for(i = 0, j = data.selected.length; i < j; i++) { + if(!tmp[data.selected[i]]) { + data.changed.selected.push(data.selected[i]); + } + else { + tmp[data.selected[i]] = 2; + } + } + for(i = 0, j = last.length; i < j; i++) { + if(tmp[last[i]] === 1) { + data.changed.deselected.push(last[i]); + } + } + last = data.selected.slice(); + } + /** + * triggered when selection changes (the "changed" plugin enhances the original event with more data) + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event + * @param {Object} event the event (if any) that triggered this changed event + * @plugin changed + */ + parent.trigger.call(this, ev, data); + }; + this.refresh = function (skip_loading, forget_state) { + last = []; + return parent.refresh.apply(this, arguments); + }; + }; + +/** + * ### Checkbox plugin + * + * This plugin renders checkbox icons in front of each node, making multiple selection much easier. + * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. + */ + + var _i = document.createElement('I'); + _i.className = 'jstree-icon jstree-checkbox'; + _i.setAttribute('role', 'presentation'); + /** + * stores all defaults for the checkbox plugin + * @name $.jstree.defaults.checkbox + * @plugin checkbox + */ + $.jstree.defaults.checkbox = { + /** + * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + visible : true, + /** + * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. + * @name $.jstree.defaults.checkbox.three_state + * @plugin checkbox + */ + three_state : true, + /** + * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. + * @name $.jstree.defaults.checkbox.whole_node + * @plugin checkbox + */ + whole_node : true, + /** + * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. + * @name $.jstree.defaults.checkbox.keep_selected_style + * @plugin checkbox + */ + keep_selected_style : true, + /** + * This setting controls how cascading and undetermined nodes are applied. + * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. + * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. + * @name $.jstree.defaults.checkbox.cascade + * @plugin checkbox + */ + cascade : '', + /** + * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. + * @name $.jstree.defaults.checkbox.tie_selection + * @plugin checkbox + */ + tie_selection : true + }; + $.jstree.plugins.checkbox = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.checkbox.uto = false; + this._data.checkbox.selected = []; + if(this.settings.checkbox.three_state) { + this.settings.checkbox.cascade = 'up+down+undetermined'; + } + this.element + .on("init.jstree", $.proxy(function () { + this._data.checkbox.visible = this.settings.checkbox.visible; + if(!this.settings.checkbox.keep_selected_style) { + this.element.addClass('jstree-checkbox-no-clicked'); + } + if(this.settings.checkbox.tie_selection) { + this.element.addClass('jstree-checkbox-selection'); + } + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); + }, this)); + if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + }, this)); + } + if(!this.settings.checkbox.tie_selection) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + i, j; + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); + if(m[dpc[i]].state.checked) { + this._data.checkbox.selected.push(dpc[i]); + } + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + chd = [], + c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; + + if(s.indexOf('down') !== -1) { + // apply down + if(p.state[ t ? 'selected' : 'checked' ]) { + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); + } + else { + for(i = 0, j = dpc.length; i < j; i++) { + if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { + for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { + m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); + } + } + } + } + + if(s.indexOf('up') !== -1) { + // apply up + for(i = 0, j = p.children_d.length; i < j; i++) { + if(!m[p.children_d[i]].children.length) { + chd.push(m[p.children_d[i]].parent); + } + } + chd = $.vakata.array_unique(chd); + for(k = 0, l = chd.length; k < l; k++) { + p = m[chd[k]]; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + } + + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); + }, this)) + .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + m = this._model.data, + par = this.get_node(obj.parent), + dom = this.get_node(obj, true), + i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; + + for (i = 0, j = cur.length; i < j; i++) { + sel[cur[i]] = true; + } + // apply down + if(s.indexOf('down') !== -1) { + //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); + for(i = 0, j = obj.children_d.length; i < j; i++) { + sel[obj.children_d[i]] = true; + tmp = m[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = true; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + while(par && par.id !== $.jstree.root) { + c = 0; + for(i = 0, j = par.children.length; i < j; i++) { + c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + par.state[ t ? 'selected' : 'checked' ] = true; + sel[par.id] = true; + //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); + tmp = this.get_node(par, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + par = this.get_node(par.parent); + } + } + + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', true); + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { + var obj = this.get_node($.jstree.root), + m = this._model.data, + i, j, tmp; + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = m[obj.children_d[i]]; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + dom = this.get_node(obj, true), + i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}; + if(obj && obj.original && obj.original.state && obj.original.state.undetermined) { + obj.original.state.undetermined = false; + } + + // apply down + if(s.indexOf('down') !== -1) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = this._model.data[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + for(i = 0, j = obj.parents.length; i < j; i++) { + tmp = this._model.data[obj.parents[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + tmp = this.get_node(obj.parents[i], true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + sel = {}; + for(i = 0, j = cur.length; i < j; i++) { + // apply down + apply up + if( + (s.indexOf('down') === -1 || $.inArray(cur[i], obj.children_d) === -1) && + (s.indexOf('up') === -1 || $.inArray(cur[i], obj.parents) === -1) + ) { + sel[cur[i]] = true; + } + } + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', false); + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1) { + this.element + .on('delete_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var p = this.get_node(data.parent), + m = this._model.data, + i, j, c, tmp, t = this.settings.checkbox.tie_selection; + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + }, this)) + .on('move_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var is_multi = data.is_multi, + old_par = data.old_parent, + new_par = this.get_node(data.parent), + m = this._model.data, + p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; + if(!is_multi) { + p = this.get_node(old_par); + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + p = new_par; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + if(!p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + else { + if(p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = false; + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + } + p = this.get_node(p.parent); + } + }, this)); + } + }; + /** + * set the undetermined state where and if necessary. Used internally. + * @private + * @name _undetermined() + * @plugin checkbox + */ + this._undetermined = function () { + if(this.element === null) { return; } + var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this; + for(i = 0, j = s.length; i < j; i++) { + if(m[s[i]] && m[s[i]].parents) { + for(k = 0, l = m[s[i]].parents.length; k < l; k++) { + if(o[m[s[i]].parents[k]] !== undefined) { + break; + } + if(m[s[i]].parents[k] !== $.jstree.root) { + o[m[s[i]].parents[k]] = true; + p.push(m[s[i]].parents[k]); + } + } + } + } + // attempt for server side undetermined state + this.element.find('.jstree-closed').not(':has(.jstree-children)') + .each(function () { + var tmp = tt.get_node(this), tmp2; + if(!tmp.state.loaded) { + if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { + if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { + o[tmp.id] = true; + p.push(tmp.id); + } + for(k = 0, l = tmp.parents.length; k < l; k++) { + if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { + o[tmp.parents[k]] = true; + p.push(tmp.parents[k]); + } + } + } + } + else { + for(i = 0, j = tmp.children_d.length; i < j; i++) { + tmp2 = m[tmp.children_d[i]]; + if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { + if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { + o[tmp2.id] = true; + p.push(tmp2.id); + } + for(k = 0, l = tmp2.parents.length; k < l; k++) { + if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { + o[tmp2.parents[k]] = true; + p.push(tmp2.parents[k]); + } + } + } + } + } + }); + + this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); + for(i = 0, j = p.length; i < j; i++) { + if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { + s = this.get_node(p[i], true); + if(s && s.length) { + s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); + } + } + } + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } + icon = _i.cloneNode(false); + if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + } + return obj; + }; + /** + * show the node checkbox icons + * @name show_checkboxes() + * @plugin checkbox + */ + this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; + /** + * hide the node checkbox icons + * @name hide_checkboxes() + * @plugin checkbox + */ + this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; + /** + * toggle the node icons + * @name toggle_checkboxes() + * @plugin checkbox + */ + this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; + /** + * checks if a node is in an undetermined state + * @name is_undetermined(obj) + * @param {mixed} obj + * @return {Boolean} + */ + this.is_undetermined = function (obj) { + obj = this.get_node(obj); + var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; + if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { + return false; + } + if(!obj.state.loaded && obj.original.state.undetermined === true) { + return true; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { + return true; + } + } + return false; + }; + /** + * disable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger disable_checkbox.jstree + * @plugin checkbox + */ + this.disable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = true; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is disabled + * @event + * @name disable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('disable_checkbox', { 'node' : obj }); + } + }; + /** + * enable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger enable_checkbox.jstree + * @plugin checkbox + */ + this.enable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = false; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is enabled + * @event + * @name enable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('enable_checkbox', { 'node' : obj }); + } + }; + + this.activate_node = function (obj, e) { + if($(e.target).hasClass('jstree-checkbox-disabled')) { + return false; + } + if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { + e.ctrlKey = true; + } + if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { + return parent.activate_node.call(this, obj, e); + } + if(this.is_disabled(obj)) { + return false; + } + if(this.is_checked(obj)) { + this.uncheck_node(obj, e); + } + else { + this.check_node(obj, e); + } + this.trigger('activate_node', { 'node' : this.get_node(obj) }); + }; + + /** + * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) + * @name check_node(obj) + * @param {mixed} obj an array can be used to check multiple nodes + * @trigger check_node.jstree + * @plugin checkbox + */ + this.check_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.check_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checked) { + obj.state.checked = true; + this._data.checkbox.selected.push(obj.id); + if(dom && dom.length) { + dom.children('.jstree-anchor').addClass('jstree-checked'); + } + /** + * triggered when an node is checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this check_node + * @plugin checkbox + */ + this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) + * @name uncheck_node(obj) + * @param {mixed} obj an array can be used to uncheck multiple nodes + * @trigger uncheck_node.jstree + * @plugin checkbox + */ + this.uncheck_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.uncheck_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checked) { + obj.state.checked = false; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); + if(dom.length) { + dom.children('.jstree-anchor').removeClass('jstree-checked'); + } + /** + * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this uncheck_node + * @plugin checkbox + */ + this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) + * @name check_all() + * @trigger check_all.jstree, changed.jstree + * @plugin checkbox + */ + this.check_all = function () { + if(this.settings.checkbox.tie_selection) { return this.select_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_all.jstree + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); + }; + /** + * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) + * @name uncheck_all() + * @trigger uncheck_all.jstree + * @plugin checkbox + */ + this.uncheck_all = function () { + if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = false; + } + } + this._data.checkbox.selected = []; + this.element.find('.jstree-checked').removeClass('jstree-checked'); + /** + * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); + }; + /** + * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) + * @name is_checked(obj) + * @param {mixed} obj + * @return {Boolean} + * @plugin checkbox + */ + this.is_checked = function (obj) { + if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + return obj.state.checked; + }; + /** + * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) + * @name get_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } + return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; + }; + /** + * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) + * @name get_top_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_top_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } + var tmp = this.get_checked(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }; + /** + * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) + * @name get_bottom_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_bottom_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } + var tmp = this.get_checked(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }; + this.load_node = function (obj, callback) { + var k, l, i, j, c, tmp; + if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { + tmp = this.get_node(obj); + if(tmp && tmp.state.loaded) { + for(k = 0, l = tmp.children_d.length; k < l; k++) { + if(this._model.data[tmp.children_d[k]].state.checked) { + c = true; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); + } + } + } + } + return parent.load_node.apply(this, arguments); + }; + this.get_state = function () { + var state = parent.get_state.apply(this, arguments); + if(this.settings.checkbox.tie_selection) { return state; } + state.checkbox = this._data.checkbox.selected.slice(); + return state; + }; + this.set_state = function (state, callback) { + var res = parent.set_state.apply(this, arguments); + if(res && state.checkbox) { + if(!this.settings.checkbox.tie_selection) { + this.uncheck_all(); + var _this = this; + $.each(state.checkbox, function (i, v) { + _this.check_node(v); + }); + } + delete state.checkbox; + this.set_state(state, callback); + return false; + } + return res; + }; + this.refresh = function (skip_loading, forget_state) { + if(!this.settings.checkbox.tie_selection) { + this._data.checkbox.selected = []; + } + return parent.refresh.apply(this, arguments); + }; + }; + + // include the checkbox plugin by default + // $.jstree.defaults.plugins.push("checkbox"); + +/** + * ### Conditionalselect plugin + * + * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). + */ + + /** + * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + $.jstree.defaults.conditionalselect = function () { return true; }; + $.jstree.plugins.conditionalselect = function (options, parent) { + // own function + this.activate_node = function (obj, e) { + if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { + parent.activate_node.call(this, obj, e); + } + }; + }; + + +/** + * ### Contextmenu plugin + * + * Shows a context menu when a node is right-clicked. + */ + + /** + * stores all defaults for the contextmenu plugin + * @name $.jstree.defaults.contextmenu + * @plugin contextmenu + */ + $.jstree.defaults.contextmenu = { + /** + * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. + * @name $.jstree.defaults.contextmenu.select_node + * @plugin contextmenu + */ + select_node : true, + /** + * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. + * @name $.jstree.defaults.contextmenu.show_at_node + * @plugin contextmenu + */ + show_at_node : true, + /** + * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). + * + * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. + * + * * `separator_before` - a boolean indicating if there should be a separator before this item + * * `separator_after` - a boolean indicating if there should be a separator after this item + * * `_disabled` - a boolean indicating if this action should be disabled + * * `label` - a string - the name of the action (could be a function returning a string) + * * `title` - a string - an optional tooltip for the item + * * `action` - a function to be executed if this item is chosen, the function will receive + * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) + * * `shortcut_label` - shortcut label (like for example `F2` for rename) + * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered + * + * @name $.jstree.defaults.contextmenu.items + * @plugin contextmenu + */ + items : function (o, cb) { // Could be an object directly + return { + "create" : { + "separator_before" : false, + "separator_after" : true, + "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), + "label" : "Create", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.create_node(obj, {}, "last", function (new_node) { + setTimeout(function () { inst.edit(new_node); },0); + }); + } + }, + "rename" : { + "separator_before" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Rename", + /*! + "shortcut" : 113, + "shortcut_label" : 'F2', + "icon" : "glyphicon glyphicon-leaf", + */ + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.edit(obj); + } + }, + "remove" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Delete", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.delete_node(inst.get_selected()); + } + else { + inst.delete_node(obj); + } + } + }, + "ccp" : { + "separator_before" : true, + "icon" : false, + "separator_after" : false, + "label" : "Edit", + "action" : false, + "submenu" : { + "cut" : { + "separator_before" : false, + "separator_after" : false, + "label" : "Cut", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.cut(inst.get_top_selected()); + } + else { + inst.cut(obj); + } + } + }, + "copy" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "label" : "Copy", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.copy(inst.get_top_selected()); + } + else { + inst.copy(obj); + } + } + }, + "paste" : { + "separator_before" : false, + "icon" : false, + "_disabled" : function (data) { + return !$.jstree.reference(data.reference).can_paste(); + }, + "separator_after" : false, + "label" : "Paste", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.paste(obj); + } + } + } + } + }; + } + }; + + $.jstree.plugins.contextmenu = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + var last_ts = 0, cto = null, ex, ey; + this.element + .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { + if (e.target.tagName.toLowerCase() === 'input') { + return; + } + e.preventDefault(); + last_ts = e.ctrlKey ? +new Date() : 0; + if(data || cto) { + last_ts = (+new Date()) + 10000; + } + if(cto) { + clearTimeout(cto); + } + if(!this.is_loading(e.currentTarget)) { + this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click + $.vakata.context.hide(); + } + last_ts = 0; + }, this)) + .on("touchstart.jstree", ".jstree-anchor", function (e) { + if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { + return; + } + ex = e.originalEvent.changedTouches[0].clientX; + ey = e.originalEvent.changedTouches[0].clientY; + cto = setTimeout(function () { + $(e.currentTarget).trigger('contextmenu', true); + }, 750); + }) + .on('touchmove.vakata.jstree', function (e) { + if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 50 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 50)) { + clearTimeout(cto); + } + }) + .on('touchend.vakata.jstree', function (e) { + if(cto) { + clearTimeout(cto); + } + }); + + /*! + if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { + var el = null, tm = null; + this.element + .on("touchstart", ".jstree-anchor", function (e) { + el = e.currentTarget; + tm = +new Date(); + $(document).one("touchend", function (e) { + e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); + e.currentTarget = e.target; + tm = ((+(new Date())) - tm); + if(e.target === el && tm > 600 && tm < 1000) { + e.preventDefault(); + $(el).trigger('contextmenu', e); + } + el = null; + tm = null; + }); + }); + } + */ + $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { + this._data.contextmenu.visible = false; + $(data.reference).removeClass('jstree-context'); + }, this)); + }; + this.teardown = function () { + if(this._data.contextmenu.visible) { + $.vakata.context.hide(); + } + parent.teardown.call(this); + }; + + /** + * prepare and show the context menu for a node + * @name show_contextmenu(obj [, x, y]) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Object} e the event if available that triggered the contextmenu + * @plugin contextmenu + * @trigger show_contextmenu.jstree + */ + this.show_contextmenu = function (obj, x, y, e) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var s = this.settings.contextmenu, + d = this.get_node(obj, true), + a = d.children(".jstree-anchor"), + o = false, + i = false; + if(s.show_at_node || x === undefined || y === undefined) { + o = a.offset(); + x = o.left; + y = o.top + this._data.core.li_height; + } + if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { + this.activate_node(obj, e); + } + + i = s.items; + if($.isFunction(i)) { + i = i.call(this, obj, $.proxy(function (i) { + this._show_contextmenu(obj, x, y, i); + }, this)); + } + if($.isPlainObject(i)) { + this._show_contextmenu(obj, x, y, i); + } + }; + /** + * show the prepared context menu for a node + * @name _show_contextmenu(obj, x, y, i) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Number} i the object of items to show + * @plugin contextmenu + * @trigger show_contextmenu.jstree + * @private + */ + this._show_contextmenu = function (obj, x, y, i) { + var d = this.get_node(obj, true), + a = d.children(".jstree-anchor"); + $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { + var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; + $(data.element).addClass(cls); + a.addClass('jstree-context'); + }, this)); + this._data.contextmenu.visible = true; + $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); + /** + * triggered when the contextmenu is shown for a node + * @event + * @name show_contextmenu.jstree + * @param {Object} node the node + * @param {Number} x the x-coordinate of the menu relative to the document + * @param {Number} y the y-coordinate of the menu relative to the document + * @plugin contextmenu + */ + this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); + }; + }; + + // contextmenu helper + (function ($) { + var right_to_left = false, + vakata_context = { + element : false, + reference : false, + position_x : 0, + position_y : 0, + items : [], + html : "", + is_visible : false + }; + + $.vakata.context = { + settings : { + hide_onmouseleave : 0, + icons : true + }, + _trigger : function (event_name) { + $(document).triggerHandler("context_" + event_name + ".vakata", { + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }); + }, + _execute : function (i) { + i = vakata_context.items[i]; + return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { + "item" : i, + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }) : false; + }, + _parse : function (o, is_callback) { + if(!o) { return false; } + if(!is_callback) { + vakata_context.html = ""; + vakata_context.items = []; + } + var str = "", + sep = false, + tmp; + + if(is_callback) { str += "<"+"ul>"; } + $.each(o, function (i, val) { + if(!val) { return true; } + vakata_context.items.push(val); + if(!sep && val.separator_before) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + } + sep = false; + str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; + str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; + if($.vakata.context.settings.icons) { + str += "<"+"i "; + if(val.icon) { + if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } + else { str += " class='" + val.icon + "' "; } + } + str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; + } + str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + "<"+"/a>"; + if(val.submenu) { + tmp = $.vakata.context._parse(val.submenu, true); + if(tmp) { str += tmp; } + } + str += "<"+"/li>"; + if(val.separator_after) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + sep = true; + } + }); + str = str.replace(/
  • <\/li\>$/,""); + if(is_callback) { str += ""; } + /** + * triggered on the document when the contextmenu is parsed (HTML is built) + * @event + * @plugin contextmenu + * @name context_parse.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } + return str.length > 10 ? str : false; + }, + _show_submenu : function (o) { + o = $(o); + if(!o.length || !o.children("ul").length) { return; } + var e = o.children("ul"), + xl = o.offset().left, + x = xl + o.outerWidth(), + y = o.offset().top, + w = e.width(), + h = e.height(), + dw = $(window).width() + $(window).scrollLeft(), + dh = $(window).height() + $(window).scrollTop(); + // може да се спести е една проверка - дали няма някой от класовете вече нагоре + if(right_to_left) { + o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); + } + else { + o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); + } + if(y + h + 10 > dh) { + e.css("bottom","-1px"); + } + + //if does not fit - stick it to the side + if (o.hasClass('vakata-context-right')) { + if (xl < w) { + e.css("margin-right", xl - w); + } + } else { + if (dw - x < w) { + e.css("margin-left", dw - x - w); + } + } + + e.show(); + }, + show : function (reference, position, data) { + var o, e, x, y, w, h, dw, dh, cond = true; + if(vakata_context.element && vakata_context.element.length) { + vakata_context.element.width(''); + } + switch(cond) { + case (!position && !reference): + return false; + case (!!position && !!reference): + vakata_context.reference = reference; + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + case (!position && !!reference): + vakata_context.reference = reference; + o = reference.offset(); + vakata_context.position_x = o.left + reference.outerHeight(); + vakata_context.position_y = o.top; + break; + case (!!position && !reference): + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + } + if(!!reference && !data && $(reference).data('vakata_contextmenu')) { + data = $(reference).data('vakata_contextmenu'); + } + if($.vakata.context._parse(data)) { + vakata_context.element.html(vakata_context.html); + } + if(vakata_context.items.length) { + vakata_context.element.appendTo("body"); + e = vakata_context.element; + x = vakata_context.position_x; + y = vakata_context.position_y; + w = e.width(); + h = e.height(); + dw = $(window).width() + $(window).scrollLeft(); + dh = $(window).height() + $(window).scrollTop(); + if(right_to_left) { + x -= (e.outerWidth() - $(reference).outerWidth()); + if(x < $(window).scrollLeft() + 20) { + x = $(window).scrollLeft() + 20; + } + } + if(x + w + 20 > dw) { + x = dw - (w + 20); + } + if(y + h + 20 > dh) { + y = dh - (h + 20); + } + + vakata_context.element + .css({ "left" : x, "top" : y }) + .show() + .find('a').first().focus().parent().addClass("vakata-context-hover"); + vakata_context.is_visible = true; + /** + * triggered on the document when the contextmenu is shown + * @event + * @plugin contextmenu + * @name context_show.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("show"); + } + }, + hide : function () { + if(vakata_context.is_visible) { + vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); + vakata_context.is_visible = false; + /** + * triggered on the document when the contextmenu is hidden + * @event + * @plugin contextmenu + * @name context_hide.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("hide"); + } + } + }; + $(function () { + right_to_left = $("body").css("direction") === "rtl"; + var to = false; + + vakata_context.element = $("
      "); + vakata_context.element + .on("mouseenter", "li", function (e) { + e.stopImmediatePropagation(); + + if($.contains(this, e.relatedTarget)) { + // премахнато заради delegate mouseleave по-долу + // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + return; + } + + if(to) { clearTimeout(to); } + vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); + + $(this) + .siblings().find("ul").hide().end().end() + .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); + $.vakata.context._show_submenu(this); + }) + // тестово - дали не натоварва? + .on("mouseleave", "li", function (e) { + if($.contains(this, e.relatedTarget)) { return; } + $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); + }) + .on("mouseleave", function (e) { + $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + if($.vakata.context.settings.hide_onmouseleave) { + to = setTimeout( + (function (t) { + return function () { $.vakata.context.hide(); }; + }(this)), $.vakata.context.settings.hide_onmouseleave); + } + }) + .on("click", "a", function (e) { + e.preventDefault(); + //}) + //.on("mouseup", "a", function (e) { + if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { + $.vakata.context.hide(); + } + }) + .on('keydown', 'a', function (e) { + var o = null; + switch(e.which) { + case 13: + case 32: + e.type = "click"; + e.preventDefault(); + $(e.currentTarget).trigger(e); + break; + case 37: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 38: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 39: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 40: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 27: + $.vakata.context.hide(); + e.preventDefault(); + break; + default: + //console.log(e.which); + break; + } + }) + .on('keydown', function (e) { + e.preventDefault(); + var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); + if(a.parent().not('.vakata-context-disabled')) { + a.click(); + } + }); + + $(document) + .on("mousedown.vakata.jstree", function (e) { + if(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) { + $.vakata.context.hide(); + } + }) + .on("context_show.vakata.jstree", function (e, data) { + vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); + if(right_to_left) { + vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); + } + // also apply a RTL class? + vakata_context.element.find("ul").hide().end(); + }); + }); + }($)); + // $.jstree.defaults.plugins.push("contextmenu"); + + +/** + * ### Drag'n'drop plugin + * + * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. + */ + + /** + * stores all defaults for the drag'n'drop plugin + * @name $.jstree.defaults.dnd + * @plugin dnd + */ + $.jstree.defaults.dnd = { + /** + * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. + * @name $.jstree.defaults.dnd.copy + * @plugin dnd + */ + copy : true, + /** + * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. + * @name $.jstree.defaults.dnd.open_timeout + * @plugin dnd + */ + open_timeout : 500, + /** + * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging + * @name $.jstree.defaults.dnd.is_draggable + * @plugin dnd + */ + is_draggable : true, + /** + * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` + * @name $.jstree.defaults.dnd.check_while_dragging + * @plugin dnd + */ + check_while_dragging : true, + /** + * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` + * @name $.jstree.defaults.dnd.always_copy + * @plugin dnd + */ + always_copy : false, + /** + * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` + * @name $.jstree.defaults.dnd.inside_pos + * @plugin dnd + */ + inside_pos : 0, + /** + * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node + * @name $.jstree.defaults.dnd.drag_selection + * @plugin dnd + */ + drag_selection : true, + /** + * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. + * @name $.jstree.defaults.dnd.touch + * @plugin dnd + */ + touch : true, + /** + * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. + * @name $.jstree.defaults.dnd.large_drop_target + * @plugin dnd + */ + large_drop_target : false, + /** + * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". + * @name $.jstree.defaults.dnd.large_drag_target + * @plugin dnd + */ + large_drag_target : false, + /** + * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. + * @reference http://caniuse.com/#feat=dragndrop + * @name $.jstree.defaults.dnd.use_html5 + * @plugin dnd + */ + use_html5: false + }; + var drg, elm; + // TODO: now check works by checking for each node individually, how about max_children, unique, etc? + $.jstree.plugins.dnd = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); + }; + this.bind = function () { + parent.bind.call(this); + + this.element + .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { + return true; + } + if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { + return true; + } + var obj = this.get_node(e.target), + mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, + txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); + if(this.settings.core.force_text) { + txt = $.vakata.html.escape(txt); + } + if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && + (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) + ) { + drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; + elm = e.currentTarget; + if (this.settings.dnd.use_html5) { + $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); + } else { + this.element.trigger('mousedown.jstree'); + return $.vakata.dnd.start(e, drg, '
      ' + txt + '
      '); + } + } + }, this)); + if (this.settings.dnd.use_html5) { + this.element + .on('dragover.jstree', function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }) + //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + // e.preventDefault(); + // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + // return false; + // }, this)) + .on('drop.jstree', $.proxy(function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }, this)); + } + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if (obj && this.settings.dnd.use_html5) { + if (this.settings.dnd.large_drag_target) { + obj.setAttribute('draggable', true); + } else { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.setAttribute('draggable', true); + } + } + } + return obj; + }; + }; + + $(function() { + // bind only once for all instances + var lastmv = false, + laster = false, + lastev = false, + opento = false, + marker = $('
       
      ').hide(); //.appendTo('body'); + + $(document) + .on('dnd_start.vakata.jstree', function (e, data) { + lastmv = false; + lastev = false; + if(!data || !data.data || !data.data.jstree) { return; } + marker.appendTo('body'); //.show(); + }) + .on('dnd_move.vakata.jstree', function (e, data) { + if(opento) { + if (!data.event || data.event.type !== 'dragover' || data.event.target !== lastev.target) { + clearTimeout(opento); + } + } + if(!data || !data.data || !data.data.jstree) { return; } + + // if we are hovering the marker image do nothing (can happen on "inside" drags) + if(data.event.target.id && data.event.target.id === 'jstree-marker') { + return; + } + lastev = data.event; + + var ins = $.jstree.reference(data.event.target), + ref = false, + off = false, + rel = false, + tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; + // if we are over an instance + if(ins && ins._data && ins._data.dnd) { + marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); + is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); + data.helper + .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) + .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); + + // if are hovering the container itself add a new root node + //console.log(data.event); + if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); + if(!ok) { break; } + } + if(ok) { + lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; + marker.hide(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + return; + } + } + else { + // if we are hovering a tree node + ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); + if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { + off = ref.offset(); + rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; + h = ref.outerHeight(); + if(rel < h / 3) { + o = ['b', 'i', 'a']; + } + else if(rel > h - h / 3) { + o = ['a', 'i', 'b']; + } + else { + o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; + } + $.each(o, function (j, v) { + switch(v) { + case 'b': + l = off.left - 6; + t = off.top; + p = ins.get_parent(ref); + i = ref.parent().index(); + break; + case 'i': + ip = ins.settings.dnd.inside_pos; + tm = ins.get_node(ref.parent()); + l = off.left - 2; + t = off.top + h / 2 + 1; + p = tm.id; + i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); + break; + case 'a': + l = off.left - 6; + t = off.top + h; + p = ins.get_parent(ref); + i = ref.parent().index() + 1; + break; + } + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; + ps = i; + if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { + pr = ins.get_node(p); + if(ps > $.inArray(data.data.nodes[t1], pr.children)) { + ps -= 1; + } + } + ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); + if(!ok) { + if(ins && ins.last_error) { laster = ins.last_error(); } + break; + } + } + if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { + opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); + } + if(ok) { + pn = ins.get_node(p, true); + if (!pn.hasClass('.jstree-dnd-parent')) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + pn.addClass('jstree-dnd-parent'); + } + lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; + marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + laster = {}; + o = true; + return false; + } + }); + if(o === true) { return; } + } + } + } + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + lastmv = false; + data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = 'none'; + } + marker.hide(); + }) + .on('dnd_scroll.vakata.jstree', function (e, data) { + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide(); + lastmv = false; + lastev = false; + data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); + }) + .on('dnd_stop.vakata.jstree', function (e, data) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + if(opento) { clearTimeout(opento); } + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide().detach(); + var i, j, nodes = []; + if(lastmv) { + for(i = 0, j = data.data.nodes.length; i < j; i++) { + nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; + } + lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); + } + else { + i = $(data.event.target).closest('.jstree'); + if(i.length && laster && laster.error && laster.error === 'check') { + i = i.jstree(true); + if(i) { + i.settings.core.error.call(this, laster); + } + } + } + lastev = false; + lastmv = false; + }) + .on('keyup.jstree keydown.jstree', function (e, data) { + data = $.vakata.dnd._get(); + if(data && data.data && data.data.jstree) { + if (e.type === "keyup" && e.which === 27) { + if (opento) { clearTimeout(opento); } + lastmv = false; + laster = false; + lastev = false; + opento = false; + marker.hide().detach(); + $.vakata.dnd._clean(); + } else { + data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); + if(lastev) { + lastev.metaKey = e.metaKey; + lastev.ctrlKey = e.ctrlKey; + $.vakata.dnd._trigger('move', lastev); + } + } + } + }); + }); + + // helpers + (function ($) { + $.vakata.html = { + div : $('
      '), + escape : function (str) { + return $.vakata.html.div.text(str).html(); + }, + strip : function (str) { + return $.vakata.html.div.empty().append($.parseHTML(str)).text(); + } + }; + // private variable + var vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $.vakata.dnd = { + settings : { + scroll_speed : 10, + scroll_proximity : 20, + helper_left : 5, + helper_top : 10, + threshold : 5, + threshold_touch : 50 + }, + _trigger : function (event_name, e, data) { + if (data === undefined) { + data = $.vakata.dnd._get(); + } + data.event = e; + $(document).triggerHandler("dnd_" + event_name + ".vakata", data); + }, + _get : function () { + return { + "data" : vakata_dnd.data, + "element" : vakata_dnd.element, + "helper" : vakata_dnd.helper + }; + }, + _clean : function () { + if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + }, + _scroll : function (init_only) { + if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + return false; + } + if(!vakata_dnd.scroll_i) { + vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); + return false; + } + if(init_only === true) { return false; } + + var i = vakata_dnd.scroll_e.scrollTop(), + j = vakata_dnd.scroll_e.scrollLeft(); + vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); + vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); + if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { + /** + * triggered on the document when a drag causes an element to scroll + * @event + * @plugin dnd + * @name dnd_scroll.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {jQuery} event the element that is scrolling + */ + $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); + } + }, + start : function (e, data, html) { + if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } + try { + e.currentTarget.unselectable = "on"; + e.currentTarget.onselectstart = function() { return false; }; + if(e.currentTarget.style) { + e.currentTarget.style.touchAction = "none"; + e.currentTarget.style.msTouchAction = "none"; + e.currentTarget.style.MozUserSelect = "none"; + } + } catch(ignore) { } + vakata_dnd.init_x = e.pageX; + vakata_dnd.init_y = e.pageY; + vakata_dnd.data = data; + vakata_dnd.is_down = true; + vakata_dnd.element = e.currentTarget; + vakata_dnd.target = e.target; + vakata_dnd.is_touch = e.type === "touchstart"; + if(html !== false) { + vakata_dnd.helper = $("
      ").html(html).css({ + "display" : "block", + "margin" : "0", + "padding" : "0", + "position" : "absolute", + "top" : "-2000px", + "lineHeight" : "16px", + "zIndex" : "10000" + }); + } + $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + return false; + }, + drag : function (e) { + if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(!vakata_dnd.is_down) { return; } + if(!vakata_dnd.is_drag) { + if( + Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || + Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) + ) { + if(vakata_dnd.helper) { + vakata_dnd.helper.appendTo("body"); + vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); + } + vakata_dnd.is_drag = true; + $(vakata_dnd.target).one('click.vakata', false); + /** + * triggered on the document when a drag starts + * @event + * @plugin dnd + * @name dnd_start.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the start (probably mousemove) + */ + $.vakata.dnd._trigger("start", e); + } + else { return; } + } + + var d = false, w = false, + dh = false, wh = false, + dw = false, ww = false, + dt = false, dl = false, + ht = false, hl = false; + + vakata_dnd.scroll_t = 0; + vakata_dnd.scroll_l = 0; + vakata_dnd.scroll_e = false; + $($(e.target).parentsUntil("body").addBack().get().reverse()) + .filter(function () { + return (/^auto|scroll$/).test($(this).css("overflow")) && + (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); + }) + .each(function () { + var t = $(this), o = t.offset(); + if(this.scrollHeight > this.offsetHeight) { + if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + } + if(this.scrollWidth > this.offsetWidth) { + if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = $(this); + return false; + } + }); + + if(!vakata_dnd.scroll_e) { + d = $(document); w = $(window); + dh = d.height(); wh = w.height(); + dw = d.width(); ww = w.width(); + dt = d.scrollTop(); dl = d.scrollLeft(); + if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = d; + } + } + if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } + + if(vakata_dnd.helper) { + ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); + hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); + if(dh && ht + 25 > dh) { ht = dh - 50; } + if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } + vakata_dnd.helper.css({ + left : hl + "px", + top : ht + "px" + }); + } + /** + * triggered on the document when a drag is in progress + * @event + * @plugin dnd + * @name dnd_move.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused this to trigger (most likely mousemove) + */ + $.vakata.dnd._trigger("move", e); + return false; + }, + stop : function (e) { + if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { + /** + * triggered on the document when a drag stops (the dragged element is dropped) + * @event + * @plugin dnd + * @name dnd_stop.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the stop + */ + if (e.target !== vakata_dnd.target) { + $(vakata_dnd.target).off('click.vakata'); + } + $.vakata.dnd._trigger("stop", e); + } + else { + if(e.type === "touchend" && e.target === vakata_dnd.target) { + var to = setTimeout(function () { $(e.target).click(); }, 100); + $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); + } + } + $.vakata.dnd._clean(); + return false; + } + }; + }($)); + + // include the dnd plugin by default + // $.jstree.defaults.plugins.push("dnd"); + + +/** + * ### Massload plugin + * + * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). + */ + + /** + * massload configuration + * + * It is possible to set this to a standard jQuery-like AJAX config. + * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. + * + * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. + * + * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. + * + * { + * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], + * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] + * } + * + * @name $.jstree.defaults.massload + * @plugin massload + */ + $.jstree.defaults.massload = null; + $.jstree.plugins.massload = function (options, parent) { + this.init = function (el, options) { + this._data.massload = {}; + parent.init.call(this, el, options); + }; + this._load_nodes = function (nodes, callback, is_callback, force_reload) { + var s = this.settings.massload, + nodesString = JSON.stringify(nodes), + toLoad = [], + m = this._model.data, + i, j, dom; + if (!is_callback) { + for(i = 0, j = nodes.length; i < j; i++) { + if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { + toLoad.push(nodes[i]); + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.addClass("jstree-loading").attr('aria-busy',true); + } + } + } + this._data.massload = {}; + if (toLoad.length) { + if($.isFunction(s)) { + return s.call(this, toLoad, $.proxy(function (data) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + if(typeof s === 'object' && s && s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, toLoad); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, toLoad); + } + return $.ajax(s) + .done($.proxy(function (data,t,x) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)) + .fail($.proxy(function (f) { + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + } + } + return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }; + this._load_node = function (obj, callback) { + var data = this._data.massload[obj.id], + rslt = null, dom; + if(data) { + rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( + obj, + typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, + function (status) { callback.call(this, status); } + ); + dom = this.get_node(obj.id, true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + delete this._data.massload[obj.id]; + return rslt; + } + return parent._load_node.call(this, obj, callback); + }; + }; + +/** + * ### Search plugin + * + * Adds search functionality to jsTree. + */ + + /** + * stores all defaults for the search plugin + * @name $.jstree.defaults.search + * @plugin search + */ + $.jstree.defaults.search = { + /** + * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. + * + * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. + * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to + * @name $.jstree.defaults.search.ajax + * @plugin search + */ + ajax : false, + /** + * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. + * @name $.jstree.defaults.search.fuzzy + * @plugin search + */ + fuzzy : false, + /** + * Indicates if the search should be case sensitive. Default is `false`. + * @name $.jstree.defaults.search.case_sensitive + * @plugin search + */ + case_sensitive : false, + /** + * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches + * @plugin search + */ + show_only_matches : false, + /** + * Indicates if the children of matched element are shown (when show_only_matches is true) + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches_children + * @plugin search + */ + show_only_matches_children : false, + /** + * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. + * @name $.jstree.defaults.search.close_opened_onclear + * @plugin search + */ + close_opened_onclear : true, + /** + * Indicates if only leaf nodes should be included in search results. Default is `false`. + * @name $.jstree.defaults.search.search_leaves_only + * @plugin search + */ + search_leaves_only : false, + /** + * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). + * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. + * @name $.jstree.defaults.search.search_callback + * @plugin search + */ + search_callback : false + }; + + $.jstree.plugins.search = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this._data.search.str = ""; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = false; + this._data.search.smc = false; + this._data.search.hdn = []; + + this.element + .on("search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + var m = this._model.data, i, j, p = [], k, l; + for(i = 0, j = data.res.length; i < j; i++) { + if(m[data.res[i]] && !m[data.res[i]].state.hidden) { + p.push(data.res[i]); + p = p.concat(m[data.res[i]].parents); + if(this._data.search.smc) { + for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { + if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { + p.push(m[data.res[i]].children_d[k]); + } + } + } + } + } + p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); + this._data.search.hdn = this.hide_all(true); + this.show_node(p, true); + this.redraw(true); + } + }, this)) + .on("clear_search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + this.show_node(this._data.search.hdn, true); + this.redraw(true); + } + }, this)); + }; + /** + * used to search the tree nodes for a given string + * @name search(str [, skip_async]) + * @param {String} str the search string + * @param {Boolean} skip_async if set to true server will not be queried even if configured + * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) + * @param {mixed} inside an optional node to whose children to limit the search + * @param {Boolean} append if set to true the results of this search are appended to the previous search + * @plugin search + * @trigger search.jstree + */ + this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { + if(str === false || $.trim(str.toString()) === "") { + return this.clear_search(); + } + inside = this.get_node(inside); + inside = inside && inside.id ? inside.id : null; + str = str.toString(); + var s = this.settings.search, + a = s.ajax ? s.ajax : false, + m = this._model.data, + f = null, + r = [], + p = [], i, j; + if(this._data.search.res.length && !append) { + this.clear_search(); + } + if(show_only_matches === undefined) { + show_only_matches = s.show_only_matches; + } + if(show_only_matches_children === undefined) { + show_only_matches_children = s.show_only_matches_children; + } + if(!skip_async && a !== false) { + if($.isFunction(a)) { + return a.call(this, str, $.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this), inside); + } + else { + a = $.extend({}, a); + if(!a.data) { a.data = {}; } + a.data.str = str; + if(inside) { + a.data.inside = inside; + } + if (this._data.search.lastRequest) { + this._data.search.lastRequest.abort(); + } + this._data.search.lastRequest = $.ajax(a) + .fail($.proxy(function () { + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)) + .done($.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this)); + return this._data.search.lastRequest; + } + } + if(!append) { + this._data.search.str = str; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = show_only_matches; + this._data.search.smc = show_only_matches_children; + } + + f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); + $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { + var v = m[i]; + if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { + r.push(i); + p = p.concat(v.parents); + } + }); + if(r.length) { + p = $.vakata.array_unique(p); + for(i = 0, j = p.length; i < j; i++) { + if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { + this._data.search.opn.push(p[i]); + } + } + if(!append) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); + this._data.search.res = r; + } + else { + this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); + this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); + } + this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); + } + /** + * triggered after search is complete + * @event + * @name search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes + * @param {String} str the search string + * @param {Array} res a collection of objects represeing the matching nodes + * @plugin search + */ + this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); + }; + /** + * used to clear the last search (removes classes and shows all nodes if filtering is on) + * @name clear_search() + * @plugin search + * @trigger clear_search.jstree + */ + this.clear_search = function () { + if(this.settings.search.close_opened_onclear) { + this.close_node(this._data.search.opn, 0); + } + /** + * triggered after search is complete + * @event + * @name clear_search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) + * @param {String} str the search string (the last search string) + * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) + * @plugin search + */ + this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); + if(this._data.search.res.length) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { + return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); + }).join(', #'))); + this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); + } + this._data.search.str = ""; + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.dom = $(); + }; + + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + if($.inArray(obj.id, this._data.search.res) !== -1) { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.className += ' jstree-search'; + } + } + } + return obj; + }; + }; + + // helpers + (function ($) { + // from http://kiro.me/projects/fuse.html + $.vakata.search = function(pattern, txt, options) { + options = options || {}; + options = $.extend({}, $.vakata.search.defaults, options); + if(options.fuzzy !== false) { + options.fuzzy = true; + } + pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); + var MATCH_LOCATION = options.location, + MATCH_DISTANCE = options.distance, + MATCH_THRESHOLD = options.threshold, + patternLen = pattern.length, + matchmask, pattern_alphabet, match_bitapScore, search; + if(patternLen > 32) { + options.fuzzy = false; + } + if(options.fuzzy) { + matchmask = 1 << (patternLen - 1); + pattern_alphabet = (function () { + var mask = {}, + i = 0; + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] = 0; + } + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); + } + return mask; + }()); + match_bitapScore = function (e, x) { + var accuracy = e / patternLen, + proximity = Math.abs(MATCH_LOCATION - x); + if(!MATCH_DISTANCE) { + return proximity ? 1.0 : accuracy; + } + return accuracy + (proximity / MATCH_DISTANCE); + }; + } + search = function (text) { + text = options.caseSensitive ? text : text.toLowerCase(); + if(pattern === text || text.indexOf(pattern) !== -1) { + return { + isMatch: true, + score: 0 + }; + } + if(!options.fuzzy) { + return { + isMatch: false, + score: 1 + }; + } + var i, j, + textLen = text.length, + scoreThreshold = MATCH_THRESHOLD, + bestLoc = text.indexOf(pattern, MATCH_LOCATION), + binMin, binMid, + binMax = patternLen + textLen, + lastRd, start, finish, rd, charMatch, + score = 1, + locations = []; + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + } + } + bestLoc = -1; + for (i = 0; i < patternLen; i++) { + binMin = 0; + binMid = binMax; + while (binMin < binMid) { + if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { + binMin = binMid; + } else { + binMax = binMid; + } + binMid = Math.floor((binMax - binMin) / 2 + binMin); + } + binMax = binMid; + start = Math.max(1, MATCH_LOCATION - binMid + 1); + finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; + rd = new Array(finish + 2); + rd[finish + 1] = (1 << i) - 1; + for (j = finish; j >= start; j--) { + charMatch = pattern_alphabet[text.charAt(j - 1)]; + if (i === 0) { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; + } else { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; + } + if (rd[j] & matchmask) { + score = match_bitapScore(i, j - 1); + if (score <= scoreThreshold) { + scoreThreshold = score; + bestLoc = j - 1; + locations.push(bestLoc); + if (bestLoc > MATCH_LOCATION) { + start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); + } else { + break; + } + } + } + } + if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { + break; + } + lastRd = rd; + } + return { + isMatch: bestLoc >= 0, + score: score + }; + }; + return txt === true ? { 'search' : search } : search(txt); + }; + $.vakata.search.defaults = { + location : 0, + distance : 100, + threshold : 0.6, + fuzzy : false, + caseSensitive : false + }; + }($)); + + // include the search plugin by default + // $.jstree.defaults.plugins.push("search"); + + +/** + * ### Sort plugin + * + * Automatically sorts all siblings in the tree according to a sorting function. + */ + + /** + * the settings function used to sort the nodes. + * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. + * @name $.jstree.defaults.sort + * @plugin sort + */ + $.jstree.defaults.sort = function (a, b) { + //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b); + return this.get_text(a) > this.get_text(b) ? 1 : -1; + }; + $.jstree.plugins.sort = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("model.jstree", $.proxy(function (e, data) { + this.sort(data.parent, true); + }, this)) + .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent || data.node.parent, false); + this.redraw_node(data.parent || data.node.parent, true); + }, this)) + .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent, false); + this.redraw_node(data.parent, true); + }, this)); + }; + /** + * used to sort a node's children + * @private + * @name sort(obj [, deep]) + * @param {mixed} obj the node + * @param {Boolean} deep if set to `true` nodes are sorted recursively. + * @plugin sort + * @trigger search.jstree + */ + this.sort = function (obj, deep) { + var i, j; + obj = this.get_node(obj); + if(obj && obj.children && obj.children.length) { + obj.children.sort($.proxy(this.settings.sort, this)); + if(deep) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + this.sort(obj.children_d[i], false); + } + } + } + }; + }; + + // include the sort plugin by default + // $.jstree.defaults.plugins.push("sort"); + +/** + * ### State plugin + * + * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) + */ + + var to = false; + /** + * stores all defaults for the state plugin + * @name $.jstree.defaults.state + * @plugin state + */ + $.jstree.defaults.state = { + /** + * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. + * @name $.jstree.defaults.state.key + * @plugin state + */ + key : 'jstree', + /** + * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. + * @name $.jstree.defaults.state.events + * @plugin state + */ + events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', + /** + * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. + * @name $.jstree.defaults.state.ttl + * @plugin state + */ + ttl : false, + /** + * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. + * @name $.jstree.defaults.state.filter + * @plugin state + */ + filter : false + }; + $.jstree.plugins.state = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + var bind = $.proxy(function () { + this.element.on(this.settings.state.events, $.proxy(function () { + if(to) { clearTimeout(to); } + to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); + }, this)); + /** + * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). + * @event + * @name state_ready.jstree + * @plugin state + */ + this.trigger('state_ready'); + }, this); + this.element + .on("ready.jstree", $.proxy(function (e, data) { + this.element.one("restore_state.jstree", bind); + if(!this.restore_state()) { bind(); } + }, this)); + }; + /** + * save the state + * @name save_state() + * @plugin state + */ + this.save_state = function () { + var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; + $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); + }; + /** + * restore the state from the user's computer + * @name restore_state() + * @plugin state + */ + this.restore_state = function () { + var k = $.vakata.storage.get(this.settings.state.key); + if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } + if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } + if(!!k && k.state) { k = k.state; } + if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } + if(!!k) { + this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); + this.set_state(k); + return true; + } + return false; + }; + /** + * clear the state on the user's computer + * @name clear_state() + * @plugin state + */ + this.clear_state = function () { + return $.vakata.storage.del(this.settings.state.key); + }; + }; + + (function ($, undefined) { + $.vakata.storage = { + // simply specifying the functions in FF throws an error + set : function (key, val) { return window.localStorage.setItem(key, val); }, + get : function (key) { return window.localStorage.getItem(key); }, + del : function (key) { return window.localStorage.removeItem(key); } + }; + }($)); + + // include the state plugin by default + // $.jstree.defaults.plugins.push("state"); + +/** + * ### Types plugin + * + * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. + */ + + /** + * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). + * + * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. + * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. + * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. + * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. + * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) + * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) + * + * There are two predefined types: + * + * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. + * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. + * + * @name $.jstree.defaults.types + * @plugin types + */ + $.jstree.defaults.types = { + 'default' : {} + }; + $.jstree.defaults.types[$.jstree.root] = {}; + + $.jstree.plugins.types = function (options, parent) { + this.init = function (el, options) { + var i, j; + if(options && options.types && options.types['default']) { + for(i in options.types) { + if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { + for(j in options.types['default']) { + if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { + options.types[i][j] = options.types['default'][j]; + } + } + } + } + } + parent.init.call(this, el, options); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.refresh = function (skip_loading, forget_state) { + parent.refresh.call(this, skip_loading, forget_state); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.bind = function () { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + dpc = data.nodes, + t = this.settings.types, + i, j, c = 'default', k; + for(i = 0, j = dpc.length; i < j; i++) { + c = 'default'; + if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { + c = m[dpc[i]].original.type; + } + if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { + c = m[dpc[i]].data.jstree.type; + } + m[dpc[i]].type = c; + if(m[dpc[i]].icon === true && t[c].icon !== undefined) { + m[dpc[i]].icon = t[c].icon; + } + if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { + for (k in t[c].li_attr) { + if (t[c].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].li_attr[k] === undefined) { + m[dpc[i]].li_attr[k] = t[c].li_attr[k]; + } + else if (k === 'class') { + m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; + } + } + } + } + if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { + for (k in t[c].a_attr) { + if (t[c].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].a_attr[k] === undefined) { + m[dpc[i]].a_attr[k] = t[c].a_attr[k]; + } + else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { + m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; + } + else if (k === 'class') { + m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; + } + } + } + } + } + m[$.jstree.root].type = $.jstree.root; + }, this)); + parent.bind.call(this); + }; + this.get_json = function (obj, options, flat) { + var i, j, + m = this._model.data, + opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, + tmp = parent.get_json.call(this, obj, opt, flat); + if(tmp === false) { return false; } + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; + if(options && options.no_id) { + delete tmp[i].id; + if(tmp[i].li_attr && tmp[i].li_attr.id) { + delete tmp[i].li_attr.id; + } + if(tmp[i].a_attr && tmp[i].a_attr.id) { + delete tmp[i].a_attr.id; + } + } + } + } + else { + tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; + if(options && options.no_id) { + tmp = this._delete_ids(tmp); + } + } + return tmp; + }; + this._delete_ids = function (tmp) { + if($.isArray(tmp)) { + for(var i = 0, j = tmp.length; i < j; i++) { + tmp[i] = this._delete_ids(tmp[i]); + } + return tmp; + } + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + if(tmp.children && $.isArray(tmp.children)) { + tmp.children = this._delete_ids(tmp.children); + } + return tmp; + }; + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; + m = m && m._model && m._model.data ? m._model.data : null; + switch(chk) { + case "create_node": + case "move_node": + case "copy_node": + if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { + tmp = this.get_rules(par); + if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(m && obj.children_d && obj.parents) { + d = 0; + for(i = 0, j = obj.children_d.length; i < j; i++) { + d = Math.max(d, m[obj.children_d[i]].parents.length); + } + d = d - obj.parents.length + 1; + } + if(d <= 0 || d === undefined) { d = 1; } + do { + if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + par = this.get_node(par.parent); + tmp = this.get_rules(par); + d++; + } while(par); + } + break; + } + return true; + }; + /** + * used to retrieve the type settings object for a node + * @name get_rules(obj) + * @param {mixed} obj the node to find the rules for + * @return {Object} + * @plugin types + */ + this.get_rules = function (obj) { + obj = this.get_node(obj); + if(!obj) { return false; } + var tmp = this.get_type(obj, true); + if(tmp.max_depth === undefined) { tmp.max_depth = -1; } + if(tmp.max_children === undefined) { tmp.max_children = -1; } + if(tmp.valid_children === undefined) { tmp.valid_children = -1; } + return tmp; + }; + /** + * used to retrieve the type string or settings object for a node + * @name get_type(obj [, rules]) + * @param {mixed} obj the node to find the rules for + * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned + * @return {String|Object} + * @plugin types + */ + this.get_type = function (obj, rules) { + obj = this.get_node(obj); + return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); + }; + /** + * used to change a node's type + * @name set_type(obj, type) + * @param {mixed} obj the node to change + * @param {String} type the new type + * @plugin types + */ + this.set_type = function (obj, type) { + var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_type(obj[t1], type); + } + return true; + } + t = this.settings.types; + obj = this.get_node(obj); + if(!t[type] || !obj) { return false; } + d = this.get_node(obj, true); + if (d && d.length) { + a = d.children('.jstree-anchor'); + } + old_type = obj.type; + old_icon = this.get_icon(obj); + obj.type = type; + if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { + this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); + } + + // remove old type props + if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { + for (k in t[old_type].li_attr) { + if (t[old_type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); + if (d) { d.removeClass(t[old_type].li_attr[k]); } + } + else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { + m[obj.id].li_attr[k] = null; + if (d) { d.removeAttr(k); } + } + } + } + } + if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { + for (k in t[old_type].a_attr) { + if (t[old_type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); + if (a) { a.removeClass(t[old_type].a_attr[k]); } + } + else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { + if (k === 'href') { + m[obj.id].a_attr[k] = '#'; + if (a) { a.attr('href', '#'); } + } + else { + delete m[obj.id].a_attr[k]; + if (a) { a.removeAttr(k); } + } + } + } + } + } + + // add new props + if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { + for (k in t[type].li_attr) { + if (t[type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].li_attr[k] === undefined) { + m[obj.id].li_attr[k] = t[type].li_attr[k]; + if (d) { + if (k === 'class') { + d.addClass(t[type].li_attr[k]); + } + else { + d.attr(k, t[type].li_attr[k]); + } + } + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; + if (d) { d.addClass(t[type].li_attr[k]); } + } + } + } + } + if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { + for (k in t[type].a_attr) { + if (t[type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].a_attr[k] === undefined) { + m[obj.id].a_attr[k] = t[type].a_attr[k]; + if (a) { + if (k === 'class') { + a.addClass(t[type].a_attr[k]); + } + else { + a.attr(k, t[type].a_attr[k]); + } + } + } + else if (k === 'href' && m[obj.id].a_attr[k] === '#') { + m[obj.id].a_attr['href'] = t[type].a_attr['href']; + if (a) { a.attr('href', t[type].a_attr['href']); } + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; + if (a) { a.addClass(t[type].a_attr[k]); } + } + } + } + } + + return true; + }; + }; + // include the types plugin by default + // $.jstree.defaults.plugins.push("types"); + + +/** + * ### Unique plugin + * + * Enforces that no nodes with the same name can coexist as siblings. + */ + + /** + * stores all defaults for the unique plugin + * @name $.jstree.defaults.unique + * @plugin unique + */ + $.jstree.defaults.unique = { + /** + * Indicates if the comparison should be case sensitive. Default is `false`. + * @name $.jstree.defaults.unique.case_sensitive + * @plugin unique + */ + case_sensitive : false, + /** + * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. + * @name $.jstree.defaults.unique.duplicate + * @plugin unique + */ + duplicate : function (name, counter) { + return name + ' (' + counter + ')'; + } + }; + + $.jstree.plugins.unique = function (options, parent) { + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + if(!par || !par.children) { return true; } + var n = chk === "rename_node" ? pos : obj.text, + c = [], + s = this.settings.unique.case_sensitive, + m = this._model.data, i, j; + for(i = 0, j = par.children.length; i < j; i++) { + c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + if(!s) { n = n.toLowerCase(); } + switch(chk) { + case "delete_node": + return true; + case "rename_node": + i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n)); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "create_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "copy_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "move_node": + i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + } + return true; + }; + this.create_node = function (par, node, pos, callback, is_loaded) { + if(!node || node.text === undefined) { + if(par === null) { + par = $.jstree.root; + } + par = this.get_node(par); + if(!par) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + if(!node) { node = {}; } + var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate; + n = tmp = this.get_string('New node'); + dpc = []; + for(i = 0, j = par.children.length; i < j; i++) { + dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + i = 1; + while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) { + n = cb.call(this, tmp, (++i)).toString(); + } + node.text = n; + } + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + }; + }; + + // include the unique plugin by default + // $.jstree.defaults.plugins.push("unique"); + + +/** + * ### Wholerow plugin + * + * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. + */ + + var div = document.createElement('DIV'); + div.setAttribute('unselectable','on'); + div.setAttribute('role','presentation'); + div.className = 'jstree-wholerow'; + div.innerHTML = ' '; + $.jstree.plugins.wholerow = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this.element + .on('ready.jstree set_state.jstree', $.proxy(function () { + this.hide_dots(); + }, this)) + .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { + //div.style.height = this._data.core.li_height + 'px'; + this.get_container_ul().addClass('jstree-wholerow-ul'); + }, this)) + .on("deselect_all.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + }, this)) + .on("changed.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + var tmp = false, i, j; + for(i = 0, j = data.selected.length; i < j; i++) { + tmp = this.get_node(data.selected[i], true); + if(tmp && tmp.length) { + tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + } + } + }, this)) + .on("open_node.jstree", $.proxy(function (e, data) { + this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + }, this)) + .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { + if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } + this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); + }, this)) + .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { + if (this._data.contextmenu) { + e.preventDefault(); + var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); + } + }, this)) + /*! + .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { + if(e.target === e.currentTarget) { + var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); + e.target = a[0]; + a.trigger(e); + } + }) + */ + .on("click.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("dblclick.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }, this)) + .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { + e.stopImmediatePropagation(); + if(!this.is_disabled(e.currentTarget)) { + this.hover_node(e.currentTarget); + } + return false; + }, this)) + .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }; + this.teardown = function () { + if(this.settings.wholerow) { + this.element.find(".jstree-wholerow").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var tmp = div.cloneNode(true); + //tmp.style.height = this._data.core.li_height + 'px'; + if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } + if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } + obj.insertBefore(tmp, obj.childNodes[0]); + } + return obj; + }; + }; + // include the wholerow plugin by default + // $.jstree.defaults.plugins.push("wholerow"); + if(document.registerElement && Object && Object.create) { + var proto = Object.create(HTMLElement.prototype); + proto.createdCallback = function () { + var c = { core : {}, plugins : [] }, i; + for(i in $.jstree.plugins) { + if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { + c.plugins.push(i); + if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { + c[i] = JSON.parse(this.getAttribute(i)); + } + } + } + for(i in $.jstree.defaults.core) { + if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { + c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); + } + } + $(this).jstree(c); + }; + // proto.attributeChangedCallback = function (name, previous, value) { }; + try { + document.registerElement("vakata-jstree", { prototype: proto }); + } catch(ignore) { } + } + +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js new file mode 100644 index 0000000000..24c420489e --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js @@ -0,0 +1,6 @@ +/*! jsTree - v3.3.3 - 2016-10-31 - (MIT) */ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a,b){"use strict";if(!a.jstree){var c=0,d=!1,e=!1,f=!1,g=[],h=a("script:last").attr("src"),i=window.document;a.jstree={version:"3.3.3",defaults:{plugins:[]},plugins:{},path:h&&-1!==h.indexOf("/")?h.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},a.jstree.create=function(b,d){var e=new a.jstree.core(++c),f=d;return d=a.extend(!0,{},a.jstree.defaults,d),f&&f.plugins&&(d.plugins=f.plugins),a.each(d.plugins,function(a,b){"core"!==a&&(e=e.plugin(b,d[b]))}),a(b).data("jstree",e),e.init(b,d),e},a.jstree.destroy=function(){a(".jstree:jstree").jstree("destroy"),a(i).off(".jstree")},a.jstree.core=function(a){this._id=a,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},a.jstree.reference=function(b){var c=null,d=null;if(!b||!b.id||b.tagName&&b.nodeType||(b=b.id),!d||!d.length)try{d=a(b)}catch(e){}if(!d||!d.length)try{d=a("#"+b.replace(a.jstree.idregex,"\\$&"))}catch(e){}return d&&d.length&&(d=d.closest(".jstree")).length&&(d=d.data("jstree"))?c=d:a(".jstree").each(function(){var d=a(this).data("jstree");return d&&d._model.data[b]?(c=d,!1):void 0}),c},a.fn.jstree=function(c){var d="string"==typeof c,e=Array.prototype.slice.call(arguments,1),f=null;return c!==!0||this.length?(this.each(function(){var g=a.jstree.reference(this),h=d&&g?g[c]:null;return f=d&&h?h.apply(g,e):null,g||d||c!==b&&!a.isPlainObject(c)||a.jstree.create(this,c),(g&&!d||c===!0)&&(f=g||!1),null!==f&&f!==b?!1:void 0}),null!==f&&f!==b?f:this):!1},a.expr.pseudos.jstree=a.expr.createPseudo(function(c){return function(c){return a(c).hasClass("jstree")&&a(c).data("jstree")!==b}}),a.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:a.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0},a.jstree.core.prototype={plugin:function(b,c){var d=a.jstree.plugins[b];return d?(this._data[b]={},d.prototype=this,new d(c,this)):this},init:function(b,c){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=a(b).addClass("jstree jstree-"+this._id),this.settings=c,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html(""),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().height()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(a.jstree.root)},destroy:function(a){if(this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(b){}a||this.element.empty(),this.teardown()},_create_prototype_node:function(){var a=i.createElement("LI"),b,c;return a.setAttribute("role","treeitem"),b=i.createElement("I"),b.className="jstree-icon jstree-ocl",b.setAttribute("role","presentation"),a.appendChild(b),b=i.createElement("A"),b.className="jstree-anchor",b.setAttribute("href","#"),b.setAttribute("tabindex","-1"),c=i.createElement("I"),c.className="jstree-icon jstree-themeicon",c.setAttribute("role","presentation"),b.appendChild(c),a.appendChild(b),b=c=null,a},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var b="",c=null,d=0;this.element.on("dblclick.jstree",function(a){if(a.target.tagName&&"input"===a.target.tagName.toLowerCase())return!0;if(i.selection&&i.selection.empty)i.selection.empty();else if(window.getSelection){var b=window.getSelection();try{b.removeAllRanges(),b.collapse()}catch(c){}}}).on("mousedown.jstree",a.proxy(function(a){a.target===this.element[0]&&(a.preventDefault(),d=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(a){a.preventDefault()}).on("click.jstree",".jstree-ocl",a.proxy(function(a){this.toggle_node(a.target)},this)).on("dblclick.jstree",".jstree-anchor",a.proxy(function(a){return a.target.tagName&&"input"===a.target.tagName.toLowerCase()?!0:void(this.settings.core.dblclick_toggle&&this.toggle_node(a.target))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){b.preventDefault(),b.currentTarget!==i.activeElement&&a(b.currentTarget).focus(),this.activate_node(b.currentTarget,b)},this)).on("keydown.jstree",".jstree-anchor",a.proxy(function(b){if(b.target.tagName&&"input"===b.target.tagName.toLowerCase())return!0;if(32!==b.which&&13!==b.which&&(b.shiftKey||b.ctrlKey||b.altKey||b.metaKey))return!0;var c=null;switch(this._data.core.rtl&&(37===b.which?b.which=39:39===b.which&&(b.which=37)),b.which){case 32:b.ctrlKey&&(b.type="click",a(b.currentTarget).trigger(b));break;case 13:b.type="click",a(b.currentTarget).trigger(b);break;case 37:b.preventDefault(),this.is_open(b.currentTarget)?this.close_node(b.currentTarget):(c=this.get_parent(b.currentTarget),c&&c.id!==a.jstree.root&&this.get_node(c,!0).children(".jstree-anchor").focus());break;case 38:b.preventDefault(),c=this.get_prev_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 39:b.preventDefault(),this.is_closed(b.currentTarget)?this.open_node(b.currentTarget,function(a){this.get_node(a,!0).children(".jstree-anchor").focus()}):this.is_open(b.currentTarget)&&(c=this.get_node(b.currentTarget,!0).children(".jstree-children")[0],c&&a(this._firstChild(c)).children(".jstree-anchor").focus());break;case 40:b.preventDefault(),c=this.get_next_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:b.preventDefault(),c=this._firstChild(this.get_container_ul()[0]),c&&a(c).children(".jstree-anchor").filter(":visible").focus();break;case 35:b.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus();break;case 113:b.preventDefault(),this.edit(b.currentTarget)}},this)).on("load_node.jstree",a.proxy(function(b,c){c.status&&(c.node.id!==a.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(a.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var b=[],c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)b=b.concat(this._model.data[this._data.core.selected[c]].parents);for(b=a.vakata.array_unique(b),c=0,d=b.length;d>c;c++)this.open_node(b[c],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",a.proxy(function(d){if(d.target.tagName&&"input"===d.target.tagName.toLowerCase())return!0;c&&clearTimeout(c),c=setTimeout(function(){b=""},500);var e=String.fromCharCode(d.which).toLowerCase(),f=this.element.find(".jstree-anchor").filter(":visible"),g=f.index(i.activeElement)||0,h=!1;if(b+=e,b.length>1){if(f.slice(g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return}if(new RegExp("^"+e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(b)){if(f.slice(g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return}},this)).on("init.jstree",a.proxy(function(){var a=this.settings.core.themes;this._data.core.themes.dots=a.dots,this._data.core.themes.stripes=a.stripes,this._data.core.themes.icons=a.icons,this._data.core.themes.ellipsis=a.ellipsis,this.set_theme(a.name||"default",a.url),this.set_theme_variant(a.variant)},this)).on("loading.jstree",a.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()},this)).on("blur.jstree",".jstree-anchor",a.proxy(function(b){this._data.core.focused=null,a(b.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",a.proxy(function(b){var c=this.get_node(b.currentTarget);c&&c.id&&(this._data.core.focused=c.id),this.element.find(".jstree-hovered").not(b.currentTarget).mouseleave(),a(b.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",a.proxy(function(){if(+new Date-d>500&&!this._data.core.focused){d=0;var a=this.get_node(this.element.attr("aria-activedescendant"),!0);a&&a.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",a.proxy(function(a){this.hover_node(a.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),a(i).off(".jstree-"+this._id)},trigger:function(a,b){b||(b={}),b.instance=this,this.element.triggerHandler(a.replace(".jstree","")+".jstree",b)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(b){var c=this.settings.core.strings;return a.isFunction(c)?c.call(this,b):c&&c[b]?c[b]:b},_firstChild:function(a){a=a?a.firstChild:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_nextSibling:function(a){a=a?a.nextSibling:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_previousSibling:function(a){a=a?a.previousSibling:null;while(null!==a&&1!==a.nodeType)a=a.previousSibling;return a},get_node:function(b,c){b&&b.id&&(b=b.id);var d;try{if(this._model.data[b])b=this._model.data[b];else if("string"==typeof b&&this._model.data[b.replace(/^#/,"")])b=this._model.data[b.replace(/^#/,"")];else if("string"==typeof b&&(d=a("#"+b.replace(a.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else if((d=a(b,this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else{if(!(d=a(b,this.element)).length||!d.hasClass("jstree"))return!1;b=this._model.data[a.jstree.root]}return c&&(b=b.id===a.jstree.root?this.element:a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)),b}catch(e){return!1}},get_path:function(b,c,d){if(b=b.parents?b:this.get_node(b),!b||b.id===a.jstree.root||!b.parents)return!1;var e,f,g=[];for(g.push(d?b.id:b.text),e=0,f=b.parents.length;f>e;e++)g.push(d?b.parents[e]:this.get_text(b.parents[e]));return g=g.reverse().slice(1),c?g.join(c):g},get_next_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this._firstChild(this.get_container_ul()[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}if(b.hasClass("jstree-open")){d=this._firstChild(b.children(".jstree-children")[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);if(null!==d)return a(d)}d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return null!==d?a(d):b.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this.get_container_ul()[0].lastChild;while(d&&0===d.offsetHeight)d=this._previousSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);if(null!==d){b=a(d);while(b.hasClass("jstree-open"))b=b.children(".jstree-children").first().children(".jstree-node:visible:last");return b}return d=b[0].parentNode.parentNode,d&&d.className&&-1!==d.className.indexOf("jstree-node")?a(d):!1},get_parent:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.parent:!1},get_children_dom:function(a){return a=this.get_node(a,!0),a[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):a&&a.length?a.children(".jstree-children").children(".jstree-node"):!1},is_parent:function(a){return a=this.get_node(a),a&&(a.state.loaded===!1||a.children.length>0)},is_loaded:function(a){return a=this.get_node(a),a&&a.state.loaded},is_loading:function(a){return a=this.get_node(a),a&&a.state&&a.state.loading},is_open:function(a){return a=this.get_node(a),a&&a.state.opened},is_closed:function(a){return a=this.get_node(a),a&&this.is_parent(a)&&!a.state.opened},is_leaf:function(a){return!this.is_parent(a)},load_node:function(b,c){var d,e,f,g,h;if(a.isArray(b))return this._load_nodes(b.slice(),c),!0;if(b=this.get_node(b),!b)return c&&c.call(this,b,!1),!1;if(b.state.loaded){for(b.state.loaded=!1,f=0,g=b.parents.length;g>f;f++)this._model.data[b.parents[f]].children_d=a.vakata.array_filter(this._model.data[b.parents[f]].children_d,function(c){return-1===a.inArray(c,b.children_d)});for(d=0,e=b.children_d.length;e>d;d++)this._model.data[b.children_d[d]].state.selected&&(h=!0),delete this._model.data[b.children_d[d]];h&&(this._data.core.selected=a.vakata.array_filter(this._data.core.selected,function(c){return-1===a.inArray(c,b.children_d)})),b.children=[],b.children_d=[],h&&this.trigger("changed",{action:"load_node",node:b,selected:this._data.core.selected})}return b.state.failed=!1,b.state.loading=!0,this.get_node(b,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(b,a.proxy(function(a){b=this._model.data[b.id],b.state.loading=!1,b.state.loaded=a,b.state.failed=!b.state.loaded;var d=this.get_node(b,!0),e=0,f=0,g=this._model.data,h=!1;for(e=0,f=b.children.length;f>e;e++)if(g[b.children[e]]&&!g[b.children[e]].state.hidden){h=!0;break}b.state.loaded&&d&&d.length&&(d.removeClass("jstree-closed jstree-open jstree-leaf"),h?"#"!==b.id&&d.addClass(b.state.opened?"jstree-open":"jstree-closed"):d.addClass("jstree-leaf")),d.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:b,status:a}),c&&c.call(this,b,a)},this)),!0},_load_nodes:function(a,b,c,d){var e=!0,f=function(){this._load_nodes(a,b,!0)},g=this._model.data,h,i,j=[];for(h=0,i=a.length;i>h;h++)g[a[h]]&&(!g[a[h]].state.loaded&&!g[a[h]].state.failed||!c&&d)&&(this.is_loading(a[h])||this.load_node(a[h],f),e=!1);if(e){for(h=0,i=a.length;i>h;h++)g[a[h]]&&g[a[h]].state.loaded&&j.push(a[h]);b&&!b.done&&(b.call(this,j),b.done=!0)}},load_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=[],e=this._model.data,f=e[b.id].children_d,g,h;for(b.state&&!b.state.loaded&&d.push(b.id),g=0,h=f.length;h>g;g++)e[f[g]]&&e[f[g]].state&&!e[f[g]].state.loaded&&d.push(f[g]);d.length?this._load_nodes(d,function(){this.load_all(b,c)}):(c&&c.call(this,b),this.trigger("load_all",{node:b}))},_load_node:function(b,c){var d=this.settings.core.data,e,f=function g(){return 3!==this.nodeType&&8!==this.nodeType};return d?a.isFunction(d)?d.call(this,b,a.proxy(function(d){d===!1?c.call(this,!1):this["string"==typeof d?"_append_html_data":"_append_json_data"](b,"string"==typeof d?a(a.parseHTML(d)).filter(f):d,function(a){c.call(this,a)})},this)):"object"==typeof d?d.url?(d=a.extend(!0,{},d),a.isFunction(d.url)&&(d.url=d.url.call(this,b)),a.isFunction(d.data)&&(d.data=d.data.call(this,b)),a.ajax(d).done(a.proxy(function(d,e,g){var h=g.getResponseHeader("Content-Type");return h&&-1!==h.indexOf("json")||"object"==typeof d?this._append_json_data(b,d,function(a){c.call(this,a)}):h&&-1!==h.indexOf("html")||"string"==typeof d?this._append_html_data(b,a(a.parseHTML(d)).filter(f),function(a){c.call(this,a)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:g})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))},this)).fail(a.proxy(function(a){c.call(this,!1),this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error)},this))):(e=a.isArray(d)||a.isPlainObject(d)?JSON.parse(JSON.stringify(d)):d,b.id===a.jstree.root?this._append_json_data(b,e,function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))):"string"==typeof d?b.id===a.jstree.root?this._append_html_data(b,a(a.parseHTML(d)).filter(f),function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1)):c.call(this,!1):b.id===a.jstree.root?this._append_html_data(b,this._data.core.original_container_html.clone(!0),function(a){c.call(this,a)}):c.call(this,!1)},_node_changed:function(a){a=this.get_node(a),a&&this._model.changed.push(a.id)},_append_html_data:function(b,c,d){b=this.get_node(b),b.children=[],b.children_d=[];var e=c.is("ul")?c.children():c,f=b.id,g=[],h=[],i=this._model.data,j=i[f],k=this._data.core.selected.length,l,m,n;for(e.each(a.proxy(function(b,c){l=this._parse_model_from_html(a(c),f,j.parents.concat()),l&&(g.push(l),h.push(l),i[l].children_d.length&&(h=h.concat(i[l].children_d)))},this)),j.children=g,j.children_d=h,m=0,n=j.parents.length;n>m;m++)i[j.parents[m]].children_d=i[j.parents[m]].children_d.concat(h);this.trigger("model",{nodes:h,parent:f}),f!==a.jstree.root?(this._node_changed(f),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==k&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)},_append_json_data:function(b,c,d,e){if(null!==this.element){b=this.get_node(b),b.children=[],b.children_d=[],c.d&&(c=c.d,"string"==typeof c&&(c=JSON.parse(c))),a.isArray(c)||(c=[c]);var f=null,g={df:this._model.default_state,dat:c,par:b.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},h=function(a,b){a.data&&(a=a.data);var c=a.dat,d=a.par,e=[],f=[],g=[],h=a.df,i=a.t_id,j=a.t_cnt,k=a.m,l=k[d],m=a.sel,n,o,p,q,r=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f,i,j,l,m={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(m.state[f]=h[f]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(m.icon=a.data.jstree.icon),(m.icon===b||null===m.icon||""===m.icon)&&(m.icon=!0),a&&a.data&&(m.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(m.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(m.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(m.li_attr[f]=a.li_attr[f]);if(m.li_attr.id||(m.li_attr.id=e),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(m.a_attr[f]=a.a_attr[f]);for(a&&a.children&&a.children===!0&&(m.state.loaded=!1,m.children=[],m.children_d=[]),k[m.id]=m,f=0,i=m.children.length;i>f;f++)j=r(k[m.children[f]],m.id,d),l=k[j],m.children_d.push(j),l.children_d.length&&(m.children_d=m.children_d.concat(l.children_d));return delete a.data,delete a.children,k[m.id].original=a,m.state.selected&&g.push(m.id),m.id},s=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,l,m,n,o;do e="j"+i+"_"+ ++j;while(k[e]);o={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(o.state[f]=h[f]);if(a&&a.id&&(o.id=a.id.toString()),a&&a.text&&(o.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(o.icon=a.data.jstree.icon),(o.icon===b||null===o.icon||""===o.icon)&&(o.icon=!0),a&&a.data&&(o.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(o.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(o.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(o.li_attr[f]=a.li_attr[f]);if(o.li_attr.id&&!o.id&&(o.id=o.li_attr.id.toString()),o.id||(o.id=e),o.li_attr.id||(o.li_attr.id=o.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(o.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,l=a.children.length;l>f;f++)m=s(a.children[f],o.id,d),n=k[m],o.children.push(m),n.children_d.length&&(o.children_d=o.children_d.concat(n.children_d));o.children_d=o.children_d.concat(o.children)}return a&&a.children&&a.children===!0&&(o.state.loaded=!1,o.children=[],o.children_d=[]),delete a.data,delete a.children,o.original=a,k[o.id]=o,o.state.selected&&g.push(o.id),o.id};if(c.length&&c[0].id!==b&&c[0].parent!==b){for(o=0,p=c.length;p>o;o++)c[o].children||(c[o].children=[]),k[c[o].id.toString()]=c[o];for(o=0,p=c.length;p>o;o++)k[c[o].parent.toString()].children.push(c[o].id.toString()),l.children_d.push(c[o].id.toString());for(o=0,p=l.children.length;p>o;o++)n=r(k[l.children[o]],d,l.parents.concat()),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d));for(o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}else{for(o=0,p=c.length;p>o;o++)n=s(c[o],d,l.parents.concat()),n&&(e.push(n),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d)));for(l.children=e,l.children_d=f,o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}return"undefined"!=typeof window&&"undefined"!=typeof window.document?q:void postMessage(q)},i=function(b,c){if(null!==this.element){this._cnt=b.cnt;var e,f=this._model.data;for(e in f)f.hasOwnProperty(e)&&f[e].state&&f[e].state.loading&&b.mod[e]&&(b.mod[e].state.loading=!0);if(this._model.data=b.mod,c){var g,h=b.add,i=b.sel,j=this._data.core.selected.slice();if(f=this._model.data,i.length!==j.length||a.vakata.array_unique(i.concat(j)).length!==i.length){for(e=0,g=i.length;g>e;e++)-1===a.inArray(i[e],h)&&-1===a.inArray(i[e],j)&&(f[i[e]].state.selected=!1);for(e=0,g=j.length;g>e;e++)-1===a.inArray(j[e],i)&&(f[j[e]].state.selected=!0)}}b.add.length&&(this._data.core.selected=this._data.core.selected.concat(b.add)),this.trigger("model",{nodes:b.dpc,parent:b.par}),b.par!==a.jstree.root?(this._node_changed(b.par),this.redraw()):this.redraw(!0),b.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+h.toString()],{type:"text/javascript"}))),!this._data.core.working||e?(this._data.core.working=!0,f=new window.Worker(this._wrk),f.onmessage=a.proxy(function(a){i.call(this,a.data,!0);try{f.terminate(),f=null}catch(b){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),g.par?f.postMessage(g):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([b,c,d,!0])}catch(j){i.call(this,h(g),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else i.call(this,h(g),!1)}},_parse_model_from_html:function(c,d,e){e=e?[].concat(e):[],d&&e.unshift(d);var f,g,h=this._model.data,i={id:!1,text:!1,icon:!0,parent:d,parents:e,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},j,k,l;for(j in this._model.default_state)this._model.default_state.hasOwnProperty(j)&&(i.state[j]=this._model.default_state[j]);if(k=a.vakata.attributes(c,!0),a.each(k,function(b,c){return c=a.trim(c),c.length?(i.li_attr[b]=c,void("id"===b&&(i.id=c.toString()))):!0}),k=c.children("a").first(),k.length&&(k=a.vakata.attributes(k,!0),a.each(k,function(b,c){c=a.trim(c),c.length&&(i.a_attr[b]=c)})),k=c.children("a").first().length?c.children("a").first().clone():c.clone(),k.children("ins, i, ul").remove(),k=k.html(),k=a("
      ").html(k),i.text=this.settings.core.force_text?k.text():k.html(),k=c.data(),i.data=k?a.extend(!0,{},k):null,i.state.opened=c.hasClass("jstree-open"),i.state.selected=c.children("a").hasClass("jstree-clicked"),i.state.disabled=c.children("a").hasClass("jstree-disabled"),i.data&&i.data.jstree)for(j in i.data.jstree)i.data.jstree.hasOwnProperty(j)&&(i.state[j]=i.data.jstree[j]);k=c.children("a").children(".jstree-themeicon"),k.length&&(i.icon=k.hasClass("jstree-themeicon-hidden")?!1:k.attr("rel")),i.state.icon!==b&&(i.icon=i.state.icon),(i.icon===b||null===i.icon||""===i.icon)&&(i.icon=!0),k=c.children("ul").children("li");do l="j"+this._id+"_"+ ++this._cnt;while(h[l]);return i.id=i.li_attr.id?i.li_attr.id.toString():l,k.length?(k.each(a.proxy(function(b,c){f=this._parse_model_from_html(a(c),i.id,e),g=this._model.data[f],i.children.push(f),g.children_d.length&&(i.children_d=i.children_d.concat(g.children_d))},this)),i.children_d=i.children_d.concat(i.children)):c.hasClass("jstree-closed")&&(i.state.loaded=!1),i.li_attr["class"]&&(i.li_attr["class"]=i.li_attr["class"].replace("jstree-closed","").replace("jstree-open","")),i.a_attr["class"]&&(i.a_attr["class"]=i.a_attr["class"].replace("jstree-clicked","").replace("jstree-disabled","")),h[i.id]=i,i.state.selected&&this._data.core.selected.push(i.id),i.id},_parse_model_from_flat_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f=this._model.data,g=this._model.default_state,h,i,j,k,l={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(h in g)g.hasOwnProperty(h)&&(l.state[h]=g[h]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(h in a.data.jstree)a.data.jstree.hasOwnProperty(h)&&(l.state[h]=a.data.jstree[h]);if(a&&"object"==typeof a.state)for(h in a.state)a.state.hasOwnProperty(h)&&(l.state[h]=a.state[h]);if(a&&"object"==typeof a.li_attr)for(h in a.li_attr)a.li_attr.hasOwnProperty(h)&&(l.li_attr[h]=a.li_attr[h]);if(l.li_attr.id||(l.li_attr.id=e),a&&"object"==typeof a.a_attr)for(h in a.a_attr)a.a_attr.hasOwnProperty(h)&&(l.a_attr[h]=a.a_attr[h]);for(a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),f[l.id]=l,h=0,i=l.children.length;i>h;h++)j=this._parse_model_from_flat_json(f[l.children[h]],l.id,d),k=f[j],l.children_d.push(j),k.children_d.length&&(l.children_d=l.children_d.concat(k.children_d));return delete a.data,delete a.children,f[l.id].original=a,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,g,h,i,j=this._model.data,k=this._model.default_state,l;do e="j"+this._id+"_"+ ++this._cnt;while(j[e]);l={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in k)k.hasOwnProperty(f)&&(l.state[f]=k[f]);if(a&&a.id&&(l.id=a.id.toString()),a&&a.text&&(l.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(l.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(l.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(l.li_attr[f]=a.li_attr[f]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=e),l.li_attr.id||(l.li_attr.id=l.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(l.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,g=a.children.length;g>f;f++)h=this._parse_model_from_json(a.children[f],l.id,d),i=j[h],l.children.push(h),i.children_d.length&&(l.children_d=l.children_d.concat(i.children_d));l.children_d=l.children_d.concat(l.children)}return a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete a.data,delete a.children,l.original=a,j[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_redraw:function(){var b=this._model.force_full_redraw?this._model.data[a.jstree.root].children.concat([]):this._model.changed.concat([]),c=i.createElement("UL"),d,e,f,g=this._data.core.focused;for(e=0,f=b.length;f>e;e++)d=this.redraw_node(b[e],!0,this._model.force_full_redraw),d&&this._model.force_full_redraw&&c.appendChild(d);this._model.force_full_redraw&&(c.className=this.get_container_ul()[0].className,c.setAttribute("role","group"),this.element.empty().append(c)),null!==g&&(d=this.get_node(g,!0),d&&d.length&&d.children(".jstree-anchor")[0]!==i.activeElement?d.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:b})},redraw:function(a){a&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(b){var c=this.get_node(b),d=!1,e=!1,f=!1,g=i;if(!c)return!1;if(c.id===a.jstree.root)return this.redraw(!0);if(b=this.get_node(b,!0),!b||!b.length)return!1;if(b.children(".jstree-children").remove(),b=b[0],c.children.length&&c.state.loaded){for(f=g.createElement("UL"),f.setAttribute("role","group"),f.className="jstree-children",d=0,e=c.children.length;e>d;d++)f.appendChild(this.redraw_node(c.children[d],!0,!0));b.appendChild(f)}},redraw_node:function(b,c,d,e){var f=this.get_node(b),g=!1,h=!1,j=!1,k=!1,l=!1,m=!1,n="",o=i,p=this._model.data,q=!1,r=!1,s=null,t=0,u=0,v=!1,w=!1; +if(!f)return!1;if(f.id===a.jstree.root)return this.redraw(!0);if(c=c||0===f.children.length,b=i.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(f.id[0])?"\\3"+f.id[0]+" "+f.id.substr(1).replace(a.jstree.idregex,"\\$&"):f.id.replace(a.jstree.idregex,"\\$&"))):i.getElementById(f.id))b=a(b),d||(g=b.parent().parent()[0],g===this.element[0]&&(g=null),h=b.index()),c||!f.children.length||b.children(".jstree-children").length||(c=!0),c||(j=b.children(".jstree-children")[0]),q=b.children(".jstree-anchor")[0]===i.activeElement,b.remove();else if(c=!0,!d){if(g=f.parent!==a.jstree.root?a("#"+f.parent.replace(a.jstree.idregex,"\\$&"),this.element)[0]:null,!(null===g||g&&p[f.parent].state.opened))return!1;h=a.inArray(f.id,null===g?p[a.jstree.root].children:p[f.parent].children)}b=this._data.core.node.cloneNode(!0),n="jstree-node ";for(k in f.li_attr)if(f.li_attr.hasOwnProperty(k)){if("id"===k)continue;"class"!==k?b.setAttribute(k,f.li_attr[k]):n+=f.li_attr[k]}for(f.a_attr.id||(f.a_attr.id=f.id+"_anchor"),b.setAttribute("aria-selected",!!f.state.selected),b.setAttribute("aria-level",f.parents.length),b.setAttribute("aria-labelledby",f.a_attr.id),f.state.disabled&&b.setAttribute("aria-disabled",!0),k=0,l=f.children.length;l>k;k++)if(!p[f.children[k]].state.hidden){v=!0;break}if(null!==f.parent&&p[f.parent]&&!f.state.hidden&&(k=a.inArray(f.id,p[f.parent].children),w=f.id,-1!==k))for(k++,l=p[f.parent].children.length;l>k;k++)if(p[p[f.parent].children[k]].state.hidden||(w=p[f.parent].children[k]),w!==f.id)break;f.state.hidden&&(n+=" jstree-hidden"),f.state.loaded&&!v?n+=" jstree-leaf":(n+=f.state.opened&&f.state.loaded?" jstree-open":" jstree-closed",b.setAttribute("aria-expanded",f.state.opened&&f.state.loaded)),w===f.id&&(n+=" jstree-last"),b.id=f.id,b.className=n,n=(f.state.selected?" jstree-clicked":"")+(f.state.disabled?" jstree-disabled":"");for(l in f.a_attr)if(f.a_attr.hasOwnProperty(l)){if("href"===l&&"#"===f.a_attr[l])continue;"class"!==l?b.childNodes[1].setAttribute(l,f.a_attr[l]):n+=" "+f.a_attr[l]}if(n.length&&(b.childNodes[1].className="jstree-anchor "+n),(f.icon&&f.icon!==!0||f.icon===!1)&&(f.icon===!1?b.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===f.icon.indexOf("/")&&-1===f.icon.indexOf(".")?b.childNodes[1].childNodes[0].className+=" "+f.icon+" jstree-themeicon-custom":(b.childNodes[1].childNodes[0].style.backgroundImage='url("'+f.icon+'")',b.childNodes[1].childNodes[0].style.backgroundPosition="center center",b.childNodes[1].childNodes[0].style.backgroundSize="auto",b.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?b.childNodes[1].appendChild(o.createTextNode(f.text)):b.childNodes[1].innerHTML+=f.text,c&&f.children.length&&(f.state.opened||e)&&f.state.loaded){for(m=o.createElement("UL"),m.setAttribute("role","group"),m.className="jstree-children",k=0,l=f.children.length;l>k;k++)m.appendChild(this.redraw_node(f.children[k],c,!0));b.appendChild(m)}if(j&&b.appendChild(j),!d){for(g||(g=this.element[0]),k=0,l=g.childNodes.length;l>k;k++)if(g.childNodes[k]&&g.childNodes[k].className&&-1!==g.childNodes[k].className.indexOf("jstree-children")){s=g.childNodes[k];break}s||(s=o.createElement("UL"),s.setAttribute("role","group"),s.className="jstree-children",g.appendChild(s)),g=s,hf;f++)this.open_node(c[f],d,e);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(e=e===b?this.settings.core.animation:e,this.is_closed(c)?this.is_loaded(c)?(h=this.get_node(c,!0),i=this,h.length&&(e&&h.children(".jstree-children").length&&h.children(".jstree-children").stop(!0,!0),c.children.length&&!this._firstChild(h.children(".jstree-children")[0])&&this.draw_children(c),e?(this.trigger("before_open",{node:c}),h.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(e,function(){this.style.display="",i.element&&i.trigger("after_open",{node:c})})):(this.trigger("before_open",{node:c}),h[0].className=h[0].className.replace("jstree-closed","jstree-open"),h[0].setAttribute("aria-expanded",!0))),c.state.opened=!0,d&&d.call(this,c,!0),h.length||this.trigger("before_open",{node:c}),this.trigger("open_node",{node:c}),e&&h.length||this.trigger("after_open",{node:c}),!0):this.is_loading(c)?setTimeout(a.proxy(function(){this.open_node(c,d,e)},this),500):void this.load_node(c,function(a,b){return b?this.open_node(a,d,e):d?d.call(this,a,!1):!1}):(d&&d.call(this,c,!1),!1)):!1},_open_to:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c,d,e=b.parents;for(c=0,d=e.length;d>c;c+=1)c!==a.jstree.root&&this.open_node(e[c],!1,0);return a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)},close_node:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.close_node(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?this.is_closed(c)?!1:(d=d===b?this.settings.core.animation:d,g=this,h=this.get_node(c,!0),c.state.opened=!1,this.trigger("close_node",{node:c}),void(h.length?d?h.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(d,function(){this.style.display="",h.children(".jstree-children").remove(),g.element&&g.trigger("after_close",{node:c})}):(h[0].className=h[0].className.replace("jstree-open","jstree-closed"),h.attr("aria-expanded",!1).children(".jstree-children").remove(),this.trigger("after_close",{node:c})):this.trigger("after_close",{node:c}))):!1},toggle_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.toggle_node(b[c]);return!0}return this.is_closed(b)?this.open_node(b):this.is_open(b)?this.close_node(b):void 0},open_all:function(b,c,d){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var e=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),f,g,h;if(!e.length){for(f=0,g=b.children_d.length;g>f;f++)this.is_closed(this._model.data[b.children_d[f]])&&(this._model.data[b.children_d[f]].state.opened=!0);return this.trigger("open_all",{node:b})}d=d||e,h=this,e=this.is_closed(b)?e.find(".jstree-closed").addBack():e.find(".jstree-closed"),e.each(function(){h.open_node(this,function(a,b){b&&this.is_parent(a)&&this.open_all(a,c,d)},c||0)}),0===d.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(d)})},close_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),e=this,f,g;for(d.length&&(d=this.is_open(b)?d.find(".jstree-open").addBack():d.find(".jstree-open"),a(d.get().reverse()).each(function(){e.close_node(this,c||0)})),f=0,g=b.children_d.length;g>f;f++)this._model.data[b.children_d[f]].state.opened=!1;this.trigger("close_all",{node:b})},is_disabled:function(a){return a=this.get_node(a),a&&a.state&&a.state.disabled},enable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!1,this.get_node(b,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:b})):!1},disable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!0,this.get_node(b,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:b})):!1},is_hidden:function(a){return a=this.get_node(a),a.state.hidden===!0},hide_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.hide_node(b[d],!0);return c||this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden||(b.state.hidden=!0,this._node_changed(b.parent),c||this.redraw(),this.trigger("hide_node",{node:b}))):!1},show_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.show_node(b[d],!0);return c||this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden&&(b.state.hidden=!1,this._node_changed(b.parent),c||this.redraw(),this.trigger("show_node",{node:b}))):!1},hide_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&!d[c].state.hidden&&(d[c].state.hidden=!0,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("hide_all",{nodes:e}),e},show_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&d[c].state.hidden&&(d[c].state.hidden=!1,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("show_all",{nodes:e}),e},activate_node:function(a,c){if(this.is_disabled(a))return!1;if(c&&"object"==typeof c||(c={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==b?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&(!c.shiftKey||this._data.core.last_clicked&&this.get_parent(a)&&this.get_parent(a)===this._data.core.last_clicked.parent))if(c.shiftKey){var d=this.get_node(a).id,e=this._data.core.last_clicked.id,f=this.get_node(this._data.core.last_clicked.parent).children,g=!1,h,i;for(h=0,i=f.length;i>h;h+=1)f[h]===d&&(g=!g),f[h]===e&&(g=!g),this.is_disabled(f[h])||!g&&f[h]!==d&&f[h]!==e?this.deselect_node(f[h],!0,c):this.is_hidden(f[h])||this.select_node(f[h],!0,!1,c);this.trigger("changed",{action:"select_node",node:this.get_node(a),selected:this._data.core.selected,event:c})}else this.is_selected(a)?this.deselect_node(a,!1,c):this.select_node(a,!1,!1,c);else!this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&this.is_selected(a)?this.deselect_node(a,!1,c):(this.deselect_all(!0),this.select_node(a,!1,!1,c),this._data.core.last_clicked=this.get_node(a));this.trigger("activate_node",{node:this.get_node(a),event:c})},hover_node:function(a){if(a=this.get_node(a,!0),!a||!a.length||a.children(".jstree-hovered").length)return!1;var b=this.element.find(".jstree-hovered"),c=this.element;b&&b.length&&this.dehover_node(b),a.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(a)}),setTimeout(function(){c.attr("aria-activedescendant",a[0].id)},0)},dehover_node:function(a){return a=this.get_node(a,!0),a&&a.length&&a.children(".jstree-hovered").length?(a.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(a)})):!1},select_node:function(b,c,d,e){var f,g,h,i;if(a.isArray(b)){for(b=b.slice(),g=0,h=b.length;h>g;g++)this.select_node(b[g],c,d,e);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.selected||(b.state.selected=!0,this._data.core.selected.push(b.id),d||(f=this._open_to(b)),f&&f.length&&f.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:b,selected:this._data.core.selected,event:e}),c||this.trigger("changed",{action:"select_node",node:b,selected:this._data.core.selected,event:e})))):!1},deselect_node:function(b,c,d){var e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.deselect_node(b[e],c,d);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(g=this.get_node(b,!0),void(b.state.selected&&(b.state.selected=!1,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.id),g.length&&g.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:b,selected:this._data.core.selected,event:d}),c||this.trigger("changed",{action:"deselect_node",node:b,selected:this._data.core.selected,event:d})))):!1},select_all:function(b){var c=this._data.core.selected.concat([]),d,e;for(this._data.core.selected=this._model.data[a.jstree.root].children_d.concat(),d=0,e=this._data.core.selected.length;e>d;d++)this._model.data[this._data.core.selected[d]]&&(this._model.data[this._data.core.selected[d]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),b||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:c})},deselect_all:function(a){var b=this._data.core.selected.concat([]),c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)this._model.data[this._data.core.selected[c]]&&(this._model.data[this._data.core.selected[c]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:b}),a||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:b})},is_selected:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.selected:!1},get_selected:function(b){return b?a.map(this._data.core.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.core.selected.slice()},get_top_selected:function(b){var c=this.get_selected(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},get_bottom_selected:function(b){var c=this.get_selected(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},get_state:function(){var b={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}},c;for(c in this._model.data)this._model.data.hasOwnProperty(c)&&c!==a.jstree.root&&(this._model.data[c].state.opened&&b.core.open.push(c),this._model.data[c].state.selected&&b.core.selected.push(c));return b},set_state:function(c,d){if(c){if(c.core){var e,f,g,h,i;if(c.core.open)return a.isArray(c.core.open)&&c.core.open.length?this._load_nodes(c.core.open,function(a){this.open_node(a,!1,0),delete c.core.open,this.set_state(c,d)}):(delete c.core.open,this.set_state(c,d)),!1;if(c.core.scroll)return c.core.scroll&&c.core.scroll.left!==b&&this.element.scrollLeft(c.core.scroll.left),c.core.scroll&&c.core.scroll.top!==b&&this.element.scrollTop(c.core.scroll.top),delete c.core.scroll,this.set_state(c,d),!1;if(c.core.selected)return h=this,this.deselect_all(),a.each(c.core.selected,function(a,b){h.select_node(b,!1,!0)}),delete c.core.selected,this.set_state(c,d),!1;for(i in c)c.hasOwnProperty(i)&&"core"!==i&&-1===a.inArray(i,this.settings.plugins)&&delete c[i];if(a.isEmptyObject(c.core))return delete c.core,this.set_state(c,d),!1}return a.isEmptyObject(c)?(c=null,d&&d.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(b,c){this._data.core.state=c===!0?{}:this.get_state(),c&&a.isFunction(c)&&(this._data.core.state=c.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var d=this.get_container_ul()[0].className;b||(this.element.html(""),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(a.jstree.root,function(b,c){c&&(this.get_container_ul()[0].className=d,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(a.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c=[],d=[],e=this._data.core.selected.concat([]);d.push(b.id),b.state.opened===!0&&c.push(b.id),this.get_node(b,!0).find(".jstree-open").each(function(){d.push(this.id),c.push(this.id)}),this._load_nodes(d,a.proxy(function(a){this.open_node(c,!1,0),this.select_node(e),this.trigger("refresh_node",{node:b,nodes:a})},this),!1,!0)},set_id:function(b,c){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var d,e,f=this._model.data,g=b.id;for(c=c.toString(),f[b.parent].children[a.inArray(b.id,f[b.parent].children)]=c,d=0,e=b.parents.length;e>d;d++)f[b.parents[d]].children_d[a.inArray(b.id,f[b.parents[d]].children_d)]=c;for(d=0,e=b.children.length;e>d;d++)f[b.children[d]].parent=c;for(d=0,e=b.children_d.length;e>d;d++)f[b.children_d[d]].parents[a.inArray(b.id,f[b.children_d[d]].parents)]=c;return d=a.inArray(b.id,this._data.core.selected),-1!==d&&(this._data.core.selected[d]=c),d=this.get_node(b.id,!0),d&&(d.attr("id",c),this.element.attr("aria-activedescendant")===b.id&&this.element.attr("aria-activedescendant",c)),delete f[b.id],b.id=c,b.li_attr.id=c,f[c]=b,this.trigger("set_id",{node:b,"new":b.id,old:g}),!0},get_text:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.text:!1},set_text:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.set_text(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.text=c,this.get_node(b,!0).length&&this.redraw_node(b.id),this.trigger("set_text",{obj:b,text:c}),!0):!1},get_json:function(b,c,d){if(b=this.get_node(b||a.jstree.root),!b)return!1;c&&c.flat&&!d&&(d=[]);var e={id:b.id,text:b.text,icon:this.get_icon(b),li_attr:a.extend(!0,{},b.li_attr),a_attr:a.extend(!0,{},b.a_attr),state:{},data:c&&c.no_data?!1:a.extend(!0,{},b.data)},f,g;if(c&&c.flat?e.parent=b.parent:e.children=[],c&&c.no_state)delete e.state;else for(f in b.state)b.state.hasOwnProperty(f)&&(e.state[f]=b.state[f]);if(c&&c.no_li_attr&&delete e.li_attr,c&&c.no_a_attr&&delete e.a_attr,c&&c.no_id&&(delete e.id,e.li_attr&&e.li_attr.id&&delete e.li_attr.id,e.a_attr&&e.a_attr.id&&delete e.a_attr.id),c&&c.flat&&b.id!==a.jstree.root&&d.push(e),!c||!c.no_children)for(f=0,g=b.children.length;g>f;f++)c&&c.flat?this.get_json(b.children[f],c,d):e.children.push(this.get_json(b.children[f],c));return c&&c.flat?d:b.id===a.jstree.root?e.children:e},create_node:function(c,d,e,f,g){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return!1;if(e=e===b?"last":e,!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(c))return this.load_node(c,function(){this.create_node(c,d,e,f,!0)});d||(d={text:this.get_string("New node")}),"string"==typeof d&&(d={text:d}),d.text===b&&(d.text=this.get_string("New node"));var h,i,j,k;switch(c.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":h=this.get_node(c.parent),e=a.inArray(c.id,h.children),c=h;break;case"after":h=this.get_node(c.parent),e=a.inArray(c.id,h.children)+1,c=h;break;case"inside":case"first":e=0;break;case"last":e=c.children.length;break;default:e||(e=0)}if(e>c.children.length&&(e=c.children.length),d.id||(d.id=!0),!this.check("create_node",d,c,e))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(d.id===!0&&delete d.id,d=this._parse_model_from_json(d,c.id,c.parents.concat()),!d)return!1;for(h=this.get_node(d),i=[],i.push(d),i=i.concat(h.children_d),this.trigger("model",{nodes:i,parent:c.id}),c.children_d=c.children_d.concat(i),j=0,k=c.parents.length;k>j;j++)this._model.data[c.parents[j]].children_d=this._model.data[c.parents[j]].children_d.concat(i);for(d=h,h=[],j=0,k=c.children.length;k>j;j++)h[j>=e?j+1:j]=c.children[j];return h[e]=d.id,c.children=h,this.redraw_node(c,!0),f&&f.call(this,this.get_node(d)),this.trigger("create_node",{node:this.get_node(d),parent:c.id,position:e}),d.id},rename_node:function(b,c){var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.rename_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=b.text,this.check("rename_node",b,this.get_parent(b),c)?(this.set_text(b,c),this.trigger("rename_node",{node:b,text:c,old:f}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1)):!1},delete_node:function(b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.delete_node(b[c]);return!0}if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;if(e=this.get_node(b.parent),f=a.inArray(b.id,e.children),l=!1,!this.check("delete_node",b,e,f))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==f&&(e.children=a.vakata.array_remove(e.children,f)),g=b.children_d.concat([]),g.push(b.id),h=0,i=b.parents.length;i>h;h++)this._model.data[b.parents[h]].children_d=a.vakata.array_filter(this._model.data[b.parents[h]].children_d,function(b){return-1===a.inArray(b,g)});for(j=0,k=g.length;k>j;j++)if(this._model.data[g[j]].state.selected){l=!0;break}for(l&&(this._data.core.selected=a.vakata.array_filter(this._data.core.selected,function(b){return-1===a.inArray(b,g)})),this.trigger("delete_node",{node:b,parent:e.id}),l&&this.trigger("changed",{action:"delete_node",node:b,selected:this._data.core.selected,parent:e.id}),j=0,k=g.length;k>j;j++)delete this._model.data[g[j]];return-1!==a.inArray(this._data.core.focused,g)&&(this._data.core.focused=null,m=this.element[0].scrollTop,n=this.element[0].scrollLeft,e.id===a.jstree.root?this._model.data[a.jstree.root].children[0]&&this.get_node(this._model.data[a.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(e,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=n),this.redraw_node(e,!0),!0},check:function(b,c,d,e,f){c=c&&c.id?c:this.get_node(c),d=d&&d.id?d:this.get_node(d);var g=b.match(/^move_node|copy_node|create_node$/i)?d:c,h=this.settings.core.check_callback;return"move_node"!==b&&"copy_node"!==b||f&&f.is_multi||c.id!==d.id&&("move_node"!==b||a.inArray(c.id,d.children)!==e)&&-1===a.inArray(d.id,c.children_d)?(g&&g.data&&(g=g.data),g&&g.functions&&(g.functions[b]===!1||g.functions[b]===!0)?(g.functions[b]===!1&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})}),g.functions[b]):h===!1||a.isFunction(h)&&h.call(this,b,c,d,e,f)===!1||h&&h[b]===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1):!0):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.move_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(r=this.move_node(c[j],d,e,f,g,!1,i))&&(d=r,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;if(l=(c.parent||a.jstree.root).toString(),n=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,o=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),p=!o||!o._id||this._id!==o._id,m=o&&o._id&&l&&o._model.data[l]&&o._model.data[l].children?a.inArray(c.id,o._model.data[l].children):-1,o&&o._id&&(c=o._model.data[c.id]),p)return(r=this.copy_node(c,d,e,f,g,!1,i))?(o&&o.delete_node(c),r):!1;switch(d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,n.children);break;case"after":e=a.inArray(d.id,n.children)+1;break;case"inside":case"first":e=0;break;case"last":e=n.children.length;break;default:e||(e=0)}if(e>n.children.length&&(e=n.children.length),!this.check("move_node",c,n,e,{core:!0,origin:i,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(c.parent===n.id){for(q=n.children.concat(),r=a.inArray(c.id,q),-1!==r&&(q=a.vakata.array_remove(q,r),e>r&&e--),r=[],s=0,t=q.length;t>s;s++)r[s>=e?s+1:s]=q[s];r[e]=c.id,n.children=r,this._node_changed(n.id),this.redraw(n.id===a.jstree.root)}else{for(r=c.children_d.concat(),r.push(c.id),s=0,t=c.parents.length;t>s;s++){for(q=[],w=o._model.data[c.parents[s]].children_d,u=0,v=w.length;v>u;u++)-1===a.inArray(w[u],r)&&q.push(w[u]);o._model.data[c.parents[s]].children_d=q}for(o._model.data[l].children=a.vakata.array_remove_item(o._model.data[l].children,c.id),s=0,t=n.parents.length;t>s;s++)this._model.data[n.parents[s]].children_d=this._model.data[n.parents[s]].children_d.concat(r);for(q=[],s=0,t=n.children.length;t>s;s++)q[s>=e?s+1:s]=n.children[s];for(q[e]=c.id,n.children=q,n.children_d.push(c.id),n.children_d=n.children_d.concat(c.children_d),c.parent=n.id,r=n.parents.concat(),r.unshift(n.id),w=c.parents.length,c.parents=r,r=r.concat(),s=0,t=c.children_d.length;t>s;s++)this._model.data[c.children_d[s]].parents=this._model.data[c.children_d[s]].parents.slice(0,-1*w),Array.prototype.push.apply(this._model.data[c.children_d[s]].parents,r);(l===a.jstree.root||n.id===a.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(l),this._node_changed(n.id)),h||this.redraw()}return f&&f.call(this,c,n,e),this.trigger("move_node",{node:c,parent:n.id,position:e,old_parent:l,old_position:m,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id,old_instance:o,new_instance:this}),c.id},copy_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.copy_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(m=this.copy_node(c[j],d,e,f,g,!0,i))&&(d=m,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;switch(q=(c.parent||a.jstree.root).toString(),r=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,s=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),t=!s||!s._id||this._id!==s._id,s&&s._id&&(c=s._model.data[c.id]),d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,r.children);break;case"after":e=a.inArray(d.id,r.children)+1;break;case"inside":case"first":e=0;break;case"last":e=r.children.length;break;default:e||(e=0)}if(e>r.children.length&&(e=r.children.length),!this.check("copy_node",c,r,e,{core:!0,origin:i,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(p=s?s.get_json(c,{no_id:!0,no_data:!0,no_state:!0}):c,!p)return!1;if(p.id===!0&&delete p.id,p=this._parse_model_from_json(p,r.id,r.parents.concat()),!p)return!1;for(m=this.get_node(p),c&&c.state&&c.state.loaded===!1&&(m.state.loaded=!1),l=[],l.push(p),l=l.concat(m.children_d),this.trigger("model",{nodes:l,parent:r.id}),n=0,o=r.parents.length;o>n;n++)this._model.data[r.parents[n]].children_d=this._model.data[r.parents[n]].children_d.concat(l);for(l=[],n=0,o=r.children.length;o>n;n++)l[n>=e?n+1:n]=r.children[n];return l[e]=m.id,r.children=l,r.children_d.push(m.id),r.children_d=r.children_d.concat(m.children_d),r.id===a.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(r.id),h||this.redraw(r.id===a.jstree.root),f&&f.call(this,m,r,e),this.trigger("copy_node",{node:m,original:c,parent:r.id,position:e,old_parent:q,old_position:s&&s._id&&q&&s._model.data[q]&&s._model.data[q].children?a.inArray(c.id,s._model.data[q].children):-1,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id,old_instance:s,new_instance:this}),m.id},cut:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="move_node",void this.trigger("cut",{node:b})):!1},copy:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="copy_node",void this.trigger("copy",{node:b})):!1},get_buffer:function(){return{mode:e,node:d,inst:f}},can_paste:function(){return e!==!1&&d!==!1},paste:function(a,b){return a=this.get_node(a),a&&e&&e.match(/^(copy_node|move_node)$/)&&d?(this[e](d,a,b,!1,!1,!1,f)&&this.trigger("paste",{parent:a.id,node:d,mode:e}),d=!1,e=!1,void(f=!1)):!1},clear_buffer:function(){d=!1,e=!1,f=!1,this.trigger("clear_buffer")},edit:function(b,c,d){var e,f,g,h,j,k,l,m,n,o=!1;return(b=this.get_node(b))?this.settings.core.check_callback===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_07",reason:"Could not edit node because of check_callback"},this.settings.core.error.call(this,this._data.core.last_error),!1):(n=b,c="string"==typeof c?c:b.text,this.set_text(b,""),b=this._open_to(b),n.text=c,e=this._data.core.rtl,f=this.element.width(),this._data.core.focused=n.id,g=b.children(".jstree-anchor").focus(),h=a(""),j=c,k=a("
      ",{css:{position:"absolute",top:"-200px",left:e?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),l=a("",{value:j,"class":"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:a.proxy(function(c){c.stopImmediatePropagation(),c.preventDefault();var e=h.children(".jstree-rename-input"),f=e.val(),i=this.settings.core.force_text,m;""===f&&(f=j),k.remove(),h.replaceWith(g),h.remove(),j=i?j:a("
      ").append(a.parseHTML(j)).html(),this.set_text(b,j),m=!!this.rename_node(b,i?a("
      ").text(f).text():a("
      ").append(a.parseHTML(f)).html()),m||this.set_text(b,j),this._data.core.focused=n.id,setTimeout(a.proxy(function(){var a=this.get_node(n.id,!0);a.length&&(this._data.core.focused=n.id,a.children(".jstree-anchor").focus())},this),0),d&&d.call(this,n,m,o),l=null},this),keydown:function(a){var b=a.which;27===b&&(o=!0,this.value=j),(27===b||13===b||37===b||38===b||39===b||40===b||32===b)&&a.stopImmediatePropagation(),(27===b||13===b)&&(a.preventDefault(),this.blur())},click:function(a){a.stopImmediatePropagation()},mousedown:function(a){a.stopImmediatePropagation()},keyup:function(a){l.width(Math.min(k.text("pW"+this.value).width(),f))},keypress:function(a){return 13===a.which?!1:void 0}}),m={fontFamily:g.css("fontFamily")||"",fontSize:g.css("fontSize")||"", +fontWeight:g.css("fontWeight")||"",fontStyle:g.css("fontStyle")||"",fontStretch:g.css("fontStretch")||"",fontVariant:g.css("fontVariant")||"",letterSpacing:g.css("letterSpacing")||"",wordSpacing:g.css("wordSpacing")||""},h.attr("class",g.attr("class")).append(g.contents().clone()).append(l),g.replaceWith(h),k.css(m),l.css(m).width(Math.min(k.text("pW"+l[0].value).width(),f))[0].select(),void a(i).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(b){l&&b.target!==l&&a(l).blur()})):!1},set_theme:function(b,c){if(!b)return!1;if(c===!0){var d=this.settings.core.themes.dir;d||(d=a.jstree.path+"/themes"),c=d+"/"+b+"/style.css"}c&&-1===a.inArray(c,g)&&(a("head").append(''),g.push(c)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=b,this.element.addClass("jstree-"+b),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+b+"-responsive"),this.trigger("set_theme",{theme:b})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(a){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=a,a&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.set_icon(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(h=c.icon,c.icon=d===!0||null===d||d===b||""===d?!0:d,g=this.get_node(c,!0).children(".jstree-anchor").children(".jstree-themeicon"),d===!1?this.hide_icon(c):d===!0||null===d||d===b||""===d?(g.removeClass("jstree-themeicon-custom "+h).css("background","").removeAttr("rel"),h===!1&&this.show_icon(c)):-1===d.indexOf("/")&&-1===d.indexOf(".")?(g.removeClass(h).css("background",""),g.addClass(d+" jstree-themeicon-custom").attr("rel",d),h===!1&&this.show_icon(c)):(g.removeClass(h).css("background",""),g.addClass("jstree-themeicon-custom").css("background","url('"+d+"') center center no-repeat").attr("rel",d),h===!1&&this.show_icon(c)),!0):!1},get_icon:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.icon:!1},hide_icon:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.hide_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(b.icon=!1,this.get_node(b,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0):!1},show_icon:function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.show_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(e=this.get_node(b,!0),b.icon=e.length?e.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"):!0,b.icon||(b.icon=!0),e.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0):!1}},a.vakata={},a.vakata.attributes=function(b,c){b=a(b)[0];var d=c?{}:[];return b&&b.attributes&&a.each(b.attributes,function(b,e){-1===a.inArray(e.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==e.value&&""!==a.trim(e.value)&&(c?d[e.name]=e.value:d.push(e.name))}),d},a.vakata.array_unique=function(a){var c=[],d,e,f,g={};for(d=0,f=a.length;f>d;d++)g[a[d]]===b&&(c.push(a[d]),g[a[d]]=!0);return c},a.vakata.array_remove=function(a,b){return a.splice(b,1),a},a.vakata.array_remove_item=function(b,c){var d=a.inArray(c,b);return-1!==d?a.vakata.array_remove(b,d):b},a.vakata.array_filter=function(a,b,c,d,e){if(a.filter)return a.filter(b,c);d=[];for(e in a)~~e+""==e+""&&e>=0&&b.call(c,a[e],+e,a)&&d.push(a[e]);return d},a.jstree.plugins.changed=function(a,b){var c=[];this.trigger=function(a,d){var e,f;if(d||(d={}),"changed"===a.replace(".jstree","")){d.changed={selected:[],deselected:[]};var g={};for(e=0,f=c.length;f>e;e++)g[c[e]]=1;for(e=0,f=d.selected.length;f>e;e++)g[d.selected[e]]?g[d.selected[e]]=2:d.changed.selected.push(d.selected[e]);for(e=0,f=c.length;f>e;e++)1===g[c[e]]&&d.changed.deselected.push(c[e]);c=d.selected.slice()}b.trigger.call(this,a,d)},this.refresh=function(a,d){return c=[],b.refresh.apply(this,arguments)}};var j=i.createElement("I");j.className="jstree-icon jstree-checkbox",j.setAttribute("role","presentation"),a.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0},a.jstree.plugins.checkbox=function(c,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",a.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",a.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",a.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",a.proxy(function(a,b){var c=this._model.data,d=c[b.parent],e=b.nodes,f,g;for(f=0,g=e.length;g>f;f++)c[e[f]].state.checked=c[e[f]].state.checked||c[e[f]].original&&c[e[f]].original.state&&c[e[f]].original.state.checked,c[e[f]].state.checked&&this._data.checkbox.selected.push(e[f])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",a.proxy(function(b,c){var d=this._model.data,e=d[c.parent],f=c.nodes,g=[],h,i,j,k,l,m,n=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection;if(-1!==n.indexOf("down"))if(e.state[o?"selected":"checked"]){for(i=0,j=f.length;j>i;i++)d[f[i]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(f)}else for(i=0,j=f.length;j>i;i++)if(d[f[i]].state[o?"selected":"checked"]){for(k=0,l=d[f[i]].children_d.length;l>k;k++)d[d[f[i]].children_d[k]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(d[f[i]].children_d)}if(-1!==n.indexOf("up")){for(i=0,j=e.children_d.length;j>i;i++)d[e.children_d[i]].children.length||g.push(d[e.children_d[i]].parent);for(g=a.vakata.array_unique(g),k=0,l=g.length;l>k;k++){e=d[g[k]];while(e&&e.id!==a.jstree.root){for(h=0,i=0,j=e.children.length;j>i;i++)h+=d[e.children[i]].state[o?"selected":"checked"];if(h!==j)break;e.state[o?"selected":"checked"]=!0,this._data[o?"core":"checkbox"].selected.push(e.id),m=this.get_node(e,!0),m&&m.length&&m.attr("aria-selected",!0).children(".jstree-anchor").addClass(o?"jstree-clicked":"jstree-checked"),e=this.get_node(e.parent)}}}this._data[o?"core":"checkbox"].selected=a.vakata.array_unique(this._data[o?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",a.proxy(function(b,c){var d=c.node,e=this._model.data,f=this.get_node(d.parent),g=this.get_node(d,!0),h,i,j,k,l=this.settings.checkbox.cascade,m=this.settings.checkbox.tie_selection,n={},o=this._data[m?"core":"checkbox"].selected;for(h=0,i=o.length;i>h;h++)n[o[h]]=!0;if(-1!==l.indexOf("down"))for(h=0,i=d.children_d.length;i>h;h++)n[d.children_d[h]]=!0,k=e[d.children_d[h]],k.state[m?"selected":"checked"]=!0,k&&k.original&&k.original.state&&k.original.state.undetermined&&(k.original.state.undetermined=!1);if(-1!==l.indexOf("up"))while(f&&f.id!==a.jstree.root){for(j=0,h=0,i=f.children.length;i>h;h++)j+=e[f.children[h]].state[m?"selected":"checked"];if(j!==i)break;f.state[m?"selected":"checked"]=!0,n[f.id]=!0,k=this.get_node(f,!0),k&&k.length&&k.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),f=this.get_node(f.parent)}o=[];for(h in n)n.hasOwnProperty(h)&&o.push(h);this._data[m?"core":"checkbox"].selected=o,-1!==l.indexOf("down")&&g.length&&g.find(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!0)},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",a.proxy(function(b,c){var d=this.get_node(a.jstree.root),e=this._model.data,f,g,h;for(f=0,g=d.children_d.length;g>f;f++)h=e[d.children_d[f]],h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",a.proxy(function(b,c){var d=c.node,e=this.get_node(d,!0),f,g,h,i=this.settings.checkbox.cascade,j=this.settings.checkbox.tie_selection,k=this._data[j?"core":"checkbox"].selected,l={};if(d&&d.original&&d.original.state&&d.original.state.undetermined&&(d.original.state.undetermined=!1),-1!==i.indexOf("down"))for(f=0,g=d.children_d.length;g>f;f++)h=this._model.data[d.children_d[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1);if(-1!==i.indexOf("up"))for(f=0,g=d.parents.length;g>f;f++)h=this._model.data[d.parents[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1),h=this.get_node(d.parents[f],!0),h&&h.length&&h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked");for(l={},f=0,g=k.length;g>f;f++)-1!==i.indexOf("down")&&-1!==a.inArray(k[f],d.children_d)||-1!==i.indexOf("up")&&-1!==a.inArray(k[f],d.parents)||(l[k[f]]=!0);k=[];for(f in l)l.hasOwnProperty(f)&&k.push(f);this._data[j?"core":"checkbox"].selected=k,-1!==i.indexOf("down")&&e.length&&e.find(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!1)},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",a.proxy(function(b,c){var d=this.get_node(c.parent),e=this._model.data,f,g,h,i,j=this.settings.checkbox.tie_selection;while(d&&d.id!==a.jstree.root&&!d.state[j?"selected":"checked"]){for(h=0,f=0,g=d.children.length;g>f;f++)h+=e[d.children[f]].state[j?"selected":"checked"];if(!(g>0&&h===g))break;d.state[j?"selected":"checked"]=!0,this._data[j?"core":"checkbox"].selected.push(d.id),i=this.get_node(d,!0),i&&i.length&&i.attr("aria-selected",!0).children(".jstree-anchor").addClass(j?"jstree-clicked":"jstree-checked"),d=this.get_node(d.parent)}},this)).on("move_node.jstree",a.proxy(function(b,c){var d=c.is_multi,e=c.old_parent,f=this.get_node(c.parent),g=this._model.data,h,i,j,k,l,m=this.settings.checkbox.tie_selection;if(!d){h=this.get_node(e);while(h&&h.id!==a.jstree.root&&!h.state[m?"selected":"checked"]){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(!(k>0&&i===k))break;h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),h=this.get_node(h.parent)}}h=f;while(h&&h.id!==a.jstree.root){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(i===k)h.state[m?"selected":"checked"]||(h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"));else{if(!h.state[m?"selected":"checked"])break;h.state[m?"selected":"checked"]=!1,this._data[m?"core":"checkbox"].selected=a.vakata.array_remove_item(this._data[m?"core":"checkbox"].selected,h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!1).children(".jstree-anchor").removeClass(m?"jstree-clicked":"jstree-checked")}h=this.get_node(h.parent)}},this))},this._undetermined=function(){if(null!==this.element){var c,d,e,f,g={},h=this._model.data,i=this.settings.checkbox.tie_selection,j=this._data[i?"core":"checkbox"].selected,k=[],l=this;for(c=0,d=j.length;d>c;c++)if(h[j[c]]&&h[j[c]].parents)for(e=0,f=h[j[c]].parents.length;f>e;e++){if(g[h[j[c]].parents[e]]!==b)break;h[j[c]].parents[e]!==a.jstree.root&&(g[h[j[c]].parents[e]]=!0,k.push(h[j[c]].parents[e]))}for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var i=l.get_node(this),j;if(i.state.loaded){for(c=0,d=i.children_d.length;d>c;c++)if(j=h[i.children_d[c]],!j.state.loaded&&j.original&&j.original.state&&j.original.state.undetermined&&j.original.state.undetermined===!0)for(g[j.id]===b&&j.id!==a.jstree.root&&(g[j.id]=!0,k.push(j.id)),e=0,f=j.parents.length;f>e;e++)g[j.parents[e]]===b&&j.parents[e]!==a.jstree.root&&(g[j.parents[e]]=!0,k.push(j.parents[e]))}else if(i.original&&i.original.state&&i.original.state.undetermined&&i.original.state.undetermined===!0)for(g[i.id]===b&&i.id!==a.jstree.root&&(g[i.id]=!0,k.push(i.id)),e=0,f=i.parents.length;f>e;e++)g[i.parents[e]]===b&&i.parents[e]!==a.jstree.root&&(g[i.parents[e]]=!0,k.push(i.parents[e]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),c=0,d=k.length;d>c;c++)h[k[c]].state[i?"selected":"checked"]||(j=this.get_node(k[c],!0),j&&j.length&&j.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined"))}},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments)){var g,h,i=null,k=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(!this.settings.checkbox.tie_selection&&this._model.data[b.id].state.checked&&(i.className+=" jstree-checked"),k=j.cloneNode(!1),this._model.data[b.id].state.checkbox_disabled&&(k.className+=" jstree-checkbox-disabled"),i.insertBefore(k,i.childNodes[0]))}return e||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)),b},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(b){b=this.get_node(b);var c=this.settings.checkbox.cascade,d,e,f=this.settings.checkbox.tie_selection,g=this._data[f?"core":"checkbox"].selected,h=this._model.data;if(!b||b.state[f?"selected":"checked"]===!0||-1===c.indexOf("undetermined")||-1===c.indexOf("down")&&-1===c.indexOf("up"))return!1;if(!b.state.loaded&&b.original.state.undetermined===!0)return!0;for(d=0,e=b.children_d.length;e>d;d++)if(-1!==a.inArray(b.children_d[d],g)||!h[b.children_d[d]].state.loaded&&h[b.children_d[d]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled||(b.state.checkbox_disabled=!0,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:b})))):!1},this.enable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled&&(b.state.checkbox_disabled=!1,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:b})))):!1},this.activate_node=function(b,c){return a(c.target).hasClass("jstree-checkbox-disabled")?!1:(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||a(c.target).hasClass("jstree-checkbox"))&&(c.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!a(c.target).hasClass("jstree-checkbox")?d.activate_node.call(this,b,c):this.is_disabled(b)?!1:(this.is_checked(b)?this.uncheck_node(b,c):this.check_node(b,c),void this.trigger("activate_node",{node:this.get_node(b)})))},this.check_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.select_node(b,!1,!0,c);var d,e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.check_node(b[e],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(d=this.get_node(b,!0),void(b.state.checked||(b.state.checked=!0,this._data.checkbox.selected.push(b.id),d&&d.length&&d.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.uncheck_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.deselect_node(b,!1,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.uncheck_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.checked&&(b.state.checked=!1,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,b.id),f.length&&f.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var b=this._data.checkbox.selected.concat([]),c,d;for(this._data.checkbox.selected=this._model.data[a.jstree.root].children_d.concat(),c=0,d=this._data.checkbox.selected.length;d>c;c++)this._model.data[this._data.checkbox.selected[c]]&&(this._model.data[this._data.checkbox.selected[c]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var a=this._data.checkbox.selected.concat([]),b,c;for(b=0,c=this._data.checkbox.selected.length;c>b;b++)this._model.data[this._data.checkbox.selected[b]]&&(this._model.data[this._data.checkbox.selected[b]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:a})},this.is_checked=function(b){return this.settings.checkbox.tie_selection?this.is_selected(b):(b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.checked:!1)},this.get_checked=function(b){return this.settings.checkbox.tie_selection?this.get_selected(b):b?a.map(this._data.checkbox.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.checkbox.selected},this.get_top_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_top_selected(b);var c=this.get_checked(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},this.get_bottom_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(b);var c=this.get_checked(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},this.load_node=function(b,c){var e,f,g,h,i,j;if(!a.isArray(b)&&!this.settings.checkbox.tie_selection&&(j=this.get_node(b),j&&j.state.loaded))for(e=0,f=j.children_d.length;f>e;e++)this._model.data[j.children_d[e]].state.checked&&(i=!0,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,j.children_d[e]));return d.load_node.apply(this,arguments)},this.get_state=function(){var a=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?a:(a.checkbox=this._data.checkbox.selected.slice(),a)},this.set_state=function(b,c){var e=d.set_state.apply(this,arguments);if(e&&b.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var f=this;a.each(b.checkbox,function(a,b){f.check_node(b)})}return delete b.checkbox,this.set_state(b,c),!1}return e},this.refresh=function(a,b){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},a.jstree.defaults.conditionalselect=function(){return!0},a.jstree.plugins.conditionalselect=function(a,b){this.activate_node=function(a,c){this.settings.conditionalselect.call(this,this.get_node(a),c)&&b.activate_node.call(this,a,c)}},a.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(b,c){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.create_node(d,{},"last",function(a){setTimeout(function(){c.edit(a)},0)})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.edit(d)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.delete_node(c.get_selected()):c.delete_node(d)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.cut(c.get_top_selected()):c.cut(d)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.copy(c.get_top_selected()):c.copy(d)}},paste:{separator_before:!1,icon:!1,_disabled:function(b){return!a.jstree.reference(b.reference).can_paste()},separator_after:!1,label:"Paste",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.paste(d)}}}}}}},a.jstree.plugins.contextmenu=function(c,d){this.bind=function(){d.bind.call(this);var b=0,c=null,e,f;this.element.on("contextmenu.jstree",".jstree-anchor",a.proxy(function(a,d){"input"!==a.target.tagName.toLowerCase()&&(a.preventDefault(),b=a.ctrlKey?+new Date:0,(d||c)&&(b=+new Date+1e4),c&&clearTimeout(c),this.is_loading(a.currentTarget)||this.show_contextmenu(a.currentTarget,a.pageX,a.pageY,a))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(c){this._data.contextmenu.visible&&(!b||+new Date-b>250)&&a.vakata.context.hide(),b=0},this)).on("touchstart.jstree",".jstree-anchor",function(b){b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(e=b.originalEvent.changedTouches[0].clientX,f=b.originalEvent.changedTouches[0].clientY,c=setTimeout(function(){a(b.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(a){c&&a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(Math.abs(e-a.originalEvent.changedTouches[0].clientX)>50||Math.abs(f-a.originalEvent.changedTouches[0].clientY)>50)&&clearTimeout(c)}).on("touchend.vakata.jstree",function(a){c&&clearTimeout(c)}),a(i).on("context_hide.vakata.jstree",a.proxy(function(b,c){this._data.contextmenu.visible=!1,a(c.reference).removeClass("jstree-context")},this))},this.teardown=function(){this._data.contextmenu.visible&&a.vakata.context.hide(),d.teardown.call(this)},this.show_contextmenu=function(c,d,e,f){if(c=this.get_node(c),!c||c.id===a.jstree.root)return!1;var g=this.settings.contextmenu,h=this.get_node(c,!0),i=h.children(".jstree-anchor"),j=!1,k=!1;(g.show_at_node||d===b||e===b)&&(j=i.offset(),d=j.left,e=j.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(c)&&this.activate_node(c,f),k=g.items,a.isFunction(k)&&(k=k.call(this,c,a.proxy(function(a){this._show_contextmenu(c,d,e,a)},this))),a.isPlainObject(k)&&this._show_contextmenu(c,d,e,k)},this._show_contextmenu=function(b,c,d,e){var f=this.get_node(b,!0),g=f.children(".jstree-anchor");a(i).one("context_show.vakata.jstree",a.proxy(function(b,c){var d="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";a(c.element).addClass(d),g.addClass("jstree-context")},this)),this._data.contextmenu.visible=!0,a.vakata.context.show(g,{x:c,y:d},e),this.trigger("show_contextmenu",{node:b,x:c,y:d})}},function(a){var b=!1,c={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};a.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(b){a(i).triggerHandler("context_"+b+".vakata",{reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}})},_execute:function(b){return b=c.items[b],b&&(!b._disabled||a.isFunction(b._disabled)&&!b._disabled({item:b,reference:c.reference,element:c.element}))&&b.action?b.action.call(null,{item:b,reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}}):!1},_parse:function(b,d){if(!b)return!1;d||(c.html="",c.items=[]);var e="",f=!1,g;return d&&(e+=""),d||(c.html=e,a.vakata.context._trigger("parse")),e.length>10?e:!1},_show_submenu:function(c){if(c=a(c),c.length&&c.children("ul").length){var d=c.children("ul"),e=c.offset().left,f=e+c.outerWidth(),g=c.offset().top,h=d.width(),i=d.height(),j=a(window).width()+a(window).scrollLeft(),k=a(window).height()+a(window).scrollTop();b?c[f-(h+10+c.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):c[f+h>j&&e>j-f?"addClass":"removeClass"]("vakata-context-right"),g+i+10>k&&d.css("bottom","-1px"),c.hasClass("vakata-context-right")?h>e&&d.css("margin-right",e-h):h>j-f&&d.css("margin-left",j-f-h),d.show()}},show:function(d,e,f){var g,h,i,j,k,l,m,n,o=!0;switch(c.element&&c.element.length&&c.element.width(""),o){case!e&&!d:return!1;case!!e&&!!d:c.reference=d,c.position_x=e.x,c.position_y=e.y;break;case!e&&!!d:c.reference=d,g=d.offset(),c.position_x=g.left+d.outerHeight(),c.position_y=g.top;break;case!!e&&!d:c.position_x=e.x,c.position_y=e.y}d&&!f&&a(d).data("vakata_contextmenu")&&(f=a(d).data("vakata_contextmenu")),a.vakata.context._parse(f)&&c.element.html(c.html),c.items.length&&(c.element.appendTo("body"),h=c.element,i=c.position_x,j=c.position_y,k=h.width(),l=h.height(),m=a(window).width()+a(window).scrollLeft(),n=a(window).height()+a(window).scrollTop(),b&&(i-=h.outerWidth()-a(d).outerWidth(),im&&(i=m-(k+20)),j+l+20>n&&(j=n-(l+20)),c.element.css({left:i,top:j}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),c.is_visible=!0,a.vakata.context._trigger("show"))},hide:function(){c.is_visible&&(c.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),c.is_visible=!1,a.vakata.context._trigger("hide"))}},a(function(){b="rtl"===a("body").css("direction");var d=!1;c.element=a("
        "),c.element.on("mouseenter","li",function(b){b.stopImmediatePropagation(),a.contains(this,b.relatedTarget)||(d&&clearTimeout(d),c.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),a(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),a.vakata.context._show_submenu(this))}).on("mouseleave","li",function(b){a.contains(this,b.relatedTarget)||a(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(b){a(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),a.vakata.context.settings.hide_onmouseleave&&(d=setTimeout(function(b){return function(){a.vakata.context.hide()}}(this),a.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(b){b.preventDefault(),a(this).blur().parent().hasClass("vakata-context-disabled")||a.vakata.context._execute(a(this).attr("rel"))===!1||a.vakata.context.hide()}).on("keydown","a",function(b){var d=null;switch(b.which){case 13:case 32:b.type="click",b.preventDefault(),a(b.currentTarget).trigger(b);break;case 37:c.is_visible&&(c.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 38:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(), +d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 39:c.is_visible&&(c.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 40:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 27:a.vakata.context.hide(),b.preventDefault()}}).on("keydown",function(a){a.preventDefault();var b=c.element.find(".vakata-contextmenu-shortcut-"+a.which).parent();b.parent().not(".vakata-context-disabled")&&b.click()}),a(i).on("mousedown.vakata.jstree",function(b){c.is_visible&&!a.contains(c.element[0],b.target)&&a.vakata.context.hide()}).on("context_show.vakata.jstree",function(a,d){c.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),b&&c.element.addClass("vakata-context-rtl").css("direction","rtl"),c.element.find("ul").hide().end()})})}(a),a.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1};var k,l;a.jstree.plugins.dnd=function(b,c){this.init=function(a,b){c.init.call(this,a,b),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in i.createElement("span")},this.bind=function(){c.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",a.proxy(function(b){if(this.settings.dnd.large_drag_target&&a(b.target).closest(".jstree-node")[0]!==b.currentTarget)return!0;if("touchstart"===b.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var c=this.get_node(b.target),d=this.is_selected(c)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,e=d>1?d+" "+this.get_string("nodes"):this.get_text(b.currentTarget);if(this.settings.core.force_text&&(e=a.vakata.html.escape(e)),c&&c.id&&c.id!==a.jstree.root&&(1===b.which||"touchstart"===b.type||"dragstart"===b.type)&&(this.settings.dnd.is_draggable===!0||a.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,d>1?this.get_top_selected(!0):[c],b))){if(k={jstree:!0,origin:this,obj:this.get_node(c,!0),nodes:d>1?this.get_top_selected():[c.id]},l=b.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),a.vakata.dnd.start(b,k,'
        '+e+'
        ');a.vakata.dnd._trigger("start",b,{helper:a(),element:l,data:k})}},this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(b){return b.preventDefault(),a.vakata.dnd._trigger("move",b,{helper:a(),element:l,data:k}),!1}).on("drop.jstree",a.proxy(function(b){return b.preventDefault(),a.vakata.dnd._trigger("stop",b,{helper:a(),element:l,data:k}),!1},this))},this.redraw_node=function(a,b,d,e){if(a=c.redraw_node.apply(this,arguments),a&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)a.setAttribute("draggable",!0);else{var f,g,h=null;for(f=0,g=a.childNodes.length;g>f;f++)if(a.childNodes[f]&&a.childNodes[f].className&&-1!==a.childNodes[f].className.indexOf("jstree-anchor")){h=a.childNodes[f];break}h&&h.setAttribute("draggable",!0)}return a}},a(function(){var c=!1,d=!1,e=!1,f=!1,g=a('
         
        ').hide();a(i).on("dnd_start.vakata.jstree",function(a,b){c=!1,e=!1,b&&b.data&&b.data.jstree&&g.appendTo("body")}).on("dnd_move.vakata.jstree",function(h,i){if(f&&(i.event&&"dragover"===i.event.type&&i.event.target===e.target||clearTimeout(f)),i&&i.data&&i.data.jstree&&(!i.event.target.id||"jstree-marker"!==i.event.target.id)){e=i.event;var j=a.jstree.reference(i.event.target),k=!1,l=!1,m=!1,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;if(j&&j._data&&j._data.dnd)if(g.attr("class","jstree-"+j.get_theme()+(j.settings.core.themes.responsive?" jstree-dnd-responsive":"")),C=i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey)),i.helper.children().attr("class","jstree-"+j.get_theme()+" jstree-"+j.get_theme()+"-"+j.get_theme_variant()+" "+(j.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[C?"show":"hide"](),i.event.target!==j.element[0]&&i.event.target!==j.get_container_ul()[0]||0!==j.get_container_ul().children().length){if(k=j.settings.dnd.large_drop_target?a(i.event.target).closest(".jstree-node").children(".jstree-anchor"):a(i.event.target).closest(".jstree-anchor"),k&&k.length&&k.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(l=k.offset(),m=(i.event.pageY!==b?i.event.pageY:i.event.originalEvent.pageY)-l.top,q=k.outerHeight(),t=q/3>m?["b","i","a"]:m>q-q/3?["a","i","b"]:m>q/2?["i","a","b"]:["i","b","a"],a.each(t,function(b,e){switch(e){case"b":o=l.left-6,p=l.top,r=j.get_parent(k),s=k.parent().index();break;case"i":A=j.settings.dnd.inside_pos,B=j.get_node(k.parent()),o=l.left-2,p=l.top+q/2+1,r=B.id,s="first"===A?0:"last"===A?B.children.length:Math.min(A,B.children.length);break;case"a":o=l.left-6,p=l.top+q,r=j.get_parent(k),s=k.parent().index()+1}for(u=!0,v=0,w=i.data.nodes.length;w>v;v++)if(x=i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey))?"copy_node":"move_node",y=s,"move_node"===x&&"a"===e&&i.data.origin&&i.data.origin===j&&r===j.get_parent(i.data.nodes[v])&&(z=j.get_node(r),y>a.inArray(i.data.nodes[v],z.children)&&(y-=1)),u=u&&(j&&j.settings&&j.settings.dnd&&j.settings.dnd.check_while_dragging===!1||j.check(x,i.data.origin&&i.data.origin!==j?i.data.origin.get_node(i.data.nodes[v]):i.data.nodes[v],r,y,{dnd:!0,ref:j.get_node(k.parent()),pos:e,origin:i.data.origin,is_multi:i.data.origin&&i.data.origin!==j,is_foreign:!i.data.origin})),!u){j&&j.last_error&&(d=j.last_error());break}return"i"===e&&k.parent().is(".jstree-closed")&&j.settings.dnd.open_timeout&&(f=setTimeout(function(a,b){return function(){a.open_node(b)}}(j,k),j.settings.dnd.open_timeout)),u?(D=j.get_node(r,!0),D.hasClass(".jstree-dnd-parent")||(a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),D.addClass("jstree-dnd-parent")),c={ins:j,par:r,pos:"i"!==e||"last"!==A||0!==s||j.is_loaded(B)?s:"last"},g.css({left:o+"px",top:p+"px"}).show(),i.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect=C?"copy":"move"),d={},t=!0,!1):void 0}),t===!0))return}else{for(u=!0,v=0,w=i.data.nodes.length;w>v;v++)if(u=u&&j.check(i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey))?"copy_node":"move_node",i.data.origin&&i.data.origin!==j?i.data.origin.get_node(i.data.nodes[v]):i.data.nodes[v],a.jstree.root,"last",{dnd:!0,ref:j.get_node(a.jstree.root),pos:"i",origin:i.data.origin,is_multi:i.data.origin&&i.data.origin!==j,is_foreign:!i.data.origin}),!u)break;if(u)return c={ins:j,par:a.jstree.root,pos:"last"},g.hide(),i.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect=C?"copy":"move"))}a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),c=!1,i.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect="none"),g.hide()}}).on("dnd_scroll.vakata.jstree",function(a,b){b&&b.data&&b.data.jstree&&(g.hide(),c=!1,e=!1,b.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(b,h){if(a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),f&&clearTimeout(f),h&&h.data&&h.data.jstree){g.hide().detach();var i,j,k=[];if(c){for(i=0,j=h.data.nodes.length;j>i;i++)k[i]=h.data.origin?h.data.origin.get_node(h.data.nodes[i]):h.data.nodes[i];c.ins[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node"](k,c.par,c.pos,!1,!1,!1,h.data.origin)}else i=a(h.event.target).closest(".jstree"),i.length&&d&&d.error&&"check"===d.error&&(i=i.jstree(!0),i&&i.settings.core.error.call(this,d));e=!1,c=!1}}).on("keyup.jstree keydown.jstree",function(b,h){h=a.vakata.dnd._get(),h&&h.data&&h.data.jstree&&("keyup"===b.type&&27===b.which?(f&&clearTimeout(f),c=!1,d=!1,e=!1,f=!1,g.hide().detach(),a.vakata.dnd._clean()):(h.helper.find(".jstree-copy").first()[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(b.metaKey||b.ctrlKey))?"show":"hide"](),e&&(e.metaKey=b.metaKey,e.ctrlKey=b.ctrlKey,a.vakata.dnd._trigger("move",e))))})}),function(a){a.vakata.html={div:a("
        "),escape:function(b){return a.vakata.html.div.text(b).html()},strip:function(b){return a.vakata.html.div.empty().append(a.parseHTML(b)).text()}};var c={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};a.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(c,d,e){e===b&&(e=a.vakata.dnd._get()),e.event=d,a(i).triggerHandler("dnd_"+c+".vakata",e)},_get:function(){return{data:c.data,element:c.element,helper:c.helper}},_clean:function(){c.helper&&c.helper.remove(),c.scroll_i&&(clearInterval(c.scroll_i),c.scroll_i=!1),c={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},a(i).off("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).off("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop)},_scroll:function(b){if(!c.scroll_e||!c.scroll_l&&!c.scroll_t)return c.scroll_i&&(clearInterval(c.scroll_i),c.scroll_i=!1),!1;if(!c.scroll_i)return c.scroll_i=setInterval(a.vakata.dnd._scroll,100),!1;if(b===!0)return!1;var d=c.scroll_e.scrollTop(),e=c.scroll_e.scrollLeft();c.scroll_e.scrollTop(d+c.scroll_t*a.vakata.dnd.settings.scroll_speed),c.scroll_e.scrollLeft(e+c.scroll_l*a.vakata.dnd.settings.scroll_speed),(d!==c.scroll_e.scrollTop()||e!==c.scroll_e.scrollLeft())&&a.vakata.dnd._trigger("scroll",c.scroll_e)},start:function(b,d,e){"touchstart"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_drag&&a.vakata.dnd.stop({});try{b.currentTarget.unselectable="on",b.currentTarget.onselectstart=function(){return!1},b.currentTarget.style&&(b.currentTarget.style.touchAction="none",b.currentTarget.style.msTouchAction="none",b.currentTarget.style.MozUserSelect="none")}catch(f){}return c.init_x=b.pageX,c.init_y=b.pageY,c.data=d,c.is_down=!0,c.element=b.currentTarget,c.target=b.target,c.is_touch="touchstart"===b.type,e!==!1&&(c.helper=a("
        ").html(e).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),a(i).on("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).on("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop),!1},drag:function(b){if("touchmove"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_down){if(!c.is_drag){if(!(Math.abs(b.pageX-c.init_x)>(c.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)||Math.abs(b.pageY-c.init_y)>(c.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)))return;c.helper&&(c.helper.appendTo("body"),c.helper_w=c.helper.outerWidth()),c.is_drag=!0,a(c.target).one("click.vakata",!1),a.vakata.dnd._trigger("start",b)}var d=!1,e=!1,f=!1,g=!1,h=!1,j=!1,k=!1,l=!1,m=!1,n=!1;return c.scroll_t=0,c.scroll_l=0,c.scroll_e=!1,a(a(b.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(a(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var d=a(this),e=d.offset();return this.scrollHeight>this.offsetHeight&&(e.top+d.height()-b.pageYthis.offsetWidth&&(e.left+d.width()-b.pageXg&&b.pageY-kg&&g-(b.pageY-k)j&&b.pageX-lj&&j-(b.pageX-l)f&&(m=f-50),h&&n+c.helper_w>h&&(n=h-(c.helper_w+2)),c.helper.css({left:n+"px",top:m+"px"})),a.vakata.dnd._trigger("move",b),!1}},stop:function(b){if("touchend"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_drag)b.target!==c.target&&a(c.target).off("click.vakata"),a.vakata.dnd._trigger("stop",b);else if("touchend"===b.type&&b.target===c.target){var d=setTimeout(function(){a(b.target).click()},100);a(b.target).one("click",function(){d&&clearTimeout(d)})}return a.vakata.dnd._clean(),!1}}}(a),a.jstree.defaults.massload=null,a.jstree.plugins.massload=function(b,c){this.init=function(a,b){this._data.massload={},c.init.call(this,a,b)},this._load_nodes=function(b,d,e,f){var g=this.settings.massload,h=JSON.stringify(b),i=[],j=this._model.data,k,l,m;if(!e){for(k=0,l=b.length;l>k;k++)(!j[b[k]]||!j[b[k]].state.loaded&&!j[b[k]].state.failed||f)&&(i.push(b[k]),m=this.get_node(b[k],!0),m&&m.length&&m.addClass("jstree-loading").attr("aria-busy",!0));if(this._data.massload={},i.length){if(a.isFunction(g))return g.call(this,i,a.proxy(function(a){var g,h;if(a)for(g in a)a.hasOwnProperty(g)&&(this._data.massload[g]=a[g]);for(g=0,h=b.length;h>g;g++)m=this.get_node(b[g],!0),m&&m.length&&m.removeClass("jstree-loading").attr("aria-busy",!1);c._load_nodes.call(this,b,d,e,f)},this));if("object"==typeof g&&g&&g.url)return g=a.extend(!0,{},g),a.isFunction(g.url)&&(g.url=g.url.call(this,i)),a.isFunction(g.data)&&(g.data=g.data.call(this,i)),a.ajax(g).done(a.proxy(function(a,g,h){var i,j;if(a)for(i in a)a.hasOwnProperty(i)&&(this._data.massload[i]=a[i]);for(i=0,j=b.length;j>i;i++)m=this.get_node(b[i],!0),m&&m.length&&m.removeClass("jstree-loading").attr("aria-busy",!1);c._load_nodes.call(this,b,d,e,f)},this)).fail(a.proxy(function(a){c._load_nodes.call(this,b,d,e,f)},this))}}return c._load_nodes.call(this,b,d,e,f)},this._load_node=function(b,d){var e=this._data.massload[b.id],f=null,g;return e?(f=this["string"==typeof e?"_append_html_data":"_append_json_data"](b,"string"==typeof e?a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}):e,function(a){d.call(this,a)}),g=this.get_node(b.id,!0),g&&g.length&&g.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[b.id],f):c._load_node.call(this,b,d)}},a.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},a.jstree.plugins.search=function(c,d){this.bind=function(){d.bind.call(this),this._data.search.str="",this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",a.proxy(function(b,c){if(this._data.search.som&&c.res.length){var d=this._model.data,e,f,g=[],h,i;for(e=0,f=c.res.length;f>e;e++)if(d[c.res[e]]&&!d[c.res[e]].state.hidden&&(g.push(c.res[e]),g=g.concat(d[c.res[e]].parents),this._data.search.smc))for(h=0,i=d[c.res[e]].children_d.length;i>h;h++)d[d[c.res[e]].children_d[h]]&&!d[d[c.res[e]].children_d[h]].state.hidden&&g.push(d[c.res[e]].children_d[h]);g=a.vakata.array_remove_item(a.vakata.array_unique(g),a.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(g,!0),this.redraw(!0)}},this)).on("clear_search.jstree",a.proxy(function(a,b){this._data.search.som&&b.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))},this))},this.search=function(c,d,e,f,g,h){if(c===!1||""===a.trim(c.toString()))return this.clear_search();f=this.get_node(f),f=f&&f.id?f.id:null,c=c.toString();var i=this.settings.search,j=i.ajax?i.ajax:!1,k=this._model.data,l=null,m=[],n=[],o,p;if(this._data.search.res.length&&!g&&this.clear_search(),e===b&&(e=i.show_only_matches),h===b&&(h=i.show_only_matches_children),!d&&j!==!1)return a.isFunction(j)?j.call(this,c,a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g,h)})},this),f):(j=a.extend({},j),j.data||(j.data={}),j.data.str=c,f&&(j.data.inside=f),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=a.ajax(j).fail(a.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(j)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g,h)})},this)),this._data.search.lastRequest);if(g||(this._data.search.str=c,this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=e,this._data.search.smc=h),l=new a.vakata.search(c,!0,{caseSensitive:i.case_sensitive,fuzzy:i.fuzzy}),a.each(k[f?f:a.jstree.root].children_d,function(a,b){var d=k[b];d.text&&!d.state.hidden&&(!i.search_leaves_only||d.state.loaded&&0===d.children.length)&&(i.search_callback&&i.search_callback.call(this,c,d)||!i.search_callback&&l.search(d.text).isMatch)&&(m.push(b),n=n.concat(d.parents))}),m.length){for(n=a.vakata.array_unique(n),o=0,p=n.length;p>o;o++)n[o]!==a.jstree.root&&k[n[o]]&&this.open_node(n[o],null,0)===!0&&this._data.search.opn.push(n[o]);g?(this._data.search.dom=this._data.search.dom.add(a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=a.vakata.array_unique(this._data.search.res.concat(m))):(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=m),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:c,res:this._data.search.res,show_only_matches:e})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(this._data.search.res,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=a()},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments),b&&-1!==a.inArray(b.id,this._data.search.res)){var g,h,i=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(i.className+=" jstree-search")}return b}},function(a){a.vakata.search=function(b,c,d){d=d||{},d=a.extend({},a.vakata.search.defaults,d),d.fuzzy!==!1&&(d.fuzzy=!0),b=d.caseSensitive?b:b.toLowerCase();var e=d.location,f=d.distance,g=d.threshold,h=b.length,i,j,k,l;return h>32&&(d.fuzzy=!1),d.fuzzy&&(i=1<c;c++)a[b.charAt(c)]=0;for(c=0;h>c;c++)a[b.charAt(c)]|=1<c;c++){o=0,p=q;while(p>o)k(c,e+p)<=m?o=p:q=p,p=Math.floor((q-o)/2+o);for(q=p,s=Math.max(1,e-p+1),t=Math.min(e+p,l)+h,u=new Array(t+2),u[t+1]=(1<=s;f--)if(v=j[a.charAt(f-1)],0===c?u[f]=(u[f+1]<<1|1)&v:u[f]=(u[f+1]<<1|1)&v|((r[f+1]|r[f])<<1|1)|r[f+1],u[f]&i&&(w=k(c,f-1),m>=w)){if(m=w,n=f-1,x.push(n),!(n>e))break;s=Math.max(1,2*e-n)}if(k(c+1,e)>m)break;r=u}return{isMatch:n>=0,score:w}},c===!0?{search:l}:l(c)},a.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(a),a.jstree.defaults.sort=function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},a.jstree.plugins.sort=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("model.jstree",a.proxy(function(a,b){this.sort(b.parent,!0)},this)).on("rename_node.jstree create_node.jstree",a.proxy(function(a,b){this.sort(b.parent||b.node.parent,!1),this.redraw_node(b.parent||b.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",a.proxy(function(a,b){this.sort(b.parent,!1),this.redraw_node(b.parent,!0)},this))},this.sort=function(b,c){var d,e;if(b=this.get_node(b),b&&b.children&&b.children.length&&(b.children.sort(a.proxy(this.settings.sort,this)),c))for(d=0,e=b.children_d.length;e>d;d++)this.sort(b.children_d[d],!1)}};var m=!1;a.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},a.jstree.plugins.state=function(b,c){this.bind=function(){c.bind.call(this);var b=a.proxy(function(){this.element.on(this.settings.state.events,a.proxy(function(){m&&clearTimeout(m),m=setTimeout(a.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",a.proxy(function(a,c){this.element.one("restore_state.jstree",b),this.restore_state()||b()},this))},this.save_state=function(){var b={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};a.vakata.storage.set(this.settings.state.key,JSON.stringify(b))},this.restore_state=function(){var b=a.vakata.storage.get(this.settings.state.key);if(b)try{b=JSON.parse(b)}catch(c){return!1}return b&&b.ttl&&b.sec&&+new Date-b.sec>b.ttl?!1:(b&&b.state&&(b=b.state),b&&a.isFunction(this.settings.state.filter)&&(b=this.settings.state.filter.call(this,b)),b?(this.element.one("set_state.jstree",function(c,d){d.instance.trigger("restore_state",{state:a.extend(!0,{},b)})}),this.set_state(b),!0):!1)},this.clear_state=function(){return a.vakata.storage.del(this.settings.state.key)}},function(a,b){a.vakata.storage={set:function(a,b){return window.localStorage.setItem(a,b)},get:function(a){return window.localStorage.getItem(a)},del:function(a){return window.localStorage.removeItem(a)}}}(a),a.jstree.defaults.types={"default":{}},a.jstree.defaults.types[a.jstree.root]={},a.jstree.plugins.types=function(c,d){this.init=function(c,e){var f,g;if(e&&e.types&&e.types["default"])for(f in e.types)if("default"!==f&&f!==a.jstree.root&&e.types.hasOwnProperty(f))for(g in e.types["default"])e.types["default"].hasOwnProperty(g)&&e.types[f][g]===b&&(e.types[f][g]=e.types["default"][g]);d.init.call(this,c,e),this._model.data[a.jstree.root].type=a.jstree.root},this.refresh=function(b,c){d.refresh.call(this,b,c),this._model.data[a.jstree.root].type=a.jstree.root},this.bind=function(){this.element.on("model.jstree",a.proxy(function(c,d){var e=this._model.data,f=d.nodes,g=this.settings.types,h,i,j="default",k;for(h=0,i=f.length;i>h;h++){if(j="default",e[f[h]].original&&e[f[h]].original.type&&g[e[f[h]].original.type]&&(j=e[f[h]].original.type),e[f[h]].data&&e[f[h]].data.jstree&&e[f[h]].data.jstree.type&&g[e[f[h]].data.jstree.type]&&(j=e[f[h]].data.jstree.type),e[f[h]].type=j,e[f[h]].icon===!0&&g[j].icon!==b&&(e[f[h]].icon=g[j].icon),g[j].li_attr!==b&&"object"==typeof g[j].li_attr)for(k in g[j].li_attr)if(g[j].li_attr.hasOwnProperty(k)){if("id"===k)continue;e[f[h]].li_attr[k]===b?e[f[h]].li_attr[k]=g[j].li_attr[k]:"class"===k&&(e[f[h]].li_attr["class"]=g[j].li_attr["class"]+" "+e[f[h]].li_attr["class"])}if(g[j].a_attr!==b&&"object"==typeof g[j].a_attr)for(k in g[j].a_attr)if(g[j].a_attr.hasOwnProperty(k)){if("id"===k)continue;e[f[h]].a_attr[k]===b?e[f[h]].a_attr[k]=g[j].a_attr[k]:"href"===k&&"#"===e[f[h]].a_attr[k]?e[f[h]].a_attr.href=g[j].a_attr.href:"class"===k&&(e[f[h]].a_attr["class"]=g[j].a_attr["class"]+" "+e[f[h]].a_attr["class"])}}e[a.jstree.root].type=a.jstree.root},this)),d.bind.call(this)},this.get_json=function(b,c,e){var f,g,h=this._model.data,i=c?a.extend(!0,{},c,{no_id:!1}):{},j=d.get_json.call(this,b,i,e);if(j===!1)return!1;if(a.isArray(j))for(f=0,g=j.length;g>f;f++)j[f].type=j[f].id&&h[j[f].id]&&h[j[f].id].type?h[j[f].id].type:"default",c&&c.no_id&&(delete j[f].id,j[f].li_attr&&j[f].li_attr.id&&delete j[f].li_attr.id,j[f].a_attr&&j[f].a_attr.id&&delete j[f].a_attr.id);else j.type=j.id&&h[j.id]&&h[j.id].type?h[j.id].type:"default",c&&c.no_id&&(j=this._delete_ids(j));return j},this._delete_ids=function(b){if(a.isArray(b)){for(var c=0,d=b.length;d>c;c++)b[c]=this._delete_ids(b[c]);return b}return delete b.id,b.li_attr&&b.li_attr.id&&delete b.li_attr.id,b.a_attr&&b.a_attr.id&&delete b.a_attr.id,b.children&&a.isArray(b.children)&&(b.children=this._delete_ids(b.children)),b},this.check=function(c,e,f,g,h){if(d.check.call(this,c,e,f,g,h)===!1)return!1;e=e&&e.id?e:this.get_node(e),f=f&&f.id?f:this.get_node(f);var i=e&&e.id?h&&h.origin?h.origin:a.jstree.reference(e.id):null,j,k,l,m;switch(i=i&&i._model&&i._model.data?i._model.data:null,c){case"create_node":case"move_node":case"copy_node":if("move_node"!==c||-1===a.inArray(e.id,f.children)){if(j=this.get_rules(f),j.max_children!==b&&-1!==j.max_children&&j.max_children===f.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(j.valid_children!==b&&-1!==j.valid_children&&-1===a.inArray(e.type||"default",j.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(i&&e.children_d&&e.parents){for(k=0,l=0,m=e.children_d.length;m>l;l++)k=Math.max(k,i[e.children_d[l]].parents.length);k=k-e.parents.length+1}(0>=k||k===b)&&(k=1);do{if(j.max_depth!==b&&-1!==j.max_depth&&j.max_depthg;g++)this.set_type(c[g],d);return!0}if(f=this.settings.types,c=this.get_node(c),!f[d]||!c)return!1;if(l=this.get_node(c,!0),l&&l.length&&(m=l.children(".jstree-anchor")),i=c.type,j=this.get_icon(c),c.type=d,(j===!0||!f[i]||f[i].icon!==b&&j===f[i].icon)&&this.set_icon(c,f[d].icon!==b?f[d].icon:!0),f[i]&&f[i].li_attr!==b&&"object"==typeof f[i].li_attr)for(k in f[i].li_attr)if(f[i].li_attr.hasOwnProperty(k)){if("id"===k)continue;"class"===k?(e[c.id].li_attr["class"]=(e[c.id].li_attr["class"]||"").replace(f[i].li_attr[k],""),l&&l.removeClass(f[i].li_attr[k])):e[c.id].li_attr[k]===f[i].li_attr[k]&&(e[c.id].li_attr[k]=null,l&&l.removeAttr(k))}if(f[i]&&f[i].a_attr!==b&&"object"==typeof f[i].a_attr)for(k in f[i].a_attr)if(f[i].a_attr.hasOwnProperty(k)){if("id"===k)continue;"class"===k?(e[c.id].a_attr["class"]=(e[c.id].a_attr["class"]||"").replace(f[i].a_attr[k],""),m&&m.removeClass(f[i].a_attr[k])):e[c.id].a_attr[k]===f[i].a_attr[k]&&("href"===k?(e[c.id].a_attr[k]="#",m&&m.attr("href","#")):(delete e[c.id].a_attr[k],m&&m.removeAttr(k)))}if(f[d].li_attr!==b&&"object"==typeof f[d].li_attr)for(k in f[d].li_attr)if(f[d].li_attr.hasOwnProperty(k)){if("id"===k)continue;e[c.id].li_attr[k]===b?(e[c.id].li_attr[k]=f[d].li_attr[k],l&&("class"===k?l.addClass(f[d].li_attr[k]):l.attr(k,f[d].li_attr[k]))):"class"===k&&(e[c.id].li_attr["class"]=f[d].li_attr[k]+" "+e[c.id].li_attr["class"],l&&l.addClass(f[d].li_attr[k]))}if(f[d].a_attr!==b&&"object"==typeof f[d].a_attr)for(k in f[d].a_attr)if(f[d].a_attr.hasOwnProperty(k)){if("id"===k)continue;e[c.id].a_attr[k]===b?(e[c.id].a_attr[k]=f[d].a_attr[k],m&&("class"===k?m.addClass(f[d].a_attr[k]):m.attr(k,f[d].a_attr[k]))):"href"===k&&"#"===e[c.id].a_attr[k]?(e[c.id].a_attr.href=f[d].a_attr.href,m&&m.attr("href",f[d].a_attr.href)):"class"===k&&(e[c.id].a_attr["class"]=f[d].a_attr["class"]+" "+e[c.id].a_attr["class"],m&&m.addClass(f[d].a_attr[k]))}return!0}},a.jstree.defaults.unique={case_sensitive:!1,duplicate:function(a,b){return a+" ("+b+")"}},a.jstree.plugins.unique=function(c,d){this.check=function(b,c,e,f,g){if(d.check.call(this,b,c,e,f,g)===!1)return!1; +if(c=c&&c.id?c:this.get_node(c),e=e&&e.id?e:this.get_node(e),!e||!e.children)return!0;var h="rename_node"===b?f:c.text,i=[],j=this.settings.unique.case_sensitive,k=this._model.data,l,m;for(l=0,m=e.children.length;m>l;l++)i.push(j?k[e.children[l]].text:k[e.children[l]].text.toLowerCase());switch(j||(h=h.toLowerCase()),b){case"delete_node":return!0;case"rename_node":return l=-1===a.inArray(h,i)||c.text&&c.text[j?"toString":"toLowerCase"]()===h,l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"create_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"copy_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"move_node":return l=c.parent===e.id&&(!g||!g.is_multi)||-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l}return!0},this.create_node=function(c,e,f,g,h){if(!e||e.text===b){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return d.create_node.call(this,c,e,f,g,h);if(f=f===b?"last":f,!f.toString().match(/^(before|after)$/)&&!h&&!this.is_loaded(c))return d.create_node.call(this,c,e,f,g,h);e||(e={});var i,j,k,l,m,n=this._model.data,o=this.settings.unique.case_sensitive,p=this.settings.unique.duplicate;for(j=i=this.get_string("New node"),k=[],l=0,m=c.children.length;m>l;l++)k.push(o?n[c.children[l]].text:n[c.children[l]].text.toLowerCase());l=1;while(-1!==a.inArray(o?j:j.toLowerCase(),k))j=p.call(this,i,++l).toString();e.text=j}return d.create_node.call(this,c,e,f,g,h)}};var n=i.createElement("DIV");if(n.setAttribute("unselectable","on"),n.setAttribute("role","presentation"),n.className="jstree-wholerow",n.innerHTML=" ",a.jstree.plugins.wholerow=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("ready.jstree set_state.jstree",a.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",a.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var c=!1,d,e;for(d=0,e=b.selected.length;e>d;d++)c=this.get_node(b.selected[d],!0),c&&c.length&&c.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",a.proxy(function(a,b){this.get_node(b.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",a.proxy(function(a,b){"hover_node"===a.type&&this.is_disabled(b.node)||this.get_node(b.node,!0).children(".jstree-wholerow")["hover_node"===a.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",a.proxy(function(b){if(this._data.contextmenu){b.preventDefault();var c=a.Event("contextmenu",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey,pageX:b.pageX,pageY:b.pageY});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c)}},this)).on("click.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("dblclick.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("dblclick",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",a.proxy(function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",a.proxy(function(a){return a.stopImmediatePropagation(),this.is_disabled(a.currentTarget)||this.hover_node(a.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),c.teardown.call(this)},this.redraw_node=function(b,d,e,f){if(b=c.redraw_node.apply(this,arguments)){var g=n.cloneNode(!0);-1!==a.inArray(b.id,this._data.core.selected)&&(g.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===b.id&&(g.className+=" jstree-wholerow-hovered"),b.insertBefore(g,b.childNodes[0])}return b}},i.registerElement&&Object&&Object.create){var o=Object.create(HTMLElement.prototype);o.createdCallback=function(){var b={core:{},plugins:[]},c;for(c in a.jstree.plugins)a.jstree.plugins.hasOwnProperty(c)&&this.attributes[c]&&(b.plugins.push(c),this.getAttribute(c)&&JSON.parse(this.getAttribute(c))&&(b[c]=JSON.parse(this.getAttribute(c))));for(c in a.jstree.defaults.core)a.jstree.defaults.core.hasOwnProperty(c)&&this.attributes[c]&&(b.core[c]=JSON.parse(this.getAttribute(c))||this.getAttribute(c));a(this).jstree(b)};try{i.registerElement("vakata-jstree",{prototype:o})}catch(p){}}}}); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..d6fd72114f8205ace7579894ec50cc37739b1471 GIT binary patch literal 1562 zcmZ8heKga182_1NL)y?Sx!97DWU52*G8;`HFB3{gC^fx#KelDfGF0oNTV6Y2ZdXn( zW?q&;2$$7yGo_jk?dL78m$BH`?oapJf9~_g^E}_rdCuo~&i8zt=LXs5u#T3Y761S` z9`2;00H8*M@^GX&H~F9M=;#m#1Z8Dq5Z>6> z$mjF#-n~0GIQa47M*@KWf$i<>91aJI#ZoAgjEs!d)>f5DH9kIGP*5;GKd(?ICMG77 zO6APVj7%n*nwnZ#T3T3GSX^A}>+6GfKoAs(L}IbHv$Inu6lP^*QK{7Q%Q;&hYLmpH zKK_8EZ-l{ijlJvfy6TRlf7~;9DPVu?BhfnV*dK~6$QQ=l0)TZW50Xm&^~-c2Cs^XJ zG2LRnx7N-)T||;kWH254-Gre^cGMJXz zIbn5~l}bdTk#HD`I8|A;99ehHfebTtaNb7o zGG3K;76(qcr3!~V^z!nRWo5aU&-H`AEDPT1G+30PS2S8u73QQ}EU)%_Ff^AV5?k+1 zM3Q=9yvY~Cu9z1rB_q)cA94?xD+WqIPvh>Y8jTwk4}SYJ7x;XDhSF61*rcj;P;F3? zbajJrz<1dK)~3=%Pol3!i&})y(x5z|zRCoajmUH&{JC+)Al#Bw6USa2^+xu{>`<{g zZZj?y70(;=YP0^@W~My$HkHU=N`a0Rxu=|Co@%A%{y4<3F|mV|yI(&@SvJpn`gpT) z_K5>-7wk&=XZjzOO-tYaC5tql=~NO7^5aWhm>& z!4?-=;8r!;7Ub&*w-E2Xfb`NE9F6<}appJs<#6A7k^%`KZWa^Yl*@~Qp%q;UGKbjq zZ1mjlEW1>2d3+(XqXhf6Z60<{k178{uvivcKZB&TzDojSp_`?u7tA*T!p(<3C~8F@ zA6v1*i_$dccr+Y-jYz~Ik#NQwj$Su)a{Zc2*4}E6S}NYsnL{GYny;7xiLmk?2-%|y zJ6v5uS+{2phdBUVf{;Vu{;E@XO6L&ebA|d9Fy@o!cv|$8YgYBw8)}!Dz9T3-7_mO9 z#hGHn-I^xp`ZOjZ|t$Dy3Z|I!w0K2DLvO(#^PglepW~D z%&$Y&;~KOuKfeGA?F|g(g2keH+{T#iQ!1HV{WqGwpV{ljSYKjSAe?+r(Eu_i}J)&5spU+}>Ib+a~+cBQ~@br7nUmR?V}= z%^6Mofa6H*FYNwfUj?QK9`DXKjZ08) zosVpzCY<*Tv8StD?y@1m2E6M)zqV>a<)h&U<8y`5lMOwdXhihh^bg^waQeGlk+;$( z>kXAxpC$Xn_nYZvYWn~ zCkqiYlbw2Jl2$xi$2{Vju$1jrDY^!gky_Q1d`sO*G1W}xe!WufFfQOq8 JiRT)A?H?ng_znO7 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc88e41e66508e4657b3ec6e5ec185a6084b7a9 GIT binary patch literal 5717 zcmZu#cU)7;wx*+i1Ocf67MfH61(BvGa3J&+IuTH+(xjJAM5L-9Rf@Eu5FpeLN+{Bi zVvrVkk90x_O_H}g_uc!>J-;`9Oun`D%v#^K_RQY16Qi%IafyzLj*N`#lI9+1u4IyyQdBO?Il>FL2>u$7e+YinyDJ_G_WFfed%Z~!jdzI_|$ zLqbA=f`WW}d|tkM>F4Jc5D;KxWo2n;X<=buZf7?;Cre99XJ=;shohsT z{r!Ccfv~l;wX?Icv9YnXwzjaaFgG_hGcz+eImyn>zPh>!BwAct1p0)81Wry)Kw5r& zK49|m^8>_+i;DpacmQtP+}wctjEoE-kqD$1A0IzHK5lDktFEpF2mmpGIEROa03RSD z8jb$>^CysNaBy&UcXwc5U}9pTr>6&?2aw#{-2D3W>+EK+E>_ z_WJsIdwV+qffyMX>F@7vZf-6qDFIZEj*eDURrU4t0j2o%?HdMz85Y!|}F8K7j8 z9Ia$Dw|~RbOjK}y-G^3|A=~=BUmZWggmOrkre}Ax7s<)Sn=xU^B?YC{ zpqcD%(>-pt$Ek_&lo|>f+pWgzE;4~>;3F1g76QRJ!jd$2B?cRb(SZHOfwhyOX-}!g zbv8@(S7Qi$3@c?Y9 zww#^~f~q1v=&_DT9RzOjZlRO@#T#ssYAgD{Zl;jiZjh7T-!s(dF4Q4NDpdTgOK_Hx zWHZm({n%@gNb7G8@r(EUTbFqngVo^Ko27g$F+*_+yB=OootUYch z)zVy3bMKLS&>ID&W~t|Nliu=Rw3mF)_d6kxUtGZ=KK*uwY+oGUUn0g`Vq%m=J#RAg z*Y6v+qVog%BsfqHM`{I9Ecko`A9**Z4@4ymezE!0TgojM^fmJ^Xk%r_g2ng8rTlX7 z;t~0lhjnIJxu3Ms*nDVUx_xVXX|5mR-q>IY?4zA*ce6JSOtEx_3 zTuVC)KnyW~Mnzxj2JD}v#WWxb4K+mJjT$)_oI{vx7lD#g|K5e7{CfQiQTK7UBIH(j zoaAMn=bA->yb6gqn_EiqURNE90$lCl#y?Gor3{aXq{#ZvAXWsJ%f&Grvs=}lX=(L_ zkZ42nUC(@vCYPznnc}hS)aQq&`A|)wE103uQ%XiA+5C>yk!j~#ykOmP$BZ6>+8Y_! zEZLREI`s%~pIAAbL>;l&%!#X#Tc6%WeICuk_GG;(?cA{uyb#~hlZ%-w>@KvW*kR_DlL4i* zpkSo9mFNte9i4pTnm~P)p_X;g?Cm)iVUtL7?mZGQumz);jgT2D8gEk_-A3T;Fe9)@ z@aTLxb}rYGqdf8JbFhzRV5o9Jw*p5Uug#&U$Sl0TYvYMd)_@I9_D3*$QErx_XewG` zhsHCD`tKX?Z+r2-AgUW0&whuNB3=gX!qjTUf-t5NDD#-by}lHG7q8_K{DAMbv#^Wy zfIMCfuXSBq`4b4L9RnHg+dgV&n=|rFIrbwcmD*qyV=Qx>s7HnB1eeL}wVFzZGZhug z+^R1@)sRB7eV@E}gsTI2bs4ABVz_yGDdm;xIjBSNqEDx(+B*xg(X8_ln|v09ah@>o z7*%CJaI31$aznN|7Ew;Fav(xwXYKB%~ZzZTIgIQz>J z!pb(sLq(OtYU~gOn|xmyHC!Wj5;3H?VmGjM<4JOJVp7G=hi1YTU85YelU51L_E`G9 z6pIFNQZyUgSG!fH&OYet@U*TDtv0>lH`a9B-b<+*kwx`e($t5(IYppMtGbn0{5!UY zq5zevViwbi-wYXE&!q*78`@E&u7(&%J-NFt=9=#mXgeE8TTE`235s}8{iCNk>zUs! zr8x*B&~59iTw$60A>7eG7jCV7J8@TZAX;8U%WBCyuTbSE&kZVufnNb9mO%qj*&6L%ftfe&yL)E@u&uVQbE4j&?bzNVJ zJcy(0!8$z%Jsi9_{+uVke+-j4NUGExPi?lWd95qWozNpXgkcQCtGx<#R`!(`RLNd3 z*Tb=ASA~0<&y?eyDB)cQ&Ko>r;+v5AB=pQvZw*`6hKs)=T?Vl5ut+C2AF9O$MAnKkmkj%!E>PQWc|5!m}b)WS~bE*fwjq~;^ z>2ILW!D?PHM^!(EX?*KD|Dt-M3|mVQUrueatZn^GTzSz!hv-0dgicS;gemIgMqA`E zU=Q_Q?_OgVy6^Lo^JM3IoqrD1CPYYy8*6L-&_Qxumg9!R1m#ui^Uxz*I?%<_V@SraB4Pdi$NjyJsw=AP48mRIew2@ zh!0_mM=J-M#3$!M^3CYXu6Ilkzq4Tw1+05vCQDoHe-J{bULSou{5pd$*g6q0Z;g!; z{@SE^ddq=aRMHnCNNj=@*Qr6rxP)42@L`fC2Ze zidu+unxzw#Meb^isxCbFa}CK}mQ0pQUUkT_59Ef&7>;t>I!%U;EJQ&)u1^#4p%r$w zKe1xc4CW^-&_(7Cl8QH~qa%oynexx!>WS8~bD!tkPv4 zYc9fz8wV+vU9L9tzW>3^XO_%+Fm^k=s*5%KG;c(F=4wmmL|cg`{7H~cb&`^M*lHhP z9og20E96FmV*3Q=fUEX>O;0eshJpR}hk3q&228-2FgOWd1O)&g&Q zK}Vj~uAB>H=zM<1t+-2QXH>s=M?(D>sKx)lE#zEAy$qoebkMor=714)2u7Vfp&cLV zRqO*>!gg112OaRCmf(s+=8@H?a?o#D@SVnY;(HFHT`8Hpb^HP``HeXL@%igUK3|VR zb!m4eA33k}JRzF^-J6Z@>xehpy&gyHjOBA8Kh-oFfCs>bw2do4@N3(@OI6_Oy#~GV zkAvjj_wWB5FaPqcmh#T#Ke&dfJArhB2W7+5xKOwg$gA+6T$mag3UmT_9Dep5rpAnt zJc00spC!T6m{2Mw5UTLAWB{h89(Gi^#@r;uUcIf;p5dIw@BXnX>2uNiX{ljSosRuQ z34^N0lzS2CWdAwXilS1U7j4E4ucu30o%cniB(W8$(T^A|_O#r%Fg=JYA@zt&GHCwJ zz>PJ%wXBuL$IhYl@wyZ#*7lHcx(Au5UhaHQkZn-IIlPCsV9}o7Cd$fF#PEr4CO&`Q zUFvUs@1IBI=X{|5sUcI~BvZIzdztFRvTfe-&8JM~J=!x5@*uUGN&AQk6molr&7LB? zV|vyCIwBQam*J!U&h|Z3InLJHMO50=AtC`gSyK1MV9O2K>HZc~j7BVVkn)Cuv8=o8 zgU|kZK#U%8xqZa1(PaO&8>b%mkbI8PoQ{3)|4zssRL}uy0>*{uo)!^ylwJpW-@o%- zUEv=uN_D_qmnX$u^H3m_T$R%|PBLJ9`X&Ouel^ykb7D3_zOg z5aJc*`5c_>W!h~Y;+63EN`uDwmlbsX{$TjWeWp}-@DESbfqgx5;)&|LCs4JaM`9N! zMa@YRpw>qqQ){CHHnY6*<*^RoaLh97bc$V_PO}&%O&tY~po-~dR3$G=Km?%0yx9VD?q?qS>#}Fi6SE|*d4(1pJaD>03Vce{ z`o+d+q@#nrosqcA9dCHvT@guI$c4Q(C7tZJGb*5}iJ={>$t}0-=5rZ1{rB>@q;G?h zOf^c!b}q4}3uwl1!tWkVwNvMKMH$$!IZ}TupL>5nP*4xf=u6EO5x7k!K}CGP#o?z( zt=GLNPw%&~S*gM$;qkz|SEF9k9YY%P2xs>SsLpNdKbhuZWWSf*!xb|9v|ljP8`bLT z+Qx*Fc+_?()J`pNn%sSVn@->yrf3C?ld3`YSx;SG$^~XTO!>jMt(8`+!Y$!ZQ`Mj_ zWZei)nd6YC2pCMo&X>n;9Un#0Z_dr)6_+K31_?Wi>=X4|8P-eX*q-%V5If3a(LAW% z`Yh+bmVrHeGVs_xyOCGr<*yZw@JkA`L&~^vM_PpzS*v-iXD8oCE9H`DGO)W2uE%a$ z)ug4;To}?<*1>fmK-&BGO(Ub@Fig%tf!A{i!{En*U4+RPL)B#C_M+-VU-UoIjKyzu zURr!5^to*g^pD;CukXsgFAC6&<4$F9neX%OE!ztiLp?`Y)Bd12vZEK|3cmQ)vZAFd zH8gg&X1;$f(MqYyLAp(()-;YdFb0lDvpb8n$w-c&f}lJwB)9qFjqlRZEk5Dg1(JCtcYk$9T-Giz@FJG0{BR-!pHgLv~JNUZ!E& zcxvqtoQ39m2*ubC)Z{bYQ>MX!d}oWC$zM$kcV26X?OY5STPR=8AHsp{{X1OD_3$+s zqa3tHN0=fhF}tqD&pXf*uA*OMpHxZkgu=Ud<^!De_K1typ<71kaEnGg&Y&g4A!n%} zLQJQ~Py!-yx3(q%dU&zi^sZnWcb3+`&(WXVX6+#~1()+Kw0e-4_;X!S57AK?&HA1- z!8`97(Wr+Bti7*`={%=~XuM*^ufO+i#!5}mWpO#c$?)DN@2n*KRu0{d%t|Ed zq|uFI3y~`?1Qu7kd_$NPw(1G5KJ}_`Pg_!;C5$RYORrRpV-CuiBjEN`1&@IO0Ae(fMRCc#>x|s=hOuT)CU*ga~q{8;~R$sB(9d@vWtx|c=CP9 zhuJy=U!2R%m|lFB%1=p-1kqJlg%Hh0jshXNz!5@`H`vl`j$iF0m^H=0`P?_R&B@`k zDLIyJNNVGruKfOK;?i85ny*qKq*wFN*^%#lb0lU0I3F0#S`~JF6@QWX$QU^h&_sGf zRN7iK)f?HIn3v%SdA&sV!1NS3K1r(Bf!?_vC)1pblt*T+R20=M>4L{k5_WdCIqq<0 z^1ugFqc)HIkxcn|GU<_{LdUwKHmBf=xe{oF+?WwjnU;@ZC(JWA?_);YJU^q4iPhS0 z&MRd(wef~!j=fp(vbXANu7fyY3SM{4^t}GeHn50&vnj!qFNQ;erbwdF5g!J1mHM9@ zIO4N%QbbPjBVc-^&^v72Kl!C)8vQ&xD&!PcerW#9LNhQk9`_*(6#Ld#&LpT<9(Hllink$rZDeO-*5fT1{{lZa^Nit(%~4htdAMk z_OrL!e1p$qvo~?}Es_;8dk|odSaORb3r9kc{-jwWX_GjqUfk+QJmGn=rF%3+(9IZV z5Nf%}&XLfWM%d)b?^od)KOy+Nsug`ID=lD)<00coUZEWCV#dDta1U+2Ll>Of|9nus zaR(384TUJ*=88M=Kb!a#qO@WizSaLsX3APIzSk=PV^)RTlplYa!!n(Ct}K4Kj9aEE z5M?6y+nA+)Z^PHK=-GH2&VAr&r(HEVr)nW)r3Z$1v<+{lk .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default-dark .jstree-anchor, +.jstree-default-dark .jstree-animated, +.jstree-default-dark .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default-dark .jstree-hovered { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-context { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-clicked { + background: #5fa2db; + border-radius: 2px; + box-shadow: inset 0 0 1px #666666; +} +.jstree-default-dark .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default-dark .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #333333; +} +.jstree-default-dark .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark .jstree-search { + font-style: italic; + color: #ffffff; + font-weight: bold; +} +.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #555555; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default-dark > .jstree-wholerow-ul .jstree-hovered, +.jstree-default-dark > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default-dark .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default-dark .jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark .jstree-wholerow-clicked { + background: #5fa2db; + background: -webkit-linear-gradient(top, #5fa2db 0%, #5fa2db 100%); + background: linear-gradient(to bottom, #5fa2db 0%, #5fa2db 100%); +} +.jstree-default-dark .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default-dark .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default-dark .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default-dark .jstree-wholerow { + height: 24px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default-dark .jstree-last { + background: transparent; +} +.jstree-default-dark .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default-dark .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default-dark .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default-dark .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-node, +.jstree-default-dark > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default-dark .jstree-disabled { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default-dark .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default-dark .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark > .jstree-striped { + background-size: auto 48px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default-dark .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default-dark .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default-dark > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark .jstree-ok, +#jstree-dnd.jstree-default-dark .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default-dark .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default-dark .jstree-er { + background-position: -36px -68px; +} +.jstree-default-dark .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-dark-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-dark-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-dark-small .jstree-wholerow { + height: 18px; +} +.jstree-default-dark-small .jstree-node, +.jstree-default-dark-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-dark-small .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-dark-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-dark-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-dark-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-node, +.jstree-default-dark-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-dark-small .jstree-disabled { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-dark-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-dark-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-dark-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-dark-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-dark-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok, +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-dark-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-dark-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-dark-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-dark-large .jstree-wholerow { + height: 32px; +} +.jstree-default-dark-large .jstree-node, +.jstree-default-dark-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-dark-large .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-dark-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-dark-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-dark-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-node, +.jstree-default-dark-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-dark-large .jstree-disabled { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-dark-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-dark-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-dark-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-dark-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-dark-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok, +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-dark-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-dark-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-dark-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-dark-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-dark-responsive .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-dark-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-dark-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-dark-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-dark-responsive .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-dark-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-dark-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-dark-responsive .jstree-wholerow { + border-top: 1px solid #666666; + border-bottom: 1px solid #000000; + background: #333333; + height: 40px; + } + .jstree-default-dark-responsive .jstree-wholerow-hovered { + background: #555555; + } + .jstree-default-dark-responsive .jstree-wholerow-clicked { + background: #5fa2db; + } + .jstree-default-dark-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #111111; + } + .jstree-default-dark-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #111111; + border-top: 0; + } + .jstree-default-dark-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-node > .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-dark-responsive .jstree-last { + background: transparent; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-dark-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-dark-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-dark-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} +.jstree-default-dark { + background: #333; +} +.jstree-default-dark .jstree-anchor { + color: #999; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5); +} +.jstree-default-dark .jstree-clicked, +.jstree-default-dark .jstree-checked { + color: white; +} +.jstree-default-dark .jstree-hovered { + color: white; +} +#jstree-marker.jstree-default-dark { + border-left-color: #999; + background: transparent; +} +.jstree-default-dark .jstree-anchor > .jstree-icon { + opacity: 0.75; +} +.jstree-default-dark .jstree-clicked > .jstree-icon, +.jstree-default-dark .jstree-hovered > .jstree-icon, +.jstree-default-dark .jstree-checked > .jstree-icon { + opacity: 1; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css new file mode 100644 index 0000000000..d9084d403c --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css @@ -0,0 +1 @@ +.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default-dark .jstree-anchor,.jstree-default-dark .jstree-animated,.jstree-default-dark .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default-dark .jstree-hovered{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-context{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-clicked{background:#5fa2db;border-radius:2px;box-shadow:inset 0 0 1px #666}.jstree-default-dark .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default-dark .jstree-disabled{background:0 0;color:#666}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#333}.jstree-default-dark .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark .jstree-search{font-style:italic;color:#fff;font-weight:700}.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#555}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#555}.jstree-default-dark>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default-dark>.jstree-wholerow-ul .jstree-hovered,.jstree-default-dark>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default-dark .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default-dark .jstree-wholerow-hovered{background:#555}.jstree-default-dark .jstree-wholerow-clicked{background:#5fa2db;background:-webkit-linear-gradient(top,#5fa2db 0,#5fa2db 100%);background:linear-gradient(to bottom,#5fa2db 0,#5fa2db 100%)}.jstree-default-dark .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default-dark .jstree-anchor{line-height:24px;height:24px}.jstree-default-dark .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default-dark .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default-dark.jstree-rtl .jstree-node{margin-right:24px}.jstree-default-dark .jstree-wholerow{height:24px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-image:url(32px.png)}.jstree-default-dark .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default-dark .jstree-last{background:0 0}.jstree-default-dark .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default-dark .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default-dark .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default-dark .jstree-themeicon{background-position:-260px -4px}.jstree-default-dark>.jstree-no-dots .jstree-node,.jstree-default-dark>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default-dark>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default-dark .jstree-disabled{background:0 0}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark .jstree-checkbox{background-position:-164px -4px}.jstree-default-dark .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default-dark .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default-dark .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default-dark .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark>.jstree-striped{background-size:auto 48px}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default-dark.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default-dark.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default-dark .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default-dark .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default-dark>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default-dark .jstree-ok,#jstree-dnd.jstree-default-dark .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default-dark .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default-dark .jstree-er{background-position:-36px -68px}.jstree-default-dark .jstree-ellipsis{overflow:hidden}.jstree-default-dark .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-dark-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-dark-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-dark-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-dark-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-dark-small .jstree-wholerow{height:18px}.jstree-default-dark-small .jstree-node,.jstree-default-dark-small .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-dark-small .jstree-last{background:0 0}.jstree-default-dark-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-dark-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-dark-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-dark-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-node,.jstree-default-dark-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-dark-small .jstree-disabled{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-dark-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-dark-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-small>.jstree-striped{background-size:auto 36px}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-dark-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-dark-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-dark-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-dark-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-dark-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-dark-small .jstree-ok,#jstree-dnd.jstree-default-dark-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-dark-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-dark-small .jstree-er{background-position:-39px -71px}.jstree-default-dark-small .jstree-ellipsis{overflow:hidden}.jstree-default-dark-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-dark-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-dark-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-dark-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-dark-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-dark-large .jstree-wholerow{height:32px}.jstree-default-dark-large .jstree-node,.jstree-default-dark-large .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-dark-large .jstree-last{background:0 0}.jstree-default-dark-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-dark-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-dark-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-dark-large .jstree-themeicon{background-position:-256px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-node,.jstree-default-dark-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-dark-large .jstree-disabled{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-large .jstree-checkbox{background-position:-160px 0}.jstree-default-dark-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-dark-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-large>.jstree-striped{background-size:auto 64px}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-dark-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-dark-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-dark-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-dark-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-dark-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-dark-large .jstree-ok,#jstree-dnd.jstree-default-dark-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-dark-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-dark-large .jstree-er{background-position:-32px -64px}.jstree-default-dark-large .jstree-ellipsis{overflow:hidden}.jstree-default-dark-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-dark-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-dark-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-dark-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-dark-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-dark-responsive .jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl,.jstree-default-dark-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-dark-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-dark-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-dark-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-dark-responsive .jstree-checkbox,.jstree-default-dark-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-dark-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-dark-responsive>.jstree-striped{background:0 0}.jstree-default-dark-responsive .jstree-wholerow{border-top:1px solid #666;border-bottom:1px solid #000;background:#333;height:40px}.jstree-default-dark-responsive .jstree-wholerow-hovered{background:#555}.jstree-default-dark-responsive .jstree-wholerow-clicked{background:#5fa2db}.jstree-default-dark-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #111}.jstree-default-dark-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #111;border-top:0}.jstree-default-dark-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-node>.jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-dark-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-dark-responsive .jstree-last{background:0 0}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-dark-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-dark-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.jstree-default-dark{background:#333}.jstree-default-dark .jstree-anchor{color:#999;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.jstree-default-dark .jstree-clicked,.jstree-default-dark .jstree-checked{color:#fff}.jstree-default-dark .jstree-hovered{color:#fff}#jstree-marker.jstree-default-dark{border-left-color:#999;background:0 0}.jstree-default-dark .jstree-anchor>.jstree-icon{opacity:.75}.jstree-default-dark .jstree-clicked>.jstree-icon,.jstree-default-dark .jstree-hovered>.jstree-icon,.jstree-default-dark .jstree-checked>.jstree-icon{opacity:1}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..cd75035ce8086b233c62c3775de4696007ba7950 GIT binary patch literal 1720 zcmZ|OYfMvT7zgm4p2O+ea@rnBg#%t_w^9y@rd%z;T+7W;EEIuRP@n~of>p{*LD94n zD#dD%>4eQ7(f}2w1Jp&gxD-%9@q$L8PU8@DI@}hSaq0)%%HqfF!~5+?{=fX6_gR&k zB#zeL6rA#kLJ1EKkB*MkYPAxH#A31N_4>ZPK7+x~*4Cy{sgz1(XJ@Bct?upZwb^Vn zH8uQyJW~@hGvcMn#IR)|7@|-p{15)|6-An=q7A%lB~@CUrc_g-E7NRPRY{9GBtGW2#F<6Tlp*{3e2sO*9QTn07T-ayS_ZHC-#O>$xhqqdcpZ ztmi!vPe)MeZRuUe$#kkQ=ZCx#&BIF_bl`&&kBftO#70Qh(%BzvH^%Q*V^7k&A({sT z%Y^lTu*avnIgG+U1|!SMokH(YXlu`0j~)X}p;*dbvgwiG8ou~G0H`U%D%A}cX`Z7O z)ni(eb`a})TPHM1hAVH$IJP)wYgYnn9eF%-V%K@toW*&nV8eM+!Cp9L>Vhol^Gh@~ z%&1Z5Vm+|c!un0R(q?jRP)d+nM1>1Mdbt4 zq+z&G4Mf-;dC=>aU>rU4#Qsu;p3RpG$pl+_MhkB8a)~L$l9^5fWiX2+H!!5_T5s^9 z4>JK<{X^Fo%S_uDF%5Ow6`@;%!WN<1E;i0BB-n*W1?E{l7sBj|dY;=Uk(#XoO1L_N z@qGP~b}*65jDQozoGo?S4(63|3?uFyzC7?Gm+`Y=Q}V!~eW9^>IiUQTB_L<1=H*gdQy5&m_IYV z%Li4Uo_>Bi7os#uY}WcRfHHEkH&b8~%gsue?-o<(!aOHjm`s4Z3LOy|RiA_cGTpV7aX)L(k3WdLrb3z#~FKmqZa8IsfA0m#1pKiYPj1TEN53e>tkg z0RTNlJq#uQVrLpQqdM5r6JnuD=hIQXX(5PA4}{kHxmV1!p*>qQvt#tEygNOAs@+Oz zdfw4ZMdhbk+u}+OPG5|*-o?V{NXcn0HBbAn)h^Y1-B04pOzSBDfelR>`teLE(^ROI zh&b$euUUs^kZN*1k{J%gadZHxgJ?{nH{AjOmJrF77iSdv|L<1j9OLgC{;#V|RJlr& zcSW6j{0-Aeuhh1H@4Gt=_&ggRSH>Bn1;_M62O`)zlyTGNWU^sE&gnQmJ~HG$aPw$; zKX(DOIsRy?o{m{z>42;$0!CTTcF2R3?au%K2(p-Mna`zCH@bI}ee7d=$K>rPkFF?8 zv$nvf0d|7yp7!sKocJY+u zY6SVs9!-4A?3JGvc^gfN8$7Nen2o=3aWO!QO@le}aMdx8^`2yXn=H9`9ATLE&9>s? q)n(GDbX6ch9<^Oe2Q%ytegccF@POz|8L)A;FQ!??rHkeqG5-P<(jCG8 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..15327152481789306eadef88393cd1c748dc31a7 GIT binary patch literal 3121 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 q$a=%VWn+k|UtiDv&>%>!2^rk(D6aNK_^-%!; literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png new file mode 100644 index 0000000000000000000000000000000000000000..1959347aea041d75a58d0584ea7ec51714797983 GIT binary patch literal 1880 zcmZ`)doPK^x}L8xo#OE#OkB~$LGr;}=FbpxeWUvbGmLn1DXa;HsQK~D7_{^sq2 z^fni3chvJ5$YKUAlPB<%YYsGqZ3*PyX7OjPSmNI*c$WG!up*Jd*}3 zyaNUJH)Q(CkAGRYx9(QF6|av~uGv)1Y;;XvzcpOJ6RwjX&Aq_Aw}!?@ks55jzGfWq zHi2b^qzQ-8bl-&6a#)X#NWKfdin__%Ol?}CAS&@2z3m-#8{JmeH=J{JF%S+MQ5YWYP20_w8qRF6(+-b#Trf> zo_2Ahj>H8mS@~xq^k9LXSkqS5UA65dkI8zx!mlGSfKyE;s4Src2P4*>GKW637{uPZ zn41TS!b0I%aCMOGtR7_5i0R^u?Z1kp6{@2~AH^7slz&0Qj|5)78I0s6dlVU{)cQrP zeNGP#HlU^~-R%ecwQ5d4f89gT`1oM|(Ofc=m=oyYg2-k3n{hQ$7?G# z&FPF6FFv(B1kEI;9zR$1bF}BYcUcz6lkHP>F~*Z@^?L7Dwi265tsN>ESDZo%}%mSZ>gVZrQEHe#NWr4C*NSf*0NrTPY+o|6J6YC;=zHNu2 z8bz_U4ETk(5(4ZKzU=r-bX5C~YoQu69_!Kg_;tIz@|bcZeUDp?>LM|N ziJp5yVxnWe6Y7OqZ0sqz9>rV_e8%6p;7r{y(wfYhJK>k?%R9^#}q@xkWO6(y$(5^YBRpql1{)zuK zbrtwwtit>e;@%w>h7p&2<37Z3Q~Of2IoVshosA0BYcm}a31kTD@b5Y^cq1>Lz~v#* z=I3$&3b7mLgtwj%M~`+Qvt=#z{qJiwXm0kiXWM^#JaGk!bF6zb=stF+fn62*;^IMV z;8jniInrmfUG6KNlUC^lV!pmFFQ+Bb!%x?kA|oelOOeQZy&ZYzuw;)RIQ$l#&^K8* z0OFJoe{kr3Me>S$Wc!cxtzZ7K-m>EtO!YQ<*Jwhovtf3=v?o4fP-T|cmxOL~h!|$H iV&_@$q2+YC87j9T{b5} .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default .jstree-anchor, +.jstree-default .jstree-animated, +.jstree-default .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-clicked { + background: #beebff; + border-radius: 2px; + box-shadow: inset 0 0 1px #999999; +} +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; +} +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default > .jstree-wholerow-ul .jstree-hovered, +.jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); + background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); +} +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default .jstree-wholerow { + height: 24px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default .jstree-last { + background: transparent; +} +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default > .jstree-no-dots .jstree-node, +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default .jstree-disabled { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default > .jstree-striped { + background-size: auto 48px; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default .jstree-ok, +#jstree-dnd.jstree-default .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; +} +.jstree-default .jstree-ellipsis { + overflow: hidden; +} +.jstree-default .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-small .jstree-wholerow { + height: 18px; +} +.jstree-default-small .jstree-node, +.jstree-default-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-small .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-node, +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-small .jstree-disabled { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-small .jstree-ok, +#jstree-dnd.jstree-default-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-large .jstree-wholerow { + height: 32px; +} +.jstree-default-large .jstree-node, +.jstree-default-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-large .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-node, +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-large .jstree-disabled { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-large .jstree-ok, +#jstree-dnd.jstree-default-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-responsive .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-responsive .jstree-checkbox, + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; + } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; + } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; + } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #666666; + } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; + } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-node > .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-responsive .jstree-last { + background: transparent; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css new file mode 100644 index 0000000000..a76f15c094 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css @@ -0,0 +1 @@ +.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:0 0;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url(32px.png)}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:0 0}.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url(32px.png)}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:0 0}.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-ok,#jstree-dnd.jstree-default-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url(32px.png)}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:0 0}.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-ok,#jstree-dnd.jstree-default-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b5b2fde42f8ea14e6981339196a9d62b681d79e GIT binary patch literal 1720 zcmZ|OYfMvT7zgm4p2O+ea@rnBg#)OxTPX)YQxLES+gfgxVz~&+f}$;m6s%Hi3W%nq zP@z^qrV}=TNF%FL8K5q@MN>cp#S0pVI*qHSli{|&j8i`-D~lhy5AU}p`Tz2N-e*-( zqBu&8Q*g>F3T19?Zf0i2Y&JU_j>N>onwlC4g`!j{1p>jzlP51;yvXHpJ32ZL1c{7{ z)MzyPIro%=%#1i`T0+<|5ezw}`5%1a$_msK1)F#~iYhcbb+NiiTcX~ytZ3Wj5(@tv zLT5OqLY&VTiBl*@DK5jOqAQC<V}_H8&J8*d!6F|8^P+>r!@8gG==_FR|TOFO5N ztmi!uPli+Ln$x?H-gK%V=cf&)%tK3Ubl`;)j){YK#AZm_($yDbHN+iIVb4-MA(|Tn z%Y=0Su-m75IE?%N1|!SEl|tuKXsXZNj2Z=vp;+=jlJSZD2EODW0H`sM#)b0zgDU0)5!Grr5zO1 zNgN^!L7)EBFUC+Zhm%Mr7yC91@!CieHdPd#!o7Jn^!!TMrU0vgH)|h-!|2wozJKmj z`G&1Z^{+00Fi|SEx@=o?UTI)xo@>T@7i7MZAqTYCMc0JP{oZJEdWye2L~bM45otrq zk@}$q6%b*2<$_YGZVC^6PBqU&pG6rtOM!WN;+E;i3EB*=+K0j60WC&J{7x}V=Ak(w<1X>er- zV`_bHI~Y%5hQkS?_Lf?1C-Yh;suT(z!ZdS6NOH8>FGetNtnE-ngIxI9OKM9M!nq|ao z@ByV)WU%+EiuxlBZ=#rs_ZnY%+O^bXr2P8_g2l~7Z8221w?Uyx%!zc@?f!tWxz6{`xAWPUyeq1Vbvuj7m$3Dh(PTY04bw^_A zwRr|LuoC34N#A1;?zXdaId|wW$kzq2e~Uqdrq=@A0^DlGO4UM zzCO9@&t7@ohLX-t)ftJ| z)q;&?w?;l@^4Pc`;x3vPJ8(itFdKg3;$nap8V7O~;L775>pjUjnIyS=0%4f;&$i;^ q^<`2=x-x(uk2YUU2h;2jemskO_4rHker(f.js', 'src/<%= pkg.name %>.*.js', 'src/vakata-jstree.js'], + dest: 'dist/<%= pkg.name %>.js' + } + }, + copy: { + libs : { + files : [ + { expand: true, cwd : 'libs/', src: ['*'], dest: 'dist/libs/' } + ] + }, + docs : { + files : [ + { expand: true, cwd : 'dist/', src: ['**/*'], dest: 'docs/assets/dist/' } + ] + } + }, + uglify: { + options: { + banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> - (<%= _.pluck(pkg.licenses, "type").join(", ") %>) */\n', + preserveComments: false, + //sourceMap: "dist/jstree.min.map", + //sourceMappingURL: "jstree.min.map", + report: "min", + beautify: { + ascii_only: true + }, + compress: { + hoist_funs: false, + loops: false, + unused: false + } + }, + dist: { + src: ['<%= concat.dist.dest %>'], + dest: 'dist/<%= pkg.name %>.min.js' + } + }, + qunit: { + files: ['test/unit/**/*.html'] + }, + jshint: { + options: { + 'curly' : true, + 'eqeqeq' : true, + 'latedef' : true, + 'newcap' : true, + 'noarg' : true, + 'sub' : true, + 'undef' : true, + 'boss' : true, + 'eqnull' : true, + 'browser' : true, + 'trailing' : true, + 'globals' : { + 'console' : true, + 'jQuery' : true, + 'browser' : true, + 'XSLTProcessor' : true, + 'ActiveXObject' : true + } + }, + beforeconcat: ['src/<%= pkg.name %>.js', 'src/<%= pkg.name %>.*.js'], + afterconcat: ['dist/<%= pkg.name %>.js'] + }, + dox: { + files: { + src: ['src/*.js'], + dest: 'docs' + } + }, + amd : { + files: { + src: ['dist/jstree.js'], + dest: 'dist/jstree.js' + } + }, + less: { + production: { + options : { + cleancss : true, + compress : true + }, + files: { + "dist/themes/default/style.min.css" : "src/themes/default/style.less", + "dist/themes/default-dark/style.min.css" : "src/themes/default-dark/style.less" + } + }, + development: { + files: { + "src/themes/default/style.css" : "src/themes/default/style.less", + "dist/themes/default/style.css" : "src/themes/default/style.less", + "src/themes/default-dark/style.css" : "src/themes/default-dark/style.less", + "dist/themes/default-dark/style.css" : "src/themes/default-dark/style.less" + } + } + }, + watch: { + js : { + files: ['src/**/*.js'], + tasks: ['js'], + options : { + atBegin : true + } + }, + css : { + files: ['src/**/*.less','src/**/*.png','src/**/*.gif'], + tasks: ['css'], + options : { + atBegin : true + } + }, + }, + resemble: { + options: { + screenshotRoot: 'test/visual/screenshots/', + url: 'http://127.0.0.1/jstree/test/visual/', + gm: false + }, + desktop: { + options: { + width: 1280, + }, + src: ['desktop'], + dest: 'desktop', + }, + mobile: { + options: { + width: 360, + }, + src: ['mobile'], + dest: 'mobile' + } + }, + imagemin: { + dynamic: { + options: { // Target options + optimizationLevel: 7, + pngquant : true + }, + files: [{ + expand: true, // Enable dynamic expansion + cwd: 'src/themes/default/', // Src matches are relative to this path + src: ['**/*.{png,jpg,gif}'], // Actual patterns to match + dest: 'dist/themes/default/' // Destination path prefix + },{ + expand: true, // Enable dynamic expansion + cwd: 'src/themes/default-dark/', // Src matches are relative to this path + src: ['**/*.{png,jpg,gif}'], // Actual patterns to match + dest: 'dist/themes/default-dark/' // Destination path prefix + }] + } + }, + replace: { + files: { + src: ['dist/*.js', 'bower.json', 'component.json', 'jstree.jquery.json'], + overwrite: true, + replacements: [ + { + from: '{{VERSION}}', + to: "<%= pkg.version %>" + }, + { + from: /"version": "[^"]+"/g, + to: "\"version\": \"<%= pkg.version %>\"" + }, + ] + } + } + }); + + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-less'); + grunt.loadNpmTasks('grunt-contrib-qunit'); + grunt.loadNpmTasks('grunt-resemble-cli'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-imagemin'); + grunt.loadNpmTasks('grunt-text-replace'); + + grunt.registerMultiTask('amd', 'Clean up AMD', function () { + var s, d; + this.files.forEach(function (f) { + s = f.src; + d = f.dest; + }); + grunt.file.copy(s, d, { + process: function (contents) { + contents = contents.replace(/\s*if\(\$\.jstree\.plugins\.[a-z]+\)\s*\{\s*return;\s*\}/ig, ''); + contents = contents.replace(/\/\*globals[^\/]+\//ig, ''); + //contents = contents.replace(/\(function \(factory[\s\S]*?undefined/mig, '(function ($, undefined'); + //contents = contents.replace(/\}\)\);/g, '}(jQuery));'); + contents = contents.replace(/\(function \(factory[\s\S]*?undefined\s*\)[^\n]+/mig, ''); + contents = contents.replace(/\}\)\);/g, ''); + contents = contents.replace(/\s*("|')use strict("|');/g, ''); + contents = contents.replace(/\s*return \$\.fn\.jstree;/g, ''); + return grunt.file.read('src/intro.js') + contents + grunt.file.read('src/outro.js'); + } + }); + }); + + grunt.registerMultiTask('dox', 'Generate dox output ', function() { + var exec = require('child_process').exec, + path = require('path'), + done = this.async(), + doxPath = path.resolve(__dirname), + formatter = [doxPath, 'node_modules', '.bin', 'dox'].join(path.sep); + exec(formatter + ' < "dist/jstree.js" > "docs/jstree.json"', {maxBuffer: 5000*1024}, function(error, stout, sterr){ + if (error) { + grunt.log.error(formatter); + grunt.log.error("WARN: "+ error); + } + if (!error) { + grunt.log.writeln('dist/jstree.js doxxed.'); + done(); + } + }); + }); + + grunt.util.linefeed = "\n"; + + // Default task. + grunt.registerTask('default', ['jshint:beforeconcat','concat','amd','jshint:afterconcat','copy:libs','uglify','less','imagemin','replace','copy:docs','qunit','resemble','dox']); + grunt.registerTask('js', ['concat','amd','uglify']); + grunt.registerTask('css', ['copy','less']); + +}; diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json new file mode 100644 index 0000000000..c0e4945b59 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json @@ -0,0 +1,28 @@ +{ + "name": "jstree", + "title": "jsTree", + "description": "Tree view for jQuery", + "version": "3.3.3", + "homepage": "http://jstree.com", + "keywords": [ + "ui", + "tree", + "jstree" + ], + "author": { + "name": "Ivan Bozhanov", + "email": "jstree@jstree.com", + "url": "http://vakata.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/vakata/jstree/blob/master/LICENSE-MIT" + } + ], + "bugs": "https://github.com/vakata/jstree/issues", + "demo": "http://jstree.com/demo", + "dependencies": { + "jquery": ">=1.9.1" + } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json new file mode 100644 index 0000000000..709242cba6 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json @@ -0,0 +1,58 @@ +{ + "name": "jstree", + "title": "jsTree", + "description": "jQuery tree plugin", + "version": "3.3.3", + "homepage": "http://jstree.com", + "main": "./dist/jstree.js", + "author": { + "name": "Ivan Bozhanov", + "email": "jstree@jstree.com", + "url": "http://vakata.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/vakata/jstree.git" + }, + "bugs": { + "url": "https://github.com/vakata/jstree/issues" + }, + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/vakata/jstree/blob/master/LICENSE-MIT" + } + ], + "keywords": [], + "devDependencies": { + "dox": "~0.4.4", + "grunt": "~0.4.0", + "grunt-contrib-concat": "*", + "grunt-contrib-copy": "*", + "grunt-contrib-imagemin": "~0.4.0", + "grunt-contrib-jshint": "*", + "grunt-contrib-less": "~0.8.2", + "grunt-contrib-qunit": "~v0.3.0", + "grunt-contrib-uglify": "*", + "grunt-contrib-watch": "~0.5.3", + "grunt-phantomcss-gitdiff": "0.0.7", + "grunt-resemble-cli": "0.0.8", + "grunt-text-replace": "~0.3.11" + }, + "dependencies": { + "jquery": ">=1.9.1" + }, + "npmName": "jstree", + "npmFileMap": [ + { + "basePath": "/dist/", + "files": [ + "jstree.min.js", + "themes/**/*.png", + "themes/**/*.gif", + "themes/**/*.min.css" + ] + } + ] +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js new file mode 100644 index 0000000000..5c95a5cdfb --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js @@ -0,0 +1,14 @@ +/*globals jQuery, define, module, exports, require, window, document, postMessage */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(typeof module !== 'undefined' && module.exports) { + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js new file mode 100644 index 0000000000..be8cfd7d12 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js @@ -0,0 +1,69 @@ +/** + * ### Changed plugin + * + * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.changed', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.changed) { return; } + + $.jstree.plugins.changed = function (options, parent) { + var last = []; + this.trigger = function (ev, data) { + var i, j; + if(!data) { + data = {}; + } + if(ev.replace('.jstree','') === 'changed') { + data.changed = { selected : [], deselected : [] }; + var tmp = {}; + for(i = 0, j = last.length; i < j; i++) { + tmp[last[i]] = 1; + } + for(i = 0, j = data.selected.length; i < j; i++) { + if(!tmp[data.selected[i]]) { + data.changed.selected.push(data.selected[i]); + } + else { + tmp[data.selected[i]] = 2; + } + } + for(i = 0, j = last.length; i < j; i++) { + if(tmp[last[i]] === 1) { + data.changed.deselected.push(last[i]); + } + } + last = data.selected.slice(); + } + /** + * triggered when selection changes (the "changed" plugin enhances the original event with more data) + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event + * @param {Object} event the event (if any) that triggered this changed event + * @plugin changed + */ + parent.trigger.call(this, ev, data); + }; + this.refresh = function (skip_loading, forget_state) { + last = []; + return parent.refresh.apply(this, arguments); + }; + }; +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js new file mode 100644 index 0000000000..5dd9837d75 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js @@ -0,0 +1,871 @@ +/** + * ### Checkbox plugin + * + * This plugin renders checkbox icons in front of each node, making multiple selection much easier. + * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.checkbox', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.checkbox) { return; } + + var _i = document.createElement('I'); + _i.className = 'jstree-icon jstree-checkbox'; + _i.setAttribute('role', 'presentation'); + /** + * stores all defaults for the checkbox plugin + * @name $.jstree.defaults.checkbox + * @plugin checkbox + */ + $.jstree.defaults.checkbox = { + /** + * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + visible : true, + /** + * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. + * @name $.jstree.defaults.checkbox.three_state + * @plugin checkbox + */ + three_state : true, + /** + * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. + * @name $.jstree.defaults.checkbox.whole_node + * @plugin checkbox + */ + whole_node : true, + /** + * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. + * @name $.jstree.defaults.checkbox.keep_selected_style + * @plugin checkbox + */ + keep_selected_style : true, + /** + * This setting controls how cascading and undetermined nodes are applied. + * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. + * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. + * @name $.jstree.defaults.checkbox.cascade + * @plugin checkbox + */ + cascade : '', + /** + * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. + * @name $.jstree.defaults.checkbox.tie_selection + * @plugin checkbox + */ + tie_selection : true + }; + $.jstree.plugins.checkbox = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.checkbox.uto = false; + this._data.checkbox.selected = []; + if(this.settings.checkbox.three_state) { + this.settings.checkbox.cascade = 'up+down+undetermined'; + } + this.element + .on("init.jstree", $.proxy(function () { + this._data.checkbox.visible = this.settings.checkbox.visible; + if(!this.settings.checkbox.keep_selected_style) { + this.element.addClass('jstree-checkbox-no-clicked'); + } + if(this.settings.checkbox.tie_selection) { + this.element.addClass('jstree-checkbox-selection'); + } + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); + }, this)); + if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + }, this)); + } + if(!this.settings.checkbox.tie_selection) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + i, j; + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); + if(m[dpc[i]].state.checked) { + this._data.checkbox.selected.push(dpc[i]); + } + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + chd = [], + c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; + + if(s.indexOf('down') !== -1) { + // apply down + if(p.state[ t ? 'selected' : 'checked' ]) { + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); + } + else { + for(i = 0, j = dpc.length; i < j; i++) { + if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { + for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { + m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); + } + } + } + } + + if(s.indexOf('up') !== -1) { + // apply up + for(i = 0, j = p.children_d.length; i < j; i++) { + if(!m[p.children_d[i]].children.length) { + chd.push(m[p.children_d[i]].parent); + } + } + chd = $.vakata.array_unique(chd); + for(k = 0, l = chd.length; k < l; k++) { + p = m[chd[k]]; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + } + + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); + }, this)) + .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + m = this._model.data, + par = this.get_node(obj.parent), + dom = this.get_node(obj, true), + i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; + + for (i = 0, j = cur.length; i < j; i++) { + sel[cur[i]] = true; + } + // apply down + if(s.indexOf('down') !== -1) { + //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); + for(i = 0, j = obj.children_d.length; i < j; i++) { + sel[obj.children_d[i]] = true; + tmp = m[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = true; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + while(par && par.id !== $.jstree.root) { + c = 0; + for(i = 0, j = par.children.length; i < j; i++) { + c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + par.state[ t ? 'selected' : 'checked' ] = true; + sel[par.id] = true; + //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); + tmp = this.get_node(par, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + par = this.get_node(par.parent); + } + } + + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', true); + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { + var obj = this.get_node($.jstree.root), + m = this._model.data, + i, j, tmp; + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = m[obj.children_d[i]]; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + dom = this.get_node(obj, true), + i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}; + if(obj && obj.original && obj.original.state && obj.original.state.undetermined) { + obj.original.state.undetermined = false; + } + + // apply down + if(s.indexOf('down') !== -1) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = this._model.data[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + for(i = 0, j = obj.parents.length; i < j; i++) { + tmp = this._model.data[obj.parents[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + tmp = this.get_node(obj.parents[i], true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + sel = {}; + for(i = 0, j = cur.length; i < j; i++) { + // apply down + apply up + if( + (s.indexOf('down') === -1 || $.inArray(cur[i], obj.children_d) === -1) && + (s.indexOf('up') === -1 || $.inArray(cur[i], obj.parents) === -1) + ) { + sel[cur[i]] = true; + } + } + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', false); + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1) { + this.element + .on('delete_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var p = this.get_node(data.parent), + m = this._model.data, + i, j, c, tmp, t = this.settings.checkbox.tie_selection; + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + }, this)) + .on('move_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var is_multi = data.is_multi, + old_par = data.old_parent, + new_par = this.get_node(data.parent), + m = this._model.data, + p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; + if(!is_multi) { + p = this.get_node(old_par); + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + p = new_par; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + if(!p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + else { + if(p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = false; + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + } + p = this.get_node(p.parent); + } + }, this)); + } + }; + /** + * set the undetermined state where and if necessary. Used internally. + * @private + * @name _undetermined() + * @plugin checkbox + */ + this._undetermined = function () { + if(this.element === null) { return; } + var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this; + for(i = 0, j = s.length; i < j; i++) { + if(m[s[i]] && m[s[i]].parents) { + for(k = 0, l = m[s[i]].parents.length; k < l; k++) { + if(o[m[s[i]].parents[k]] !== undefined) { + break; + } + if(m[s[i]].parents[k] !== $.jstree.root) { + o[m[s[i]].parents[k]] = true; + p.push(m[s[i]].parents[k]); + } + } + } + } + // attempt for server side undetermined state + this.element.find('.jstree-closed').not(':has(.jstree-children)') + .each(function () { + var tmp = tt.get_node(this), tmp2; + if(!tmp.state.loaded) { + if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { + if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { + o[tmp.id] = true; + p.push(tmp.id); + } + for(k = 0, l = tmp.parents.length; k < l; k++) { + if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { + o[tmp.parents[k]] = true; + p.push(tmp.parents[k]); + } + } + } + } + else { + for(i = 0, j = tmp.children_d.length; i < j; i++) { + tmp2 = m[tmp.children_d[i]]; + if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { + if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { + o[tmp2.id] = true; + p.push(tmp2.id); + } + for(k = 0, l = tmp2.parents.length; k < l; k++) { + if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { + o[tmp2.parents[k]] = true; + p.push(tmp2.parents[k]); + } + } + } + } + } + }); + + this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); + for(i = 0, j = p.length; i < j; i++) { + if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { + s = this.get_node(p[i], true); + if(s && s.length) { + s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); + } + } + } + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } + icon = _i.cloneNode(false); + if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + } + return obj; + }; + /** + * show the node checkbox icons + * @name show_checkboxes() + * @plugin checkbox + */ + this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; + /** + * hide the node checkbox icons + * @name hide_checkboxes() + * @plugin checkbox + */ + this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; + /** + * toggle the node icons + * @name toggle_checkboxes() + * @plugin checkbox + */ + this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; + /** + * checks if a node is in an undetermined state + * @name is_undetermined(obj) + * @param {mixed} obj + * @return {Boolean} + */ + this.is_undetermined = function (obj) { + obj = this.get_node(obj); + var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; + if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { + return false; + } + if(!obj.state.loaded && obj.original.state.undetermined === true) { + return true; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { + return true; + } + } + return false; + }; + /** + * disable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger disable_checkbox.jstree + * @plugin checkbox + */ + this.disable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = true; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is disabled + * @event + * @name disable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('disable_checkbox', { 'node' : obj }); + } + }; + /** + * enable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger enable_checkbox.jstree + * @plugin checkbox + */ + this.enable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = false; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is enabled + * @event + * @name enable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('enable_checkbox', { 'node' : obj }); + } + }; + + this.activate_node = function (obj, e) { + if($(e.target).hasClass('jstree-checkbox-disabled')) { + return false; + } + if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { + e.ctrlKey = true; + } + if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { + return parent.activate_node.call(this, obj, e); + } + if(this.is_disabled(obj)) { + return false; + } + if(this.is_checked(obj)) { + this.uncheck_node(obj, e); + } + else { + this.check_node(obj, e); + } + this.trigger('activate_node', { 'node' : this.get_node(obj) }); + }; + + /** + * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) + * @name check_node(obj) + * @param {mixed} obj an array can be used to check multiple nodes + * @trigger check_node.jstree + * @plugin checkbox + */ + this.check_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.check_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checked) { + obj.state.checked = true; + this._data.checkbox.selected.push(obj.id); + if(dom && dom.length) { + dom.children('.jstree-anchor').addClass('jstree-checked'); + } + /** + * triggered when an node is checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this check_node + * @plugin checkbox + */ + this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) + * @name uncheck_node(obj) + * @param {mixed} obj an array can be used to uncheck multiple nodes + * @trigger uncheck_node.jstree + * @plugin checkbox + */ + this.uncheck_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.uncheck_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checked) { + obj.state.checked = false; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); + if(dom.length) { + dom.children('.jstree-anchor').removeClass('jstree-checked'); + } + /** + * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this uncheck_node + * @plugin checkbox + */ + this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) + * @name check_all() + * @trigger check_all.jstree, changed.jstree + * @plugin checkbox + */ + this.check_all = function () { + if(this.settings.checkbox.tie_selection) { return this.select_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_all.jstree + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); + }; + /** + * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) + * @name uncheck_all() + * @trigger uncheck_all.jstree + * @plugin checkbox + */ + this.uncheck_all = function () { + if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = false; + } + } + this._data.checkbox.selected = []; + this.element.find('.jstree-checked').removeClass('jstree-checked'); + /** + * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); + }; + /** + * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) + * @name is_checked(obj) + * @param {mixed} obj + * @return {Boolean} + * @plugin checkbox + */ + this.is_checked = function (obj) { + if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + return obj.state.checked; + }; + /** + * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) + * @name get_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } + return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; + }; + /** + * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) + * @name get_top_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_top_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } + var tmp = this.get_checked(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }; + /** + * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) + * @name get_bottom_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_bottom_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } + var tmp = this.get_checked(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }; + this.load_node = function (obj, callback) { + var k, l, i, j, c, tmp; + if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { + tmp = this.get_node(obj); + if(tmp && tmp.state.loaded) { + for(k = 0, l = tmp.children_d.length; k < l; k++) { + if(this._model.data[tmp.children_d[k]].state.checked) { + c = true; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); + } + } + } + } + return parent.load_node.apply(this, arguments); + }; + this.get_state = function () { + var state = parent.get_state.apply(this, arguments); + if(this.settings.checkbox.tie_selection) { return state; } + state.checkbox = this._data.checkbox.selected.slice(); + return state; + }; + this.set_state = function (state, callback) { + var res = parent.set_state.apply(this, arguments); + if(res && state.checkbox) { + if(!this.settings.checkbox.tie_selection) { + this.uncheck_all(); + var _this = this; + $.each(state.checkbox, function (i, v) { + _this.check_node(v); + }); + } + delete state.checkbox; + this.set_state(state, callback); + return false; + } + return res; + }; + this.refresh = function (skip_loading, forget_state) { + if(!this.settings.checkbox.tie_selection) { + this._data.checkbox.selected = []; + } + return parent.refresh.apply(this, arguments); + }; + }; + + // include the checkbox plugin by default + // $.jstree.defaults.plugins.push("checkbox"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js new file mode 100644 index 0000000000..012562ec10 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js @@ -0,0 +1,38 @@ +/** + * ### Conditionalselect plugin + * + * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.conditionalselect', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.conditionalselect) { return; } + + /** + * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + $.jstree.defaults.conditionalselect = function () { return true; }; + $.jstree.plugins.conditionalselect = function (options, parent) { + // own function + this.activate_node = function (obj, e) { + if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { + parent.activate_node.call(this, obj, e); + } + }; + }; + +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js new file mode 100644 index 0000000000..00f4517510 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js @@ -0,0 +1,653 @@ +/** + * ### Contextmenu plugin + * + * Shows a context menu when a node is right-clicked. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.contextmenu', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.contextmenu) { return; } + + /** + * stores all defaults for the contextmenu plugin + * @name $.jstree.defaults.contextmenu + * @plugin contextmenu + */ + $.jstree.defaults.contextmenu = { + /** + * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. + * @name $.jstree.defaults.contextmenu.select_node + * @plugin contextmenu + */ + select_node : true, + /** + * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. + * @name $.jstree.defaults.contextmenu.show_at_node + * @plugin contextmenu + */ + show_at_node : true, + /** + * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). + * + * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. + * + * * `separator_before` - a boolean indicating if there should be a separator before this item + * * `separator_after` - a boolean indicating if there should be a separator after this item + * * `_disabled` - a boolean indicating if this action should be disabled + * * `label` - a string - the name of the action (could be a function returning a string) + * * `title` - a string - an optional tooltip for the item + * * `action` - a function to be executed if this item is chosen, the function will receive + * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) + * * `shortcut_label` - shortcut label (like for example `F2` for rename) + * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered + * + * @name $.jstree.defaults.contextmenu.items + * @plugin contextmenu + */ + items : function (o, cb) { // Could be an object directly + return { + "create" : { + "separator_before" : false, + "separator_after" : true, + "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), + "label" : "Create", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.create_node(obj, {}, "last", function (new_node) { + setTimeout(function () { inst.edit(new_node); },0); + }); + } + }, + "rename" : { + "separator_before" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Rename", + /*! + "shortcut" : 113, + "shortcut_label" : 'F2', + "icon" : "glyphicon glyphicon-leaf", + */ + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.edit(obj); + } + }, + "remove" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Delete", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.delete_node(inst.get_selected()); + } + else { + inst.delete_node(obj); + } + } + }, + "ccp" : { + "separator_before" : true, + "icon" : false, + "separator_after" : false, + "label" : "Edit", + "action" : false, + "submenu" : { + "cut" : { + "separator_before" : false, + "separator_after" : false, + "label" : "Cut", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.cut(inst.get_top_selected()); + } + else { + inst.cut(obj); + } + } + }, + "copy" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "label" : "Copy", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.copy(inst.get_top_selected()); + } + else { + inst.copy(obj); + } + } + }, + "paste" : { + "separator_before" : false, + "icon" : false, + "_disabled" : function (data) { + return !$.jstree.reference(data.reference).can_paste(); + }, + "separator_after" : false, + "label" : "Paste", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.paste(obj); + } + } + } + } + }; + } + }; + + $.jstree.plugins.contextmenu = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + var last_ts = 0, cto = null, ex, ey; + this.element + .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { + if (e.target.tagName.toLowerCase() === 'input') { + return; + } + e.preventDefault(); + last_ts = e.ctrlKey ? +new Date() : 0; + if(data || cto) { + last_ts = (+new Date()) + 10000; + } + if(cto) { + clearTimeout(cto); + } + if(!this.is_loading(e.currentTarget)) { + this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click + $.vakata.context.hide(); + } + last_ts = 0; + }, this)) + .on("touchstart.jstree", ".jstree-anchor", function (e) { + if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { + return; + } + ex = e.originalEvent.changedTouches[0].clientX; + ey = e.originalEvent.changedTouches[0].clientY; + cto = setTimeout(function () { + $(e.currentTarget).trigger('contextmenu', true); + }, 750); + }) + .on('touchmove.vakata.jstree', function (e) { + if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 50 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 50)) { + clearTimeout(cto); + } + }) + .on('touchend.vakata.jstree', function (e) { + if(cto) { + clearTimeout(cto); + } + }); + + /*! + if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { + var el = null, tm = null; + this.element + .on("touchstart", ".jstree-anchor", function (e) { + el = e.currentTarget; + tm = +new Date(); + $(document).one("touchend", function (e) { + e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); + e.currentTarget = e.target; + tm = ((+(new Date())) - tm); + if(e.target === el && tm > 600 && tm < 1000) { + e.preventDefault(); + $(el).trigger('contextmenu', e); + } + el = null; + tm = null; + }); + }); + } + */ + $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { + this._data.contextmenu.visible = false; + $(data.reference).removeClass('jstree-context'); + }, this)); + }; + this.teardown = function () { + if(this._data.contextmenu.visible) { + $.vakata.context.hide(); + } + parent.teardown.call(this); + }; + + /** + * prepare and show the context menu for a node + * @name show_contextmenu(obj [, x, y]) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Object} e the event if available that triggered the contextmenu + * @plugin contextmenu + * @trigger show_contextmenu.jstree + */ + this.show_contextmenu = function (obj, x, y, e) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var s = this.settings.contextmenu, + d = this.get_node(obj, true), + a = d.children(".jstree-anchor"), + o = false, + i = false; + if(s.show_at_node || x === undefined || y === undefined) { + o = a.offset(); + x = o.left; + y = o.top + this._data.core.li_height; + } + if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { + this.activate_node(obj, e); + } + + i = s.items; + if($.isFunction(i)) { + i = i.call(this, obj, $.proxy(function (i) { + this._show_contextmenu(obj, x, y, i); + }, this)); + } + if($.isPlainObject(i)) { + this._show_contextmenu(obj, x, y, i); + } + }; + /** + * show the prepared context menu for a node + * @name _show_contextmenu(obj, x, y, i) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Number} i the object of items to show + * @plugin contextmenu + * @trigger show_contextmenu.jstree + * @private + */ + this._show_contextmenu = function (obj, x, y, i) { + var d = this.get_node(obj, true), + a = d.children(".jstree-anchor"); + $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { + var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; + $(data.element).addClass(cls); + a.addClass('jstree-context'); + }, this)); + this._data.contextmenu.visible = true; + $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); + /** + * triggered when the contextmenu is shown for a node + * @event + * @name show_contextmenu.jstree + * @param {Object} node the node + * @param {Number} x the x-coordinate of the menu relative to the document + * @param {Number} y the y-coordinate of the menu relative to the document + * @plugin contextmenu + */ + this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); + }; + }; + + // contextmenu helper + (function ($) { + var right_to_left = false, + vakata_context = { + element : false, + reference : false, + position_x : 0, + position_y : 0, + items : [], + html : "", + is_visible : false + }; + + $.vakata.context = { + settings : { + hide_onmouseleave : 0, + icons : true + }, + _trigger : function (event_name) { + $(document).triggerHandler("context_" + event_name + ".vakata", { + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }); + }, + _execute : function (i) { + i = vakata_context.items[i]; + return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { + "item" : i, + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }) : false; + }, + _parse : function (o, is_callback) { + if(!o) { return false; } + if(!is_callback) { + vakata_context.html = ""; + vakata_context.items = []; + } + var str = "", + sep = false, + tmp; + + if(is_callback) { str += "<"+"ul>"; } + $.each(o, function (i, val) { + if(!val) { return true; } + vakata_context.items.push(val); + if(!sep && val.separator_before) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + } + sep = false; + str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; + str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; + if($.vakata.context.settings.icons) { + str += "<"+"i "; + if(val.icon) { + if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } + else { str += " class='" + val.icon + "' "; } + } + str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; + } + str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + "<"+"/a>"; + if(val.submenu) { + tmp = $.vakata.context._parse(val.submenu, true); + if(tmp) { str += tmp; } + } + str += "<"+"/li>"; + if(val.separator_after) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + sep = true; + } + }); + str = str.replace(/
      • <\/li\>$/,""); + if(is_callback) { str += ""; } + /** + * triggered on the document when the contextmenu is parsed (HTML is built) + * @event + * @plugin contextmenu + * @name context_parse.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } + return str.length > 10 ? str : false; + }, + _show_submenu : function (o) { + o = $(o); + if(!o.length || !o.children("ul").length) { return; } + var e = o.children("ul"), + xl = o.offset().left, + x = xl + o.outerWidth(), + y = o.offset().top, + w = e.width(), + h = e.height(), + dw = $(window).width() + $(window).scrollLeft(), + dh = $(window).height() + $(window).scrollTop(); + // може да се спести е една проверка - дали няма някой от класовете вече нагоре + if(right_to_left) { + o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); + } + else { + o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); + } + if(y + h + 10 > dh) { + e.css("bottom","-1px"); + } + + //if does not fit - stick it to the side + if (o.hasClass('vakata-context-right')) { + if (xl < w) { + e.css("margin-right", xl - w); + } + } else { + if (dw - x < w) { + e.css("margin-left", dw - x - w); + } + } + + e.show(); + }, + show : function (reference, position, data) { + var o, e, x, y, w, h, dw, dh, cond = true; + if(vakata_context.element && vakata_context.element.length) { + vakata_context.element.width(''); + } + switch(cond) { + case (!position && !reference): + return false; + case (!!position && !!reference): + vakata_context.reference = reference; + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + case (!position && !!reference): + vakata_context.reference = reference; + o = reference.offset(); + vakata_context.position_x = o.left + reference.outerHeight(); + vakata_context.position_y = o.top; + break; + case (!!position && !reference): + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + } + if(!!reference && !data && $(reference).data('vakata_contextmenu')) { + data = $(reference).data('vakata_contextmenu'); + } + if($.vakata.context._parse(data)) { + vakata_context.element.html(vakata_context.html); + } + if(vakata_context.items.length) { + vakata_context.element.appendTo("body"); + e = vakata_context.element; + x = vakata_context.position_x; + y = vakata_context.position_y; + w = e.width(); + h = e.height(); + dw = $(window).width() + $(window).scrollLeft(); + dh = $(window).height() + $(window).scrollTop(); + if(right_to_left) { + x -= (e.outerWidth() - $(reference).outerWidth()); + if(x < $(window).scrollLeft() + 20) { + x = $(window).scrollLeft() + 20; + } + } + if(x + w + 20 > dw) { + x = dw - (w + 20); + } + if(y + h + 20 > dh) { + y = dh - (h + 20); + } + + vakata_context.element + .css({ "left" : x, "top" : y }) + .show() + .find('a').first().focus().parent().addClass("vakata-context-hover"); + vakata_context.is_visible = true; + /** + * triggered on the document when the contextmenu is shown + * @event + * @plugin contextmenu + * @name context_show.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("show"); + } + }, + hide : function () { + if(vakata_context.is_visible) { + vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); + vakata_context.is_visible = false; + /** + * triggered on the document when the contextmenu is hidden + * @event + * @plugin contextmenu + * @name context_hide.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("hide"); + } + } + }; + $(function () { + right_to_left = $("body").css("direction") === "rtl"; + var to = false; + + vakata_context.element = $("
          "); + vakata_context.element + .on("mouseenter", "li", function (e) { + e.stopImmediatePropagation(); + + if($.contains(this, e.relatedTarget)) { + // премахнато заради delegate mouseleave по-долу + // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + return; + } + + if(to) { clearTimeout(to); } + vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); + + $(this) + .siblings().find("ul").hide().end().end() + .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); + $.vakata.context._show_submenu(this); + }) + // тестово - дали не натоварва? + .on("mouseleave", "li", function (e) { + if($.contains(this, e.relatedTarget)) { return; } + $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); + }) + .on("mouseleave", function (e) { + $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + if($.vakata.context.settings.hide_onmouseleave) { + to = setTimeout( + (function (t) { + return function () { $.vakata.context.hide(); }; + }(this)), $.vakata.context.settings.hide_onmouseleave); + } + }) + .on("click", "a", function (e) { + e.preventDefault(); + //}) + //.on("mouseup", "a", function (e) { + if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { + $.vakata.context.hide(); + } + }) + .on('keydown', 'a', function (e) { + var o = null; + switch(e.which) { + case 13: + case 32: + e.type = "click"; + e.preventDefault(); + $(e.currentTarget).trigger(e); + break; + case 37: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 38: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 39: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 40: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 27: + $.vakata.context.hide(); + e.preventDefault(); + break; + default: + //console.log(e.which); + break; + } + }) + .on('keydown', function (e) { + e.preventDefault(); + var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); + if(a.parent().not('.vakata-context-disabled')) { + a.click(); + } + }); + + $(document) + .on("mousedown.vakata.jstree", function (e) { + if(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) { + $.vakata.context.hide(); + } + }) + .on("context_show.vakata.jstree", function (e, data) { + vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); + if(right_to_left) { + vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); + } + // also apply a RTL class? + vakata_context.element.find("ul").hide().end(); + }); + }); + }($)); + // $.jstree.defaults.plugins.push("contextmenu"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js new file mode 100644 index 0000000000..a8a4cec2ec --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js @@ -0,0 +1,653 @@ +/** + * ### Drag'n'drop plugin + * + * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.dnd', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.dnd) { return; } + + /** + * stores all defaults for the drag'n'drop plugin + * @name $.jstree.defaults.dnd + * @plugin dnd + */ + $.jstree.defaults.dnd = { + /** + * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. + * @name $.jstree.defaults.dnd.copy + * @plugin dnd + */ + copy : true, + /** + * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. + * @name $.jstree.defaults.dnd.open_timeout + * @plugin dnd + */ + open_timeout : 500, + /** + * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging + * @name $.jstree.defaults.dnd.is_draggable + * @plugin dnd + */ + is_draggable : true, + /** + * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` + * @name $.jstree.defaults.dnd.check_while_dragging + * @plugin dnd + */ + check_while_dragging : true, + /** + * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` + * @name $.jstree.defaults.dnd.always_copy + * @plugin dnd + */ + always_copy : false, + /** + * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` + * @name $.jstree.defaults.dnd.inside_pos + * @plugin dnd + */ + inside_pos : 0, + /** + * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node + * @name $.jstree.defaults.dnd.drag_selection + * @plugin dnd + */ + drag_selection : true, + /** + * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. + * @name $.jstree.defaults.dnd.touch + * @plugin dnd + */ + touch : true, + /** + * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. + * @name $.jstree.defaults.dnd.large_drop_target + * @plugin dnd + */ + large_drop_target : false, + /** + * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". + * @name $.jstree.defaults.dnd.large_drag_target + * @plugin dnd + */ + large_drag_target : false, + /** + * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. + * @reference http://caniuse.com/#feat=dragndrop + * @name $.jstree.defaults.dnd.use_html5 + * @plugin dnd + */ + use_html5: false + }; + var drg, elm; + // TODO: now check works by checking for each node individually, how about max_children, unique, etc? + $.jstree.plugins.dnd = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); + }; + this.bind = function () { + parent.bind.call(this); + + this.element + .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { + return true; + } + if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { + return true; + } + var obj = this.get_node(e.target), + mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, + txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); + if(this.settings.core.force_text) { + txt = $.vakata.html.escape(txt); + } + if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && + (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) + ) { + drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; + elm = e.currentTarget; + if (this.settings.dnd.use_html5) { + $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); + } else { + this.element.trigger('mousedown.jstree'); + return $.vakata.dnd.start(e, drg, '
          ' + txt + '
          '); + } + } + }, this)); + if (this.settings.dnd.use_html5) { + this.element + .on('dragover.jstree', function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }) + //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + // e.preventDefault(); + // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + // return false; + // }, this)) + .on('drop.jstree', $.proxy(function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }, this)); + } + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if (obj && this.settings.dnd.use_html5) { + if (this.settings.dnd.large_drag_target) { + obj.setAttribute('draggable', true); + } else { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.setAttribute('draggable', true); + } + } + } + return obj; + }; + }; + + $(function() { + // bind only once for all instances + var lastmv = false, + laster = false, + lastev = false, + opento = false, + marker = $('
           
          ').hide(); //.appendTo('body'); + + $(document) + .on('dnd_start.vakata.jstree', function (e, data) { + lastmv = false; + lastev = false; + if(!data || !data.data || !data.data.jstree) { return; } + marker.appendTo('body'); //.show(); + }) + .on('dnd_move.vakata.jstree', function (e, data) { + if(opento) { + if (!data.event || data.event.type !== 'dragover' || data.event.target !== lastev.target) { + clearTimeout(opento); + } + } + if(!data || !data.data || !data.data.jstree) { return; } + + // if we are hovering the marker image do nothing (can happen on "inside" drags) + if(data.event.target.id && data.event.target.id === 'jstree-marker') { + return; + } + lastev = data.event; + + var ins = $.jstree.reference(data.event.target), + ref = false, + off = false, + rel = false, + tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; + // if we are over an instance + if(ins && ins._data && ins._data.dnd) { + marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); + is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); + data.helper + .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) + .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); + + // if are hovering the container itself add a new root node + //console.log(data.event); + if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); + if(!ok) { break; } + } + if(ok) { + lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; + marker.hide(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + return; + } + } + else { + // if we are hovering a tree node + ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); + if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { + off = ref.offset(); + rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; + h = ref.outerHeight(); + if(rel < h / 3) { + o = ['b', 'i', 'a']; + } + else if(rel > h - h / 3) { + o = ['a', 'i', 'b']; + } + else { + o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; + } + $.each(o, function (j, v) { + switch(v) { + case 'b': + l = off.left - 6; + t = off.top; + p = ins.get_parent(ref); + i = ref.parent().index(); + break; + case 'i': + ip = ins.settings.dnd.inside_pos; + tm = ins.get_node(ref.parent()); + l = off.left - 2; + t = off.top + h / 2 + 1; + p = tm.id; + i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); + break; + case 'a': + l = off.left - 6; + t = off.top + h; + p = ins.get_parent(ref); + i = ref.parent().index() + 1; + break; + } + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; + ps = i; + if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { + pr = ins.get_node(p); + if(ps > $.inArray(data.data.nodes[t1], pr.children)) { + ps -= 1; + } + } + ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); + if(!ok) { + if(ins && ins.last_error) { laster = ins.last_error(); } + break; + } + } + if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { + opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); + } + if(ok) { + pn = ins.get_node(p, true); + if (!pn.hasClass('.jstree-dnd-parent')) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + pn.addClass('jstree-dnd-parent'); + } + lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; + marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + laster = {}; + o = true; + return false; + } + }); + if(o === true) { return; } + } + } + } + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + lastmv = false; + data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = 'none'; + } + marker.hide(); + }) + .on('dnd_scroll.vakata.jstree', function (e, data) { + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide(); + lastmv = false; + lastev = false; + data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); + }) + .on('dnd_stop.vakata.jstree', function (e, data) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + if(opento) { clearTimeout(opento); } + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide().detach(); + var i, j, nodes = []; + if(lastmv) { + for(i = 0, j = data.data.nodes.length; i < j; i++) { + nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; + } + lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); + } + else { + i = $(data.event.target).closest('.jstree'); + if(i.length && laster && laster.error && laster.error === 'check') { + i = i.jstree(true); + if(i) { + i.settings.core.error.call(this, laster); + } + } + } + lastev = false; + lastmv = false; + }) + .on('keyup.jstree keydown.jstree', function (e, data) { + data = $.vakata.dnd._get(); + if(data && data.data && data.data.jstree) { + if (e.type === "keyup" && e.which === 27) { + if (opento) { clearTimeout(opento); } + lastmv = false; + laster = false; + lastev = false; + opento = false; + marker.hide().detach(); + $.vakata.dnd._clean(); + } else { + data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); + if(lastev) { + lastev.metaKey = e.metaKey; + lastev.ctrlKey = e.ctrlKey; + $.vakata.dnd._trigger('move', lastev); + } + } + } + }); + }); + + // helpers + (function ($) { + $.vakata.html = { + div : $('
          '), + escape : function (str) { + return $.vakata.html.div.text(str).html(); + }, + strip : function (str) { + return $.vakata.html.div.empty().append($.parseHTML(str)).text(); + } + }; + // private variable + var vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $.vakata.dnd = { + settings : { + scroll_speed : 10, + scroll_proximity : 20, + helper_left : 5, + helper_top : 10, + threshold : 5, + threshold_touch : 50 + }, + _trigger : function (event_name, e, data) { + if (data === undefined) { + data = $.vakata.dnd._get(); + } + data.event = e; + $(document).triggerHandler("dnd_" + event_name + ".vakata", data); + }, + _get : function () { + return { + "data" : vakata_dnd.data, + "element" : vakata_dnd.element, + "helper" : vakata_dnd.helper + }; + }, + _clean : function () { + if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + }, + _scroll : function (init_only) { + if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + return false; + } + if(!vakata_dnd.scroll_i) { + vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); + return false; + } + if(init_only === true) { return false; } + + var i = vakata_dnd.scroll_e.scrollTop(), + j = vakata_dnd.scroll_e.scrollLeft(); + vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); + vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); + if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { + /** + * triggered on the document when a drag causes an element to scroll + * @event + * @plugin dnd + * @name dnd_scroll.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {jQuery} event the element that is scrolling + */ + $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); + } + }, + start : function (e, data, html) { + if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } + try { + e.currentTarget.unselectable = "on"; + e.currentTarget.onselectstart = function() { return false; }; + if(e.currentTarget.style) { + e.currentTarget.style.touchAction = "none"; + e.currentTarget.style.msTouchAction = "none"; + e.currentTarget.style.MozUserSelect = "none"; + } + } catch(ignore) { } + vakata_dnd.init_x = e.pageX; + vakata_dnd.init_y = e.pageY; + vakata_dnd.data = data; + vakata_dnd.is_down = true; + vakata_dnd.element = e.currentTarget; + vakata_dnd.target = e.target; + vakata_dnd.is_touch = e.type === "touchstart"; + if(html !== false) { + vakata_dnd.helper = $("
          ").html(html).css({ + "display" : "block", + "margin" : "0", + "padding" : "0", + "position" : "absolute", + "top" : "-2000px", + "lineHeight" : "16px", + "zIndex" : "10000" + }); + } + $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + return false; + }, + drag : function (e) { + if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(!vakata_dnd.is_down) { return; } + if(!vakata_dnd.is_drag) { + if( + Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || + Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) + ) { + if(vakata_dnd.helper) { + vakata_dnd.helper.appendTo("body"); + vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); + } + vakata_dnd.is_drag = true; + $(vakata_dnd.target).one('click.vakata', false); + /** + * triggered on the document when a drag starts + * @event + * @plugin dnd + * @name dnd_start.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the start (probably mousemove) + */ + $.vakata.dnd._trigger("start", e); + } + else { return; } + } + + var d = false, w = false, + dh = false, wh = false, + dw = false, ww = false, + dt = false, dl = false, + ht = false, hl = false; + + vakata_dnd.scroll_t = 0; + vakata_dnd.scroll_l = 0; + vakata_dnd.scroll_e = false; + $($(e.target).parentsUntil("body").addBack().get().reverse()) + .filter(function () { + return (/^auto|scroll$/).test($(this).css("overflow")) && + (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); + }) + .each(function () { + var t = $(this), o = t.offset(); + if(this.scrollHeight > this.offsetHeight) { + if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + } + if(this.scrollWidth > this.offsetWidth) { + if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = $(this); + return false; + } + }); + + if(!vakata_dnd.scroll_e) { + d = $(document); w = $(window); + dh = d.height(); wh = w.height(); + dw = d.width(); ww = w.width(); + dt = d.scrollTop(); dl = d.scrollLeft(); + if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = d; + } + } + if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } + + if(vakata_dnd.helper) { + ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); + hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); + if(dh && ht + 25 > dh) { ht = dh - 50; } + if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } + vakata_dnd.helper.css({ + left : hl + "px", + top : ht + "px" + }); + } + /** + * triggered on the document when a drag is in progress + * @event + * @plugin dnd + * @name dnd_move.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused this to trigger (most likely mousemove) + */ + $.vakata.dnd._trigger("move", e); + return false; + }, + stop : function (e) { + if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { + /** + * triggered on the document when a drag stops (the dragged element is dropped) + * @event + * @plugin dnd + * @name dnd_stop.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the stop + */ + if (e.target !== vakata_dnd.target) { + $(vakata_dnd.target).off('click.vakata'); + } + $.vakata.dnd._trigger("stop", e); + } + else { + if(e.type === "touchend" && e.target === vakata_dnd.target) { + var to = setTimeout(function () { $(e.target).click(); }, 100); + $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); + } + } + $.vakata.dnd._clean(); + return false; + } + }; + }($)); + + // include the dnd plugin by default + // $.jstree.defaults.plugins.push("dnd"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js new file mode 100644 index 0000000000..a867704590 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js @@ -0,0 +1,4810 @@ +/*! + * jsTree {{VERSION}} + * http://jstree.com/ + * + * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com) + * + * Licensed same as jquery - under the terms of the MIT License + * http://www.opensource.org/licenses/mit-license.php + */ +/*! + * if using jslint please allow for the jQuery global and use following options: + * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true + */ +/*jshint -W083 */ +/*globals jQuery, define, module, exports, require, window, document, postMessage */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(typeof module !== 'undefined' && module.exports) { + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; + + // prevent another load? maybe there is a better way? + if($.jstree) { + return; + } + + /** + * ### jsTree core functionality + */ + + // internal variables + var instance_counter = 0, + ccp_node = false, + ccp_mode = false, + ccp_inst = false, + themes_loaded = [], + src = $('script:last').attr('src'), + document = window.document; // local variable is always faster to access then a global + + /** + * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances. + * @name $.jstree + */ + $.jstree = { + /** + * specifies the jstree version in use + * @name $.jstree.version + */ + version : '{{VERSION}}', + /** + * holds all the default options used when creating new instances + * @name $.jstree.defaults + */ + defaults : { + /** + * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]` + * @name $.jstree.defaults.plugins + */ + plugins : [] + }, + /** + * stores all loaded jstree plugins (used internally) + * @name $.jstree.plugins + */ + plugins : {}, + path : src && src.indexOf('/') !== -1 ? src.replace(/\/[^\/]+$/,'') : '', + idregex : /[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g, + root : '#' + }; + + /** + * creates a jstree instance + * @name $.jstree.create(el [, options]) + * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector + * @param {Object} options options for this instance (extends `$.jstree.defaults`) + * @return {jsTree} the new instance + */ + $.jstree.create = function (el, options) { + var tmp = new $.jstree.core(++instance_counter), + opt = options; + options = $.extend(true, {}, $.jstree.defaults, options); + if(opt && opt.plugins) { + options.plugins = opt.plugins; + } + $.each(options.plugins, function (i, k) { + if(i !== 'core') { + tmp = tmp.plugin(k, options[k]); + } + }); + $(el).data('jstree', tmp); + tmp.init(el, options); + return tmp; + }; + /** + * remove all traces of jstree from the DOM and destroy all instances + * @name $.jstree.destroy() + */ + $.jstree.destroy = function () { + $('.jstree:jstree').jstree('destroy'); + $(document).off('.jstree'); + }; + /** + * the jstree class constructor, used only internally + * @private + * @name $.jstree.core(id) + * @param {Number} id this instance's index + */ + $.jstree.core = function (id) { + this._id = id; + this._cnt = 0; + this._wrk = null; + this._data = { + core : { + themes : { + name : false, + dots : false, + icons : false, + ellipsis : false + }, + selected : [], + last_error : {}, + working : false, + worker_queue : [], + focused : null + } + }; + }; + /** + * get a reference to an existing instance + * + * __Examples__ + * + * // provided a container with an ID of "tree", and a nested node with an ID of "branch" + * // all of there will return the same instance + * $.jstree.reference('tree'); + * $.jstree.reference('#tree'); + * $.jstree.reference($('#tree')); + * $.jstree.reference(document.getElementByID('tree')); + * $.jstree.reference('branch'); + * $.jstree.reference('#branch'); + * $.jstree.reference($('#branch')); + * $.jstree.reference(document.getElementByID('branch')); + * + * @name $.jstree.reference(needle) + * @param {DOMElement|jQuery|String} needle + * @return {jsTree|null} the instance or `null` if not found + */ + $.jstree.reference = function (needle) { + var tmp = null, + obj = null; + if(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; } + + if(!obj || !obj.length) { + try { obj = $(needle); } catch (ignore) { } + } + if(!obj || !obj.length) { + try { obj = $('#' + needle.replace($.jstree.idregex,'\\$&')); } catch (ignore) { } + } + if(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) { + tmp = obj; + } + else { + $('.jstree').each(function () { + var inst = $(this).data('jstree'); + if(inst && inst._model.data[needle]) { + tmp = inst; + return false; + } + }); + } + return tmp; + }; + /** + * Create an instance, get an instance or invoke a command on a instance. + * + * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken). + * + * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function). + * + * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`). + * + * In any other case - nothing is returned and chaining is not broken. + * + * __Examples__ + * + * $('#tree1').jstree(); // creates an instance + * $('#tree2').jstree({ plugins : [] }); // create an instance with some options + * $('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments + * $('#tree2').jstree(); // get an existing instance (or create an instance) + * $('#tree2').jstree(true); // get an existing instance (will not create new instance) + * $('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method) + * + * @name $().jstree([arg]) + * @param {String|Object} arg + * @return {Mixed} + */ + $.fn.jstree = function (arg) { + // check for string argument + var is_method = (typeof arg === 'string'), + args = Array.prototype.slice.call(arguments, 1), + result = null; + if(arg === true && !this.length) { return false; } + this.each(function () { + // get the instance (if there is one) and method (if it exists) + var instance = $.jstree.reference(this), + method = is_method && instance ? instance[arg] : null; + // if calling a method, and method is available - execute on the instance + result = is_method && method ? + method.apply(instance, args) : + null; + // if there is no instance and no method is being called - create one + if(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) { + $.jstree.create(this, arg); + } + // if there is an instance and no method is called - return the instance + if( (instance && !is_method) || arg === true ) { + result = instance || false; + } + // if there was a method call which returned a result - break and return the value + if(result !== null && result !== undefined) { + return false; + } + }); + // if there was a method call with a valid return value - return that, otherwise continue the chain + return result !== null && result !== undefined ? + result : this; + }; + /** + * used to find elements containing an instance + * + * __Examples__ + * + * $('div:jstree').each(function () { + * $(this).jstree('destroy'); + * }); + * + * @name $(':jstree') + * @return {jQuery} + */ + $.expr.pseudos.jstree = $.expr.createPseudo(function(search) { + return function(a) { + return $(a).hasClass('jstree') && + $(a).data('jstree') !== undefined; + }; + }); + + /** + * stores all defaults for the core + * @name $.jstree.defaults.core + */ + $.jstree.defaults.core = { + /** + * data configuration + * + * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items). + * + * You can also pass in a HTML string or a JSON array here. + * + * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree. + * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used. + * + * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result. + * + * __Examples__ + * + * // AJAX + * $('#tree').jstree({ + * 'core' : { + * 'data' : { + * 'url' : '/get/children/', + * 'data' : function (node) { + * return { 'id' : node.id }; + * } + * } + * }); + * + * // direct data + * $('#tree').jstree({ + * 'core' : { + * 'data' : [ + * 'Simple root node', + * { + * 'id' : 'node_2', + * 'text' : 'Root node with options', + * 'state' : { 'opened' : true, 'selected' : true }, + * 'children' : [ { 'text' : 'Child 1' }, 'Child 2'] + * } + * ] + * } + * }); + * + * // function + * $('#tree').jstree({ + * 'core' : { + * 'data' : function (obj, callback) { + * callback.call(this, ['Root 1', 'Root 2']); + * } + * }); + * + * @name $.jstree.defaults.core.data + */ + data : false, + /** + * configure the various strings used throughout the tree + * + * You can use an object where the key is the string you need to replace and the value is your replacement. + * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement. + * If left as `false` no replacement is made. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'strings' : { + * 'Loading ...' : 'Please wait ...' + * } + * } + * }); + * + * @name $.jstree.defaults.core.strings + */ + strings : false, + /** + * determines what happens when a user tries to modify the structure of the tree + * If left as `false` all operations like create, rename, delete, move or copy are prevented. + * You can set this to `true` to allow all interactions or use a function to have better control. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'check_callback' : function (operation, node, node_parent, node_position, more) { + * // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node' + * // in case of 'rename_node' node_position is filled with the new node name + * return operation === 'rename_node' ? true : false; + * } + * } + * }); + * + * @name $.jstree.defaults.core.check_callback + */ + check_callback : false, + /** + * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc) + * @name $.jstree.defaults.core.error + */ + error : $.noop, + /** + * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`) + * @name $.jstree.defaults.core.animation + */ + animation : 200, + /** + * a boolean indicating if multiple nodes can be selected + * @name $.jstree.defaults.core.multiple + */ + multiple : true, + /** + * theme configuration object + * @name $.jstree.defaults.core.themes + */ + themes : { + /** + * the name of the theme to use (if left as `false` the default theme is used) + * @name $.jstree.defaults.core.themes.name + */ + name : false, + /** + * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme. + * @name $.jstree.defaults.core.themes.url + */ + url : false, + /** + * the location of all jstree themes - only used if `url` is set to `true` + * @name $.jstree.defaults.core.themes.dir + */ + dir : false, + /** + * a boolean indicating if connecting dots are shown + * @name $.jstree.defaults.core.themes.dots + */ + dots : true, + /** + * a boolean indicating if node icons are shown + * @name $.jstree.defaults.core.themes.icons + */ + icons : true, + /** + * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container + * @name $.jstree.defaults.core.themes.ellipsis + */ + ellipsis : false, + /** + * a boolean indicating if the tree background is striped + * @name $.jstree.defaults.core.themes.stripes + */ + stripes : false, + /** + * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants) + * @name $.jstree.defaults.core.themes.variant + */ + variant : false, + /** + * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`. + * @name $.jstree.defaults.core.themes.responsive + */ + responsive : false + }, + /** + * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user) + * @name $.jstree.defaults.core.expand_selected_onload + */ + expand_selected_onload : true, + /** + * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true` + * @name $.jstree.defaults.core.worker + */ + worker : true, + /** + * Force node text to plain text (and escape HTML). Defaults to `false` + * @name $.jstree.defaults.core.force_text + */ + force_text : false, + /** + * Should the node should be toggled if the text is double clicked . Defaults to `true` + * @name $.jstree.defaults.core.dblclick_toggle + */ + dblclick_toggle : true + }; + $.jstree.core.prototype = { + /** + * used to decorate an instance with a plugin. Used internally. + * @private + * @name plugin(deco [, opts]) + * @param {String} deco the plugin to decorate with + * @param {Object} opts options for the plugin + * @return {jsTree} + */ + plugin : function (deco, opts) { + var Child = $.jstree.plugins[deco]; + if(Child) { + this._data[deco] = {}; + Child.prototype = this; + return new Child(opts, this); + } + return this; + }, + /** + * initialize the instance. Used internally. + * @private + * @name init(el, optons) + * @param {DOMElement|jQuery|String} el the element we are transforming + * @param {Object} options options for this instance + * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree + */ + init : function (el, options) { + this._model = { + data : {}, + changed : [], + force_full_redraw : false, + redraw_timeout : false, + default_state : { + loaded : true, + opened : false, + selected : false, + disabled : false + } + }; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + + this.element = $(el).addClass('jstree jstree-' + this._id); + this.settings = options; + + this._data.core.ready = false; + this._data.core.loaded = false; + this._data.core.rtl = (this.element.css("direction") === "rtl"); + this.element[this._data.core.rtl ? 'addClass' : 'removeClass']("jstree-rtl"); + this.element.attr('role','tree'); + if(this.settings.core.multiple) { + this.element.attr('aria-multiselectable', true); + } + if(!this.element.attr('tabindex')) { + this.element.attr('tabindex','0'); + } + + this.bind(); + /** + * triggered after all events are bound + * @event + * @name init.jstree + */ + this.trigger("init"); + + this._data.core.original_container_html = this.element.find(" > ul > li").clone(true); + this._data.core.original_container_html + .find("li").addBack() + .contents().filter(function() { + return this.nodeType === 3 && (!this.nodeValue || /^\s+$/.test(this.nodeValue)); + }) + .remove(); + this.element.html("<"+"ul class='jstree-container-ul jstree-children' role='group'><"+"li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + "
        • "); + this.element.attr('aria-activedescendant','j' + this._id + '_loading'); + this._data.core.li_height = this.get_container_ul().children("li").first().height() || 24; + this._data.core.node = this._create_prototype_node(); + /** + * triggered after the loading text is shown and before loading starts + * @event + * @name loading.jstree + */ + this.trigger("loading"); + this.load_node($.jstree.root); + }, + /** + * destroy an instance + * @name destroy() + * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact + */ + destroy : function (keep_html) { + if(this._wrk) { + try { + window.URL.revokeObjectURL(this._wrk); + this._wrk = null; + } + catch (ignore) { } + } + if(!keep_html) { this.element.empty(); } + this.teardown(); + }, + /** + * Create prototype node + */ + _create_prototype_node : function () { + var _node = document.createElement('LI'), _temp1, _temp2; + _node.setAttribute('role', 'treeitem'); + _temp1 = document.createElement('I'); + _temp1.className = 'jstree-icon jstree-ocl'; + _temp1.setAttribute('role', 'presentation'); + _node.appendChild(_temp1); + _temp1 = document.createElement('A'); + _temp1.className = 'jstree-anchor'; + _temp1.setAttribute('href','#'); + _temp1.setAttribute('tabindex','-1'); + _temp2 = document.createElement('I'); + _temp2.className = 'jstree-icon jstree-themeicon'; + _temp2.setAttribute('role', 'presentation'); + _temp1.appendChild(_temp2); + _node.appendChild(_temp1); + _temp1 = _temp2 = null; + + return _node; + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name teardown() + */ + teardown : function () { + this.unbind(); + this.element + .removeClass('jstree') + .removeData('jstree') + .find("[class^='jstree']") + .addBack() + .attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); }); + this.element = null; + }, + /** + * bind all events. Used internally. + * @private + * @name bind() + */ + bind : function () { + var word = '', + tout = null, + was_click = 0; + this.element + .on("dblclick.jstree", function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(document.selection && document.selection.empty) { + document.selection.empty(); + } + else { + if(window.getSelection) { + var sel = window.getSelection(); + try { + sel.removeAllRanges(); + sel.collapse(); + } catch (ignore) { } + } + } + }) + .on("mousedown.jstree", $.proxy(function (e) { + if(e.target === this.element[0]) { + e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome) + was_click = +(new Date()); // ie does not allow to prevent losing focus + } + }, this)) + .on("mousedown.jstree", ".jstree-ocl", function (e) { + e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon + }) + .on("click.jstree", ".jstree-ocl", $.proxy(function (e) { + this.toggle_node(e.target); + }, this)) + .on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(this.settings.core.dblclick_toggle) { + this.toggle_node(e.target); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + e.preventDefault(); + if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); } + this.activate_node(e.currentTarget, e); + }, this)) + .on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(e.which !== 32 && e.which !== 13 && (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)) { return true; } + var o = null; + if(this._data.core.rtl) { + if(e.which === 37) { e.which = 39; } + else if(e.which === 39) { e.which = 37; } + } + switch(e.which) { + case 32: // aria defines space only with Ctrl + if(e.ctrlKey) { + e.type = "click"; + $(e.currentTarget).trigger(e); + } + break; + case 13: // enter + e.type = "click"; + $(e.currentTarget).trigger(e); + break; + case 37: // left + e.preventDefault(); + if(this.is_open(e.currentTarget)) { + this.close_node(e.currentTarget); + } + else { + o = this.get_parent(e.currentTarget); + if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); } + } + break; + case 38: // up + e.preventDefault(); + o = this.get_prev_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 39: // right + e.preventDefault(); + if(this.is_closed(e.currentTarget)) { + this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); }); + } + else if (this.is_open(e.currentTarget)) { + o = this.get_node(e.currentTarget, true).children('.jstree-children')[0]; + if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); } + } + break; + case 40: // down + e.preventDefault(); + o = this.get_next_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 106: // aria defines * on numpad as open_all - not very common + this.open_all(); + break; + case 36: // home + e.preventDefault(); + o = this._firstChild(this.get_container_ul()[0]); + if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); } + break; + case 35: // end + e.preventDefault(); + this.element.find('.jstree-anchor').filter(':visible').last().focus(); + break; + case 113: // f2 - safe to include - if check_callback is false it will fail + e.preventDefault(); + this.edit(e.currentTarget); + break; + default: + break; + /*! + // delete + case 46: + e.preventDefault(); + o = this.get_node(e.currentTarget); + if(o && o.id && o.id !== $.jstree.root) { + o = this.is_selected(o) ? this.get_selected() : o; + this.delete_node(o); + } + break; + + */ + } + }, this)) + .on("load_node.jstree", $.proxy(function (e, data) { + if(data.status) { + if(data.node.id === $.jstree.root && !this._data.core.loaded) { + this._data.core.loaded = true; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + /** + * triggered after the root node is loaded for the first time + * @event + * @name loaded.jstree + */ + this.trigger("loaded"); + } + if(!this._data.core.ready) { + setTimeout($.proxy(function() { + if(this.element && !this.get_container_ul().find('.jstree-loading').length) { + this._data.core.ready = true; + if(this._data.core.selected.length) { + if(this.settings.core.expand_selected_onload) { + var tmp = [], i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents); + } + tmp = $.vakata.array_unique(tmp); + for(i = 0, j = tmp.length; i < j; i++) { + this.open_node(tmp[i], false, 0); + } + } + this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected }); + } + /** + * triggered after all nodes are finished loading + * @event + * @name ready.jstree + */ + this.trigger("ready"); + } + }, this), 0); + } + } + }, this)) + // quick searching when the tree is focused + .on('keypress.jstree', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(tout) { clearTimeout(tout); } + tout = setTimeout(function () { + word = ''; + }, 500); + + var chr = String.fromCharCode(e.which).toLowerCase(), + col = this.element.find('.jstree-anchor').filter(':visible'), + ind = col.index(document.activeElement) || 0, + end = false; + word += chr; + + // match for whole word from current node down (including the current node) + if(word.length > 1) { + col.slice(ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // match for whole word from the beginning of the tree + col.slice(0, ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + // list nodes that start with that letter (only if word consists of a single char) + if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) { + // search for the next node starting with that letter + col.slice(ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // search from the beginning + col.slice(0, ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + }, this)) + // THEME RELATED + .on("init.jstree", $.proxy(function () { + var s = this.settings.core.themes; + this._data.core.themes.dots = s.dots; + this._data.core.themes.stripes = s.stripes; + this._data.core.themes.icons = s.icons; + this._data.core.themes.ellipsis = s.ellipsis; + this.set_theme(s.name || "default", s.url); + this.set_theme_variant(s.variant); + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ](); + this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ](); + this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ](); + this[ this._data.core.themes.ellipsis ? "show_ellipsis" : "hide_ellipsis" ](); + }, this)) + .on('blur.jstree', '.jstree-anchor', $.proxy(function (e) { + this._data.core.focused = null; + $(e.currentTarget).filter('.jstree-hovered').mouseleave(); + this.element.attr('tabindex', '0'); + }, this)) + .on('focus.jstree', '.jstree-anchor', $.proxy(function (e) { + var tmp = this.get_node(e.currentTarget); + if(tmp && tmp.id) { + this._data.core.focused = tmp.id; + } + this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave(); + $(e.currentTarget).mouseenter(); + this.element.attr('tabindex', '-1'); + }, this)) + .on('focus.jstree', $.proxy(function () { + if(+(new Date()) - was_click > 500 && !this._data.core.focused) { + was_click = 0; + var act = this.get_node(this.element.attr('aria-activedescendant'), true); + if(act) { + act.find('> .jstree-anchor').focus(); + } + } + }, this)) + .on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) { + this.hover_node(e.currentTarget); + }, this)) + .on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name unbind() + */ + unbind : function () { + this.element.off('.jstree'); + $(document).off('.jstree-' + this._id); + }, + /** + * trigger an event. Used internally. + * @private + * @name trigger(ev [, data]) + * @param {String} ev the name of the event to trigger + * @param {Object} data additional data to pass with the event + */ + trigger : function (ev, data) { + if(!data) { + data = {}; + } + data.instance = this; + this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data); + }, + /** + * returns the jQuery extended instance container + * @name get_container() + * @return {jQuery} + */ + get_container : function () { + return this.element; + }, + /** + * returns the jQuery extended main UL node inside the instance container. Used internally. + * @private + * @name get_container_ul() + * @return {jQuery} + */ + get_container_ul : function () { + return this.element.children(".jstree-children").first(); + }, + /** + * gets string replacements (localization). Used internally. + * @private + * @name get_string(key) + * @param {String} key + * @return {String} + */ + get_string : function (key) { + var a = this.settings.core.strings; + if($.isFunction(a)) { return a.call(this, key); } + if(a && a[key]) { return a[key]; } + return key; + }, + /** + * gets the first child of a DOM node. Used internally. + * @private + * @name _firstChild(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _firstChild : function (dom) { + dom = dom ? dom.firstChild : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the next sibling of a DOM node. Used internally. + * @private + * @name _nextSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _nextSibling : function (dom) { + dom = dom ? dom.nextSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the previous sibling of a DOM node. Used internally. + * @private + * @name _previousSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _previousSibling : function (dom) { + dom = dom ? dom.previousSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.previousSibling; + } + return dom; + }, + /** + * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc) + * @name get_node(obj [, as_dom]) + * @param {mixed} obj + * @param {Boolean} as_dom + * @return {Object|jQuery} + */ + get_node : function (obj, as_dom) { + if(obj && obj.id) { + obj = obj.id; + } + var dom; + try { + if(this._model.data[obj]) { + obj = this._model.data[obj]; + } + else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) { + obj = this._model.data[obj.replace(/^#/, '')]; + } + else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) { + obj = this._model.data[$.jstree.root]; + } + else { + return false; + } + + if(as_dom) { + obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + } + return obj; + } catch (ex) { return false; } + }, + /** + * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array) + * @name get_path(obj [, glue, ids]) + * @param {mixed} obj the node + * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned + * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used + * @return {mixed} + */ + get_path : function (obj, glue, ids) { + obj = obj.parents ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root || !obj.parents) { + return false; + } + var i, j, p = []; + p.push(ids ? obj.id : obj.text); + for(i = 0, j = obj.parents.length; i < j; i++) { + p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i])); + } + p = p.reverse().slice(1); + return glue ? p.join(glue) : p; + }, + /** + * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_next_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_next_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this._firstChild(this.get_container_ul()[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + if(obj.hasClass("jstree-open")) { + tmp = this._firstChild(obj.children('.jstree-children')[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + if(tmp !== null) { + return $(tmp); + } + } + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + return $(tmp); + } + return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first(); + }, + /** + * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_prev_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_prev_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this.get_container_ul()[0].lastChild; + while (tmp && tmp.offsetHeight === 0) { + tmp = this._previousSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + obj = $(tmp); + while(obj.hasClass("jstree-open")) { + obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last"); + } + return obj; + } + tmp = obj[0].parentNode.parentNode; + return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false; + }, + /** + * get the parent ID of a node + * @name get_parent(obj) + * @param {mixed} obj + * @return {String} + */ + get_parent : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.parent; + }, + /** + * get a jQuery collection of all the children of a node (node must be rendered) + * @name get_children_dom(obj) + * @param {mixed} obj + * @return {jQuery} + */ + get_children_dom : function (obj) { + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + return this.get_container_ul().children(".jstree-node"); + } + if(!obj || !obj.length) { + return false; + } + return obj.children(".jstree-children").children(".jstree-node"); + }, + /** + * checks if a node has children + * @name is_parent(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_parent : function (obj) { + obj = this.get_node(obj); + return obj && (obj.state.loaded === false || obj.children.length > 0); + }, + /** + * checks if a node is loaded (its children are available) + * @name is_loaded(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loaded : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.loaded; + }, + /** + * check if a node is currently loading (fetching children) + * @name is_loading(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loading : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.loading; + }, + /** + * check if a node is opened + * @name is_open(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_open : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.opened; + }, + /** + * check if a node is in a closed state + * @name is_closed(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_closed : function (obj) { + obj = this.get_node(obj); + return obj && this.is_parent(obj) && !obj.state.opened; + }, + /** + * check if a node has no children + * @name is_leaf(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_leaf : function (obj) { + return !this.is_parent(obj); + }, + /** + * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array. + * @name load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status + * @return {Boolean} + * @trigger load_node.jstree + */ + load_node : function (obj, callback) { + var k, l, i, j, c; + if($.isArray(obj)) { + this._load_nodes(obj.slice(), callback); + return true; + } + obj = this.get_node(obj); + if(!obj) { + if(callback) { callback.call(this, obj, false); } + return false; + } + // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again? + if(obj.state.loaded) { + obj.state.loaded = false; + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + for(k = 0, l = obj.children_d.length; k < l; k++) { + if(this._model.data[obj.children_d[k]].state.selected) { + c = true; + } + delete this._model.data[obj.children_d[k]]; + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + obj.children = []; + obj.children_d = []; + if(c) { + this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected }); + } + } + obj.state.failed = false; + obj.state.loading = true; + this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true); + this._load_node(obj, $.proxy(function (status) { + obj = this._model.data[obj.id]; + obj.state.loading = false; + obj.state.loaded = status; + obj.state.failed = !obj.state.loaded; + var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false; + for(i = 0, j = obj.children.length; i < j; i++) { + if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.state.loaded && dom && dom.length) { + dom.removeClass('jstree-closed jstree-open jstree-leaf'); + if (!has_children) { + dom.addClass('jstree-leaf'); + } + else { + if (obj.id !== '#') { + dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed'); + } + } + } + dom.removeClass("jstree-loading").attr('aria-busy',false); + /** + * triggered after a node is loaded + * @event + * @name load_node.jstree + * @param {Object} node the node that was loading + * @param {Boolean} status was the node loaded successfully + */ + this.trigger('load_node', { "node" : obj, "status" : status }); + if(callback) { + callback.call(this, obj, status); + } + }, this)); + return true; + }, + /** + * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally. + * @private + * @name _load_nodes(nodes [, callback]) + * @param {array} nodes + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes + */ + _load_nodes : function (nodes, callback, is_callback, force_reload) { + var r = true, + c = function () { this._load_nodes(nodes, callback, true); }, + m = this._model.data, i, j, tmp = []; + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) { + if(!this.is_loading(nodes[i])) { + this.load_node(nodes[i], c); + } + r = false; + } + } + if(r) { + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && m[nodes[i]].state.loaded) { + tmp.push(nodes[i]); + } + } + if(callback && !callback.done) { + callback.call(this, tmp); + callback.done = true; + } + } + }, + /** + * loads all unloaded nodes + * @name load_all([obj, callback]) + * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree + * @param {function} callback a function to be executed once loading all the nodes is complete, + * @trigger load_all.jstree + */ + load_all : function (obj, callback) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var to_load = [], + m = this._model.data, + c = m[obj.id].children_d, + i, j; + if(obj.state && !obj.state.loaded) { + to_load.push(obj.id); + } + for(i = 0, j = c.length; i < j; i++) { + if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) { + to_load.push(c[i]); + } + } + if(to_load.length) { + this._load_nodes(to_load, function () { + this.load_all(obj, callback); + }); + } + else { + /** + * triggered after a load_all call completes + * @event + * @name load_all.jstree + * @param {Object} node the recursively loaded node + */ + if(callback) { callback.call(this, obj); } + this.trigger('load_all', { "node" : obj }); + } + }, + /** + * handles the actual loading of a node. Used only internally. + * @private + * @name _load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status + * @return {Boolean} + */ + _load_node : function (obj, callback) { + var s = this.settings.core.data, t; + var notTextOrCommentNode = function notTextOrCommentNode () { + return this.nodeType !== 3 && this.nodeType !== 8; + }; + // use original HTML + if(!s) { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) { + callback.call(this, status); + }); + } + else { + return callback.call(this, false); + } + // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false); + } + if($.isFunction(s)) { + return s.call(this, obj, $.proxy(function (d) { + if(d === false) { + callback.call(this, false); + } + else { + this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) { + callback.call(this, status); + }); + } + // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d)); + }, this)); + } + if(typeof s === 'object') { + if(s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, obj); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, obj); + } + return $.ajax(s) + .done($.proxy(function (d,t,x) { + var type = x.getResponseHeader('Content-Type'); + if((type && type.indexOf('json') !== -1) || typeof d === "object") { + return this._append_json_data(obj, d, function (status) { callback.call(this, status); }); + //return callback.call(this, this._append_json_data(obj, d)); + } + if((type && type.indexOf('html') !== -1) || typeof d === "string") { + return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); }); + // return callback.call(this, this._append_html_data(obj, $(d))); + } + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + }, this)) + .fail($.proxy(function (f) { + callback.call(this, false); + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)); + } + t = ($.isArray(s) || $.isPlainObject(s)) ? JSON.parse(JSON.stringify(s)) : s; + if(obj.id === $.jstree.root) { + return this._append_json_data(obj, t, function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) ); + } + if(typeof s === 'string') { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) ); + } + return callback.call(this, false); + }, + /** + * adds a node to the list of nodes to redraw. Used only internally. + * @private + * @name _node_changed(obj [, callback]) + * @param {mixed} obj + */ + _node_changed : function (obj) { + obj = this.get_node(obj); + if(obj) { + this._model.changed.push(obj.id); + } + }, + /** + * appends HTML content to the tree. Used internally. + * @private + * @name _append_html_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the HTML string to parse and append + * @trigger model.jstree, changed.jstree + */ + _append_html_data : function (dom, data, cb) { + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + var dat = data.is('ul') ? data.children() : data, + par = dom.id, + chd = [], + dpc = [], + m = this._model.data, + p = m[par], + s = this._data.core.selected.length, + tmp, i, j; + dat.each($.proxy(function (i, v) { + tmp = this._parse_model_from_html($(v), par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + }, this)); + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + /** + * triggered when new data is inserted to the tree model + * @event + * @name model.jstree + * @param {Array} nodes an array of node IDs + * @param {String} parent the parent ID of the nodes + */ + this.trigger('model', { "nodes" : dpc, 'parent' : par }); + if(par !== $.jstree.root) { + this._node_changed(par); + this.redraw(); + } + else { + this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(this._data.core.selected.length !== s) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }, + /** + * appends JSON content to the tree. Used internally. + * @private + * @name _append_json_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the JSON object to parse and append + * @param {Boolean} force_processing internal param - do not set + * @trigger model.jstree, changed.jstree + */ + _append_json_data : function (dom, data, cb, force_processing) { + if(this.element === null) { return; } + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + // *%$@!!! + if(data.d) { + data = data.d; + if(typeof data === "string") { + data = JSON.parse(data); + } + } + if(!$.isArray(data)) { data = [data]; } + var w = null, + args = { + 'df' : this._model.default_state, + 'dat' : data, + 'par' : dom.id, + 'm' : this._model.data, + 't_id' : this._id, + 't_cnt' : this._cnt, + 'sel' : this._data.core.selected + }, + func = function (data, undefined) { + if(data.data) { data = data.data; } + var dat = data.dat, + par = data.par, + chd = [], + dpc = [], + add = [], + df = data.df, + t_id = data.t_id, + t_cnt = data.t_cnt, + m = data.m, + p = m[par], + sel = data.sel, + tmp, i, j, rslt, + parse_flat = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = parse_flat(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }, + parse_nest = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, tmp; + do { + tid = 'j' + t_id + '_' + (++t_cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = parse_nest(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }; + + if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) { + // Flat JSON support (for easy import from DB): + // 1) convert to object (foreach) + for(i = 0, j = dat.length; i < j; i++) { + if(!dat[i].children) { + dat[i].children = []; + } + m[dat[i].id.toString()] = dat[i]; + } + // 2) populate children (foreach) + for(i = 0, j = dat.length; i < j; i++) { + m[dat[i].parent.toString()].children.push(dat[i].id.toString()); + // populate parent.children_d + p.children_d.push(dat[i].id.toString()); + } + // 3) normalize && populate parents and children_d with recursion + for(i = 0, j = p.children.length; i < j; i++) { + tmp = parse_flat(m[p.children[i]], par, p.parents.concat()); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true; + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + else { + for(i = 0, j = dat.length; i < j; i++) { + tmp = parse_nest(dat[i], par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + } + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + if(typeof window === 'undefined' || typeof window.document === 'undefined') { + postMessage(rslt); + } + else { + return rslt; + } + }, + rslt = function (rslt, worker) { + if(this.element === null) { return; } + this._cnt = rslt.cnt; + var i, m = this._model.data; + for (i in m) { + if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) { + rslt.mod[i].state.loading = true; + } + } + this._model.data = rslt.mod; // breaks the reference in load_node - careful + + if(worker) { + var j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(); + m = this._model.data; + // if selection was changed while calculating in worker + if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) { + // deselect nodes that are no longer selected + for(i = 0, j = r.length; i < j; i++) { + if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) { + m[r[i]].state.selected = false; + } + } + // select nodes that were selected in the mean time + for(i = 0, j = s.length; i < j; i++) { + if($.inArray(s[i], r) === -1) { + m[s[i]].state.selected = true; + } + } + } + } + if(rslt.add.length) { + this._data.core.selected = this._data.core.selected.concat(rslt.add); + } + + this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par }); + + if(rslt.par !== $.jstree.root) { + this._node_changed(rslt.par); + this.redraw(); + } + else { + // this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(rslt.add.length) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }; + if(this.settings.core.worker && window.Blob && window.URL && window.Worker) { + try { + if(this._wrk === null) { + this._wrk = window.URL.createObjectURL( + new window.Blob( + ['self.onmessage = ' + func.toString()], + {type:"text/javascript"} + ) + ); + } + if(!this._data.core.working || force_processing) { + this._data.core.working = true; + w = new window.Worker(this._wrk); + w.onmessage = $.proxy(function (e) { + rslt.call(this, e.data, true); + try { w.terminate(); w = null; } catch(ignore) { } + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + }, this); + if(!args.par) { + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + else { + w.postMessage(args); + } + } + else { + this._data.core.worker_queue.push([dom, data, cb, true]); + } + } + catch(e) { + rslt.call(this, func(args), false); + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + } + else { + rslt.call(this, func(args), false); + } + }, + /** + * parses a node from a jQuery object and appends them to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_html(d [, p, ps]) + * @param {jQuery} d the jQuery object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_html : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = [].concat(ps); } + if(p) { ps.unshift(p); } + var c, e, m = this._model.data, + data = { + id : false, + text : false, + icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }, i, tmp, tid; + for(i in this._model.default_state) { + if(this._model.default_state.hasOwnProperty(i)) { + data.state[i] = this._model.default_state[i]; + } + } + tmp = $.vakata.attributes(d, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(!v.length) { return true; } + data.li_attr[i] = v; + if(i === 'id') { + data.id = v.toString(); + } + }); + tmp = d.children('a').first(); + if(tmp.length) { + tmp = $.vakata.attributes(tmp, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(v.length) { + data.a_attr[i] = v; + } + }); + } + tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone(); + tmp.children("ins, i, ul").remove(); + tmp = tmp.html(); + tmp = $('
          ').html(tmp); + data.text = this.settings.core.force_text ? tmp.text() : tmp.html(); + tmp = d.data(); + data.data = tmp ? $.extend(true, {}, tmp) : null; + data.state.opened = d.hasClass('jstree-open'); + data.state.selected = d.children('a').hasClass('jstree-clicked'); + data.state.disabled = d.children('a').hasClass('jstree-disabled'); + if(data.data && data.data.jstree) { + for(i in data.data.jstree) { + if(data.data.jstree.hasOwnProperty(i)) { + data.state[i] = data.data.jstree[i]; + } + } + } + tmp = d.children("a").children(".jstree-themeicon"); + if(tmp.length) { + data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel'); + } + if(data.state.icon !== undefined) { + data.icon = data.state.icon; + } + if(data.icon === undefined || data.icon === null || data.icon === "") { + data.icon = true; + } + tmp = d.children("ul").children("li"); + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + data.id = data.li_attr.id ? data.li_attr.id.toString() : tid; + if(tmp.length) { + tmp.each($.proxy(function (i, v) { + c = this._parse_model_from_html($(v), data.id, ps); + e = this._model.data[c]; + data.children.push(c); + if(e.children_d.length) { + data.children_d = data.children_d.concat(e.children_d); + } + }, this)); + data.children_d = data.children_d.concat(data.children); + } + else { + if(d.hasClass('jstree-closed')) { + data.state.loaded = false; + } + } + if(data.li_attr['class']) { + data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open',''); + } + if(data.a_attr['class']) { + data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled',''); + } + m[data.id] = data; + if(data.state.selected) { + this._data.core.selected.push(data.id); + } + return data.id; + }, + /** + * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_flat_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_flat_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + m = this._model.data, + df = this._model.default_state, + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * parses a node from a JSON object and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp; + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = this._parse_model_from_json(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * redraws all nodes that need to be redrawn. Used internally. + * @private + * @name _redraw() + * @trigger redraw.jstree + */ + _redraw : function () { + var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]), + f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused; + for(i = 0, j = nodes.length; i < j; i++) { + tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw); + if(tmp && this._model.force_full_redraw) { + f.appendChild(tmp); + } + } + if(this._model.force_full_redraw) { + f.className = this.get_container_ul()[0].className; + f.setAttribute('role','group'); + this.element.empty().append(f); + //this.get_container_ul()[0].appendChild(f); + } + if(fe !== null) { + tmp = this.get_node(fe, true); + if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) { + tmp.children('.jstree-anchor').focus(); + } + else { + this._data.core.focused = null; + } + } + this._model.force_full_redraw = false; + this._model.changed = []; + /** + * triggered after nodes are redrawn + * @event + * @name redraw.jstree + * @param {array} nodes the redrawn nodes + */ + this.trigger('redraw', { "nodes" : nodes }); + }, + /** + * redraws all nodes that need to be redrawn or optionally - the whole tree + * @name redraw([full]) + * @param {Boolean} full if set to `true` all nodes are redrawn. + */ + redraw : function (full) { + if(full) { + this._model.force_full_redraw = true; + } + //if(this._model.redraw_timeout) { + // clearTimeout(this._model.redraw_timeout); + //} + //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0); + this._redraw(); + }, + /** + * redraws a single node's children. Used internally. + * @private + * @name draw_children(node) + * @param {mixed} node the node whose children will be redrawn + */ + draw_children : function (node) { + var obj = this.get_node(node), + i = false, + j = false, + k = false, + d = document; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + node = this.get_node(node, true); + if(!node || !node.length) { return false; } // TODO: quick toggle + + node.children('.jstree-children').remove(); + node = node[0]; + if(obj.children.length && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], true, true)); + } + node.appendChild(k); + } + }, + /** + * redraws a single node. Used internally. + * @private + * @name redraw_node(node, deep, is_callback, force_render) + * @param {mixed} node the node to redraw + * @param {Boolean} deep should child nodes be redrawn too + * @param {Boolean} is_callback is this a recursion call + * @param {Boolean} force_render should children of closed parents be drawn anyway + */ + redraw_node : function (node, deep, is_callback, force_render) { + var obj = this.get_node(node), + par = false, + ind = false, + old = false, + i = false, + j = false, + k = false, + c = '', + d = document, + m = this._model.data, + f = false, + s = false, + tmp = null, + t = 0, + l = 0, + has_children = false, + last_sibling = false; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + deep = deep || obj.children.length === 0; + node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element); + if(!node) { + deep = true; + //node = d.createElement('LI'); + if(!is_callback) { + par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null; + if(par !== null && (!par || !m[obj.parent].state.opened)) { + return false; + } + ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children); + } + } + else { + node = $(node); + if(!is_callback) { + par = node.parent().parent()[0]; + if(par === this.element[0]) { + par = null; + } + ind = node.index(); + } + // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage + if(!deep && obj.children.length && !node.children('.jstree-children').length) { + deep = true; + } + if(!deep) { + old = node.children('.jstree-children')[0]; + } + f = node.children('.jstree-anchor')[0] === document.activeElement; + node.remove(); + //node = d.createElement('LI'); + //node = node[0]; + } + node = this._data.core.node.cloneNode(true); + // node is DOM, deep is boolean + + c = 'jstree-node '; + for(i in obj.li_attr) { + if(obj.li_attr.hasOwnProperty(i)) { + if(i === 'id') { continue; } + if(i !== 'class') { + node.setAttribute(i, obj.li_attr[i]); + } + else { + c += obj.li_attr[i]; + } + } + } + if(!obj.a_attr.id) { + obj.a_attr.id = obj.id + '_anchor'; + } + node.setAttribute('aria-selected', !!obj.state.selected); + node.setAttribute('aria-level', obj.parents.length); + node.setAttribute('aria-labelledby', obj.a_attr.id); + if(obj.state.disabled) { + node.setAttribute('aria-disabled', true); + } + + for(i = 0, j = obj.children.length; i < j; i++) { + if(!m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) { + i = $.inArray(obj.id, m[obj.parent].children); + last_sibling = obj.id; + if(i !== -1) { + i++; + for(j = m[obj.parent].children.length; i < j; i++) { + if(!m[m[obj.parent].children[i]].state.hidden) { + last_sibling = m[obj.parent].children[i]; + } + if(last_sibling !== obj.id) { + break; + } + } + } + } + + if(obj.state.hidden) { + c += ' jstree-hidden'; + } + if(obj.state.loaded && !has_children) { + c += ' jstree-leaf'; + } + else { + c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed'; + node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) ); + } + if(last_sibling === obj.id) { + c += ' jstree-last'; + } + node.id = obj.id; + node.className = c; + c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : ''); + for(j in obj.a_attr) { + if(obj.a_attr.hasOwnProperty(j)) { + if(j === 'href' && obj.a_attr[j] === '#') { continue; } + if(j !== 'class') { + node.childNodes[1].setAttribute(j, obj.a_attr[j]); + } + else { + c += ' ' + obj.a_attr[j]; + } + } + } + if(c.length) { + node.childNodes[1].className = 'jstree-anchor ' + c; + } + if((obj.icon && obj.icon !== true) || obj.icon === false) { + if(obj.icon === false) { + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden'; + } + else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) { + node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom'; + } + else { + node.childNodes[1].childNodes[0].style.backgroundImage = 'url("'+obj.icon+'")'; + node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center'; + node.childNodes[1].childNodes[0].style.backgroundSize = 'auto'; + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom'; + } + } + + if(this.settings.core.force_text) { + node.childNodes[1].appendChild(d.createTextNode(obj.text)); + } + else { + node.childNodes[1].innerHTML += obj.text; + } + + + if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], deep, true)); + } + node.appendChild(k); + } + if(old) { + node.appendChild(old); + } + if(!is_callback) { + // append back using par / ind + if(!par) { + par = this.element[0]; + } + for(i = 0, j = par.childNodes.length; i < j; i++) { + if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) { + tmp = par.childNodes[i]; + break; + } + } + if(!tmp) { + tmp = d.createElement('UL'); + tmp.setAttribute('role', 'group'); + tmp.className = 'jstree-children'; + par.appendChild(tmp); + } + par = tmp; + + if(ind < par.childNodes.length) { + par.insertBefore(node, par.childNodes[ind]); + } + else { + par.appendChild(node); + } + if(f) { + t = this.element[0].scrollTop; + l = this.element[0].scrollLeft; + node.childNodes[1].focus(); + this.element[0].scrollTop = t; + this.element[0].scrollLeft = l; + } + } + if(obj.state.opened && !obj.state.loaded) { + obj.state.opened = false; + setTimeout($.proxy(function () { + this.open_node(obj.id, false, 0); + }, this), 0); + } + return node; + }, + /** + * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready. + * @name open_node(obj [, callback, animation]) + * @param {mixed} obj the node to open + * @param {Function} callback a function to execute once the node is opened + * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger open_node.jstree, after_open.jstree, before_open.jstree + */ + open_node : function (obj, callback, animation) { + var t1, t2, d, t; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.open_node(obj[t1], callback, animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + if(!this.is_closed(obj)) { + if(callback) { + callback.call(this, obj, false); + } + return false; + } + if(!this.is_loaded(obj)) { + if(this.is_loading(obj)) { + return setTimeout($.proxy(function () { + this.open_node(obj, callback, animation); + }, this), 500); + } + this.load_node(obj, function (o, ok) { + return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false); + }); + } + else { + d = this.get_node(obj, true); + t = this; + if(d.length) { + if(animation && d.children(".jstree-children").length) { + d.children(".jstree-children").stop(true, true); + } + if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) { + this.draw_children(obj); + //d = this.get_node(obj, true); + } + if(!animation) { + this.trigger('before_open', { "node" : obj }); + d[0].className = d[0].className.replace('jstree-closed', 'jstree-open'); + d[0].setAttribute("aria-expanded", true); + } + else { + this.trigger('before_open', { "node" : obj }); + d + .children(".jstree-children").css("display","none").end() + .removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true) + .children(".jstree-children").stop(true, true) + .slideDown(animation, function () { + this.style.display = ""; + if (t.element) { + t.trigger("after_open", { "node" : obj }); + } + }); + } + } + obj.state.opened = true; + if(callback) { + callback.call(this, obj, true); + } + if(!d.length) { + /** + * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet) + * @event + * @name before_open.jstree + * @param {Object} node the opened node + */ + this.trigger('before_open', { "node" : obj }); + } + /** + * triggered when a node is opened (if there is an animation it will not be completed yet) + * @event + * @name open_node.jstree + * @param {Object} node the opened node + */ + this.trigger('open_node', { "node" : obj }); + if(!animation || !d.length) { + /** + * triggered when a node is opened and the animation is complete + * @event + * @name after_open.jstree + * @param {Object} node the opened node + */ + this.trigger("after_open", { "node" : obj }); + } + return true; + } + }, + /** + * opens every parent of a node (node should be loaded) + * @name _open_to(obj) + * @param {mixed} obj the node to reveal + * @private + */ + _open_to : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + var i, j, p = obj.parents; + for(i = 0, j = p.length; i < j; i+=1) { + if(i !== $.jstree.root) { + this.open_node(p[i], false, 0); + } + } + return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + }, + /** + * closes a node, hiding its children + * @name close_node(obj [, animation]) + * @param {mixed} obj the node to close + * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger close_node.jstree, after_close.jstree + */ + close_node : function (obj, animation) { + var t1, t2, t, d; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.close_node(obj[t1], animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(this.is_closed(obj)) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + t = this; + d = this.get_node(obj, true); + + obj.state.opened = false; + /** + * triggered when a node is closed (if there is an animation it will not be complete yet) + * @event + * @name close_node.jstree + * @param {Object} node the closed node + */ + this.trigger('close_node',{ "node" : obj }); + if(!d.length) { + /** + * triggered when a node is closed and the animation is complete + * @event + * @name after_close.jstree + * @param {Object} node the closed node + */ + this.trigger("after_close", { "node" : obj }); + } + else { + if(!animation) { + d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); + d.attr("aria-expanded", false).children('.jstree-children').remove(); + this.trigger("after_close", { "node" : obj }); + } + else { + d + .children(".jstree-children").attr("style","display:block !important").end() + .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) + .children(".jstree-children").stop(true, true).slideUp(animation, function () { + this.style.display = ""; + d.children('.jstree-children').remove(); + if (t.element) { + t.trigger("after_close", { "node" : obj }); + } + }); + } + } + }, + /** + * toggles a node - closing it if it is open, opening it if it is closed + * @name toggle_node(obj) + * @param {mixed} obj the node to toggle + */ + toggle_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.toggle_node(obj[t1]); + } + return true; + } + if(this.is_closed(obj)) { + return this.open_node(obj); + } + if(this.is_open(obj)) { + return this.close_node(obj); + } + }, + /** + * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready. + * @name open_all([obj, animation, original_obj]) + * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation + * @param {jQuery} reference to the node that started the process (internal use) + * @trigger open_all.jstree + */ + open_all : function (obj, animation, original_obj) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this; + if(!dom.length) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + if(this.is_closed(this._model.data[obj.children_d[i]])) { + this._model.data[obj.children_d[i]].state.opened = true; + } + } + return this.trigger('open_all', { "node" : obj }); + } + original_obj = original_obj || dom; + _this = this; + dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed'); + dom.each(function () { + _this.open_node( + this, + function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } }, + animation || 0 + ); + }); + if(original_obj.find('.jstree-closed').length === 0) { + /** + * triggered when an `open_all` call completes + * @event + * @name open_all.jstree + * @param {Object} node the opened node + */ + this.trigger('open_all', { "node" : this.get_node(original_obj) }); + } + }, + /** + * closes all nodes within a node (or the tree), revaling their children + * @name close_all([obj, animation]) + * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation + * @trigger close_all.jstree + */ + close_all : function (obj, animation) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), + _this = this, i, j; + if(dom.length) { + dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open'); + $(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); }); + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].state.opened = false; + } + /** + * triggered when an `close_all` call completes + * @event + * @name close_all.jstree + * @param {Object} node the closed node + */ + this.trigger('close_all', { "node" : obj }); + }, + /** + * checks if a node is disabled (not selectable) + * @name is_disabled(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_disabled : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.disabled; + }, + /** + * enables a node - so that it can be selected + * @name enable_node(obj) + * @param {mixed} obj the node to enable + * @trigger enable_node.jstree + */ + enable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = false; + this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false); + /** + * triggered when an node is enabled + * @event + * @name enable_node.jstree + * @param {Object} node the enabled node + */ + this.trigger('enable_node', { 'node' : obj }); + }, + /** + * disables a node - so that it can not be selected + * @name disable_node(obj) + * @param {mixed} obj the node to disable + * @trigger disable_node.jstree + */ + disable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = true; + this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true); + /** + * triggered when an node is disabled + * @event + * @name disable_node.jstree + * @param {Object} node the disabled node + */ + this.trigger('disable_node', { 'node' : obj }); + }, + /** + * determines if a node is hidden + * @name is_hidden(obj) + * @param {mixed} obj the node + */ + is_hidden : function (obj) { + obj = this.get_node(obj); + return obj.state.hidden === true; + }, + /** + * hides a node - it is still in the structure but will not be visible + * @name hide_node(obj) + * @param {mixed} obj the node to hide + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger hide_node.jstree + */ + hide_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(!obj.state.hidden) { + obj.state.hidden = true; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is hidden + * @event + * @name hide_node.jstree + * @param {Object} node the hidden node + */ + this.trigger('hide_node', { 'node' : obj }); + } + }, + /** + * shows a node + * @name show_node(obj) + * @param {mixed} obj the node to show + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger show_node.jstree + */ + show_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(obj.state.hidden) { + obj.state.hidden = false; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is shown + * @event + * @name show_node.jstree + * @param {Object} node the shown node + */ + this.trigger('show_node', { 'node' : obj }); + } + }, + /** + * hides all nodes + * @name hide_all() + * @trigger hide_all.jstree + */ + hide_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) { + m[i].state.hidden = true; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are hidden + * @event + * @name hide_all.jstree + * @param {Array} nodes the IDs of all hidden nodes + */ + this.trigger('hide_all', { 'nodes' : ids }); + return ids; + }, + /** + * shows all nodes + * @name show_all() + * @trigger show_all.jstree + */ + show_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) { + m[i].state.hidden = false; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are shown + * @event + * @name show_all.jstree + * @param {Array} nodes the IDs of all shown nodes + */ + this.trigger('show_all', { 'nodes' : ids }); + return ids; + }, + /** + * called when a node is selected by the user. Used internally. + * @private + * @name activate_node(obj, e) + * @param {mixed} obj the node + * @param {Object} e the related event + * @trigger activate_node.jstree, changed.jstree + */ + activate_node : function (obj, e) { + if(this.is_disabled(obj)) { + return false; + } + if(!e || typeof e !== 'object') { + e = {}; + } + + // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node + this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null; + if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; } + if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); } + + if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) { + if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) { + this.deselect_node(obj, false, e); + } + else { + this.deselect_all(true); + this.select_node(obj, false, false, e); + this._data.core.last_clicked = this.get_node(obj); + } + } + else { + if(e.shiftKey) { + var o = this.get_node(obj).id, + l = this._data.core.last_clicked.id, + p = this.get_node(this._data.core.last_clicked.parent).children, + c = false, + i, j; + for(i = 0, j = p.length; i < j; i += 1) { + // separate IFs work whem o and l are the same + if(p[i] === o) { + c = !c; + } + if(p[i] === l) { + c = !c; + } + if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) { + if (!this.is_hidden(p[i])) { + this.select_node(p[i], true, false, e); + } + } + else { + this.deselect_node(p[i], true, e); + } + } + this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e }); + } + else { + if(!this.is_selected(obj)) { + this.select_node(obj, false, false, e); + } + else { + this.deselect_node(obj, false, e); + } + } + } + /** + * triggered when an node is clicked or intercated with by the user + * @event + * @name activate_node.jstree + * @param {Object} node + * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object) + */ + this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e }); + }, + /** + * applies the hover state on a node, called when a node is hovered by the user. Used internally. + * @private + * @name hover_node(obj) + * @param {mixed} obj + * @trigger hover_node.jstree + */ + hover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || obj.children('.jstree-hovered').length) { + return false; + } + var o = this.element.find('.jstree-hovered'), t = this.element; + if(o && o.length) { this.dehover_node(o); } + + obj.children('.jstree-anchor').addClass('jstree-hovered'); + /** + * triggered when an node is hovered + * @event + * @name hover_node.jstree + * @param {Object} node + */ + this.trigger('hover_node', { 'node' : this.get_node(obj) }); + setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0); + }, + /** + * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally. + * @private + * @name dehover_node(obj) + * @param {mixed} obj + * @trigger dehover_node.jstree + */ + dehover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || !obj.children('.jstree-hovered').length) { + return false; + } + obj.children('.jstree-anchor').removeClass('jstree-hovered'); + /** + * triggered when an node is no longer hovered + * @event + * @name dehover_node.jstree + * @param {Object} node + */ + this.trigger('dehover_node', { 'node' : this.get_node(obj) }); + }, + /** + * select a node + * @name select_node(obj [, supress_event, prevent_open]) + * @param {mixed} obj an array can be used to select multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened + * @trigger select_node.jstree, changed.jstree + */ + select_node : function (obj, supress_event, prevent_open, e) { + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.select_node(obj[t1], supress_event, prevent_open, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.selected) { + obj.state.selected = true; + this._data.core.selected.push(obj.id); + if(!prevent_open) { + dom = this._open_to(obj); + } + if(dom && dom.length) { + dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked'); + } + /** + * triggered when an node is selected + * @event + * @name select_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this select_node + */ + this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + /** + * triggered when selection changes + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this changed event + */ + this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * deselect a node + * @name deselect_node(obj [, supress_event]) + * @param {mixed} obj an array can be used to deselect multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_node.jstree, changed.jstree + */ + deselect_node : function (obj, supress_event, e) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.deselect_node(obj[t1], supress_event, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.selected) { + obj.state.selected = false; + this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id); + if(dom.length) { + dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked'); + } + /** + * triggered when an node is deselected + * @event + * @name deselect_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this deselect_node + */ + this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * select all nodes in the tree + * @name select_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger select_all.jstree, changed.jstree + */ + select_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + this._data.core.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are selected + * @event + * @name select_all.jstree + * @param {Array} selected the current selection + */ + this.trigger('select_all', { 'selected' : this._data.core.selected }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * deselect all selected nodes + * @name deselect_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_all.jstree, changed.jstree + */ + deselect_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = false; + } + } + this._data.core.selected = []; + this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false); + /** + * triggered when all nodes are deselected + * @event + * @name deselect_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + */ + this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * checks if a node is selected + * @name is_selected(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_selected : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.state.selected; + }, + /** + * get an array of all selected nodes + * @name get_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_selected : function (full) { + return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice(); + }, + /** + * get an array of all top level selected nodes (ignoring children of selected nodes) + * @name get_top_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_top_selected : function (full) { + var tmp = this.get_selected(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }, + /** + * get an array of all bottom level selected nodes (ignoring selected parents) + * @name get_bottom_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_bottom_selected : function (full) { + var tmp = this.get_selected(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }, + /** + * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally. + * @name get_state() + * @private + * @return {Object} + */ + get_state : function () { + var state = { + 'core' : { + 'open' : [], + 'scroll' : { + 'left' : this.element.scrollLeft(), + 'top' : this.element.scrollTop() + }, + /*! + 'themes' : { + 'name' : this.get_theme(), + 'icons' : this._data.core.themes.icons, + 'dots' : this._data.core.themes.dots + }, + */ + 'selected' : [] + } + }, i; + for(i in this._model.data) { + if(this._model.data.hasOwnProperty(i)) { + if(i !== $.jstree.root) { + if(this._model.data[i].state.opened) { + state.core.open.push(i); + } + if(this._model.data[i].state.selected) { + state.core.selected.push(i); + } + } + } + } + return state; + }, + /** + * sets the state of the tree. Used internally. + * @name set_state(state [, callback]) + * @private + * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it. + * @param {Function} callback an optional function to execute once the state is restored. + * @trigger set_state.jstree + */ + set_state : function (state, callback) { + if(state) { + if(state.core) { + var res, n, t, _this, i; + if(state.core.open) { + if(!$.isArray(state.core.open) || !state.core.open.length) { + delete state.core.open; + this.set_state(state, callback); + } + else { + this._load_nodes(state.core.open, function (nodes) { + this.open_node(nodes, false, 0); + delete state.core.open; + this.set_state(state, callback); + }); + } + return false; + } + if(state.core.scroll) { + if(state.core.scroll && state.core.scroll.left !== undefined) { + this.element.scrollLeft(state.core.scroll.left); + } + if(state.core.scroll && state.core.scroll.top !== undefined) { + this.element.scrollTop(state.core.scroll.top); + } + delete state.core.scroll; + this.set_state(state, callback); + return false; + } + if(state.core.selected) { + _this = this; + this.deselect_all(); + $.each(state.core.selected, function (i, v) { + _this.select_node(v, false, true); + }); + delete state.core.selected; + this.set_state(state, callback); + return false; + } + for(i in state) { + if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) { + delete state[i]; + } + } + if($.isEmptyObject(state.core)) { + delete state.core; + this.set_state(state, callback); + return false; + } + } + if($.isEmptyObject(state)) { + state = null; + if(callback) { callback.call(this); } + /** + * triggered when a `set_state` call completes + * @event + * @name set_state.jstree + */ + this.trigger('set_state'); + return false; + } + return true; + } + return false; + }, + /** + * refreshes the tree - all nodes are reloaded with calls to `load_node`. + * @name refresh() + * @param {Boolean} skip_loading an option to skip showing the loading indicator + * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state + * @trigger refresh.jstree + */ + refresh : function (skip_loading, forget_state) { + this._data.core.state = forget_state === true ? {} : this.get_state(); + if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); } + this._cnt = 0; + this._model.data = {}; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + this._data.core.selected = []; + this._data.core.last_clicked = null; + this._data.core.focused = null; + + var c = this.get_container_ul()[0].className; + if(!skip_loading) { + this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + ""); + this.element.attr('aria-activedescendant','j'+this._id+'_loading'); + } + this.load_node($.jstree.root, function (o, s) { + if(s) { + this.get_container_ul()[0].className = c; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + this.set_state($.extend(true, {}, this._data.core.state), function () { + /** + * triggered when a `refresh` call completes + * @event + * @name refresh.jstree + */ + this.trigger('refresh'); + }); + } + this._data.core.state = null; + }); + }, + /** + * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. + * @name refresh_node(obj) + * @param {mixed} obj the node + * @trigger refresh_node.jstree + */ + refresh_node : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var opened = [], to_load = [], s = this._data.core.selected.concat([]); + to_load.push(obj.id); + if(obj.state.opened === true) { opened.push(obj.id); } + this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); + this._load_nodes(to_load, $.proxy(function (nodes) { + this.open_node(opened, false, 0); + this.select_node(s); + /** + * triggered when a node is refreshed + * @event + * @name refresh_node.jstree + * @param {Object} node - the refreshed node + * @param {Array} nodes - an array of the IDs of the nodes that were reloaded + */ + this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); + }, this), false, true); + }, + /** + * set (change) the ID of a node + * @name set_id(obj, id) + * @param {mixed} obj the node + * @param {String} id the new ID + * @return {Boolean} + * @trigger set_id.jstree + */ + set_id : function (obj, id) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var i, j, m = this._model.data, old = obj.id; + id = id.toString(); + // update parents (replace current ID with new one in children and children_d) + m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; + for(i = 0, j = obj.parents.length; i < j; i++) { + m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; + } + // update children (replace current ID with new one in parent and parents) + for(i = 0, j = obj.children.length; i < j; i++) { + m[obj.children[i]].parent = id; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; + } + i = $.inArray(obj.id, this._data.core.selected); + if(i !== -1) { this._data.core.selected[i] = id; } + // update model and obj itself (obj.id, this._model.data[KEY]) + i = this.get_node(obj.id, true); + if(i) { + i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); + if(this.element.attr('aria-activedescendant') === obj.id) { + this.element.attr('aria-activedescendant', id); + } + } + delete m[obj.id]; + obj.id = id; + obj.li_attr.id = id; + m[id] = obj; + /** + * triggered when a node id value is changed + * @event + * @name set_id.jstree + * @param {Object} node + * @param {String} old the old id + */ + this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); + return true; + }, + /** + * get the text value of a node + * @name get_text(obj) + * @param {mixed} obj the node + * @return {String} + */ + get_text : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.text; + }, + /** + * set the text value of a node. Used internally, please use `rename_node(obj, val)`. + * @private + * @name set_text(obj, val) + * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes + * @param {String} val the new text value + * @return {Boolean} + * @trigger set_text.jstree + */ + set_text : function (obj, val) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_text(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + obj.text = val; + if(this.get_node(obj, true).length) { + this.redraw_node(obj.id); + } + /** + * triggered when a node text value is changed + * @event + * @name set_text.jstree + * @param {Object} obj + * @param {String} text the new value + */ + this.trigger('set_text',{ "obj" : obj, "text" : val }); + return true; + }, + /** + * gets a JSON representation of a node (or the whole tree) + * @name get_json([obj, options]) + * @param {mixed} obj + * @param {Object} options + * @param {Boolean} options.no_state do not return state information + * @param {Boolean} options.no_id do not return ID + * @param {Boolean} options.no_children do not include children + * @param {Boolean} options.no_data do not include node data + * @param {Boolean} options.no_li_attr do not include LI attributes + * @param {Boolean} options.no_a_attr do not include A attributes + * @param {Boolean} options.flat return flat JSON instead of nested + * @return {Object} + */ + get_json : function (obj, options, flat) { + obj = this.get_node(obj || $.jstree.root); + if(!obj) { return false; } + if(options && options.flat && !flat) { flat = []; } + var tmp = { + 'id' : obj.id, + 'text' : obj.text, + 'icon' : this.get_icon(obj), + 'li_attr' : $.extend(true, {}, obj.li_attr), + 'a_attr' : $.extend(true, {}, obj.a_attr), + 'state' : {}, + 'data' : options && options.no_data ? false : $.extend(true, {}, obj.data) + //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), + }, i, j; + if(options && options.flat) { + tmp.parent = obj.parent; + } + else { + tmp.children = []; + } + if(!options || !options.no_state) { + for(i in obj.state) { + if(obj.state.hasOwnProperty(i)) { + tmp.state[i] = obj.state[i]; + } + } + } else { + delete tmp.state; + } + if(options && options.no_li_attr) { + delete tmp.li_attr; + } + if(options && options.no_a_attr) { + delete tmp.a_attr; + } + if(options && options.no_id) { + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + } + if(options && options.flat && obj.id !== $.jstree.root) { + flat.push(tmp); + } + if(!options || !options.no_children) { + for(i = 0, j = obj.children.length; i < j; i++) { + if(options && options.flat) { + this.get_json(obj.children[i], options, flat); + } + else { + tmp.children.push(this.get_json(obj.children[i], options)); + } + } + } + return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); + }, + /** + * create a new node (do not confuse with load_node) + * @name create_node([par, node, pos, callback, is_loaded]) + * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) + * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) + * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" + * @param {Function} callback a function to be called once the node is created + * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded + * @return {String} the ID of the newly create node + * @trigger model.jstree, create_node.jstree + */ + create_node : function (par, node, pos, callback, is_loaded) { + if(par === null) { par = $.jstree.root; } + par = this.get_node(par); + if(!par) { return false; } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); + } + if(!node) { node = { "text" : this.get_string('New node') }; } + if(typeof node === "string") { node = { "text" : node }; } + if(node.text === undefined) { node.text = this.get_string('New node'); } + var tmp, dpc, i, j; + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children); + par = tmp; + break; + case "after" : + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children) + 1; + par = tmp; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > par.children.length) { pos = par.children.length; } + if(!node.id) { node.id = true; } + if(!this.check("create_node", node, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, par.id, par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : par.id }); + + par.children_d = par.children_d.concat(dpc); + for(i = 0, j = par.parents.length; i < j; i++) { + this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); + } + node = tmp; + tmp = []; + for(i = 0, j = par.children.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = par.children[i]; + } + tmp[pos] = node.id; + par.children = tmp; + + this.redraw_node(par, true); + if(callback) { callback.call(this, this.get_node(node)); } + /** + * triggered when a node is created + * @event + * @name create_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the new node among the parent's children + */ + this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); + return node.id; + }, + /** + * set the text value of a node + * @name rename_node(obj, val) + * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name + * @param {String} val the new text value + * @return {Boolean} + * @trigger rename_node.jstree + */ + rename_node : function (obj, val) { + var t1, t2, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.rename_node(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.text; + if(!this.check("rename_node", obj, this.get_parent(obj), val)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) + /** + * triggered when a node is renamed + * @event + * @name rename_node.jstree + * @param {Object} node + * @param {String} text the new value + * @param {String} old the old value + */ + this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); + return true; + }, + /** + * remove a node + * @name delete_node(obj) + * @param {mixed} obj the node, you can pass an array to delete multiple nodes + * @return {Boolean} + * @trigger delete_node.jstree, changed.jstree + */ + delete_node : function (obj) { + var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.delete_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + par = this.get_node(obj.parent); + pos = $.inArray(obj.id, par.children); + c = false; + if(!this.check("delete_node", obj, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(pos !== -1) { + par.children = $.vakata.array_remove(par.children, pos); + } + tmp = obj.children_d.concat([]); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + for(k = 0, l = tmp.length; k < l; k++) { + if(this._model.data[tmp[k]].state.selected) { + c = true; + break; + } + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + /** + * triggered when a node is deleted + * @event + * @name delete_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + */ + this.trigger('delete_node', { "node" : obj, "parent" : par.id }); + if(c) { + this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); + } + for(k = 0, l = tmp.length; k < l; k++) { + delete this._model.data[tmp[k]]; + } + if($.inArray(this._data.core.focused, tmp) !== -1) { + this._data.core.focused = null; + top = this.element[0].scrollTop; + lft = this.element[0].scrollLeft; + if(par.id === $.jstree.root) { + if (this._model.data[$.jstree.root].children[0]) { + this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); + } + } + else { + this.get_node(par, true).children('.jstree-anchor').focus(); + } + this.element[0].scrollTop = top; + this.element[0].scrollLeft = lft; + } + this.redraw_node(par, true); + return true; + }, + /** + * check if an operation is premitted on the tree. Used internally. + * @private + * @name check(chk, obj, par, pos) + * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" + * @param {mixed} obj the node + * @param {mixed} par the parent + * @param {mixed} pos the position to insert at, or if "rename_node" - the new name + * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node + * @return {Boolean} + */ + check : function (chk, obj, par, pos, more) { + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, + chc = this.settings.core.check_callback; + if(chk === "move_node" || chk === "copy_node") { + if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + } + if(tmp && tmp.data) { tmp = tmp.data; } + if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { + if(tmp.functions[chk] === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return tmp.functions[chk]; + } + if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + return true; + }, + /** + * get the last error + * @name last_error() + * @return {Object} + */ + last_error : function () { + return this._data.core.last_error; + }, + /** + * move a node to a new parent + * @name move_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to move, pass an array to move multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger move_node.jstree + */ + move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(is_multi) { + if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { + if(old_ins) { old_ins.delete_node(obj); } + return tmp; + } + return false; + } + //var m = this._model.data; + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(obj.parent === new_par.id) { + dpc = new_par.children.concat(); + tmp = $.inArray(obj.id, dpc); + if(tmp !== -1) { + dpc = $.vakata.array_remove(dpc, tmp); + if(pos > tmp) { pos--; } + } + tmp = []; + for(i = 0, j = dpc.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = dpc[i]; + } + tmp[pos] = obj.id; + new_par.children = tmp; + this._node_changed(new_par.id); + this.redraw(new_par.id === $.jstree.root); + } + else { + // clean old parent and up + tmp = obj.children_d.concat(); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + dpc = []; + p = old_ins._model.data[obj.parents[i]].children_d; + for(k = 0, l = p.length; k < l; k++) { + if($.inArray(p[k], tmp) === -1) { + dpc.push(p[k]); + } + } + old_ins._model.data[obj.parents[i]].children_d = dpc; + } + old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = obj.id; + new_par.children = dpc; + new_par.children_d.push(obj.id); + new_par.children_d = new_par.children_d.concat(obj.children_d); + + // update object + obj.parent = new_par.id; + tmp = new_par.parents.concat(); + tmp.unshift(new_par.id); + p = obj.parents.length; + obj.parents = tmp; + + // update object children + tmp = tmp.concat(); + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); + Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); + } + + if(old_par === $.jstree.root || new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(old_par); + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(); + } + } + if(callback) { callback.call(this, obj, new_par, pos); } + /** + * triggered when a node is moved + * @event + * @name move_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the old position of the node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return obj.id; + }, + /** + * copy a node to a new parent + * @name copy_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to copy, pass an array to copy multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger model.jstree copy_node.jstree + */ + copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; + if(!node) { return false; } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = tmp.id; + new_par.children = dpc; + new_par.children_d.push(tmp.id); + new_par.children_d = new_par.children_d.concat(tmp.children_d); + + if(new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(new_par.id === $.jstree.root); + } + if(callback) { callback.call(this, tmp, new_par, pos); } + /** + * triggered when a node is copied + * @event + * @name copy_node.jstree + * @param {Object} node the copied node + * @param {Object} original the original node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the position of the original node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return tmp.id; + }, + /** + * cut a node (a later call to `paste(obj)` would move the node) + * @name cut(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger cut.jstree + */ + cut : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'move_node'; + /** + * triggered when nodes are added to the buffer for moving + * @event + * @name cut.jstree + * @param {Array} node + */ + this.trigger('cut', { "node" : obj }); + }, + /** + * copy a node (a later call to `paste(obj)` would copy the node) + * @name copy(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger copy.jstree + */ + copy : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'copy_node'; + /** + * triggered when nodes are added to the buffer for copying + * @event + * @name copy.jstree + * @param {Array} node + */ + this.trigger('copy', { "node" : obj }); + }, + /** + * get the current buffer (any nodes that are waiting for a paste operation) + * @name get_buffer() + * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) + */ + get_buffer : function () { + return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; + }, + /** + * check if there is something in the buffer to paste + * @name can_paste() + * @return {Boolean} + */ + can_paste : function () { + return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; + }, + /** + * copy or move the previously cut or copied nodes to a new parent + * @name paste(obj [, pos]) + * @param {mixed} obj the new parent + * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` + * @trigger paste.jstree + */ + paste : function (obj, pos) { + obj = this.get_node(obj); + if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } + if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { + /** + * triggered when paste is invoked + * @event + * @name paste.jstree + * @param {String} parent the ID of the receiving node + * @param {Array} node the nodes in the buffer + * @param {String} mode the performed operation - "copy_node" or "move_node" + */ + this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); + } + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + }, + /** + * clear the buffer of previously copied or cut nodes + * @name clear_buffer() + * @trigger clear_buffer.jstree + */ + clear_buffer : function () { + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + /** + * triggered when the copy / cut buffer is cleared + * @event + * @name clear_buffer.jstree + */ + this.trigger('clear_buffer'); + }, + /** + * put a node in edit mode (input field to rename the node) + * @name edit(obj [, default_text, callback]) + * @param {mixed} obj + * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) + * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text + */ + edit : function (obj, default_text, callback) { + var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; + obj = this.get_node(obj); + if(!obj) { return false; } + if(this.settings.core.check_callback === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' }; + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + tmp = obj; + default_text = typeof default_text === 'string' ? default_text : obj.text; + this.set_text(obj, ""); + obj = this._open_to(obj); + tmp.text = default_text; + + rtl = this._data.core.rtl; + w = this.element.width(); + this._data.core.focused = tmp.id; + a = obj.children('.jstree-anchor').focus(); + s = $(''); + /*! + oi = obj.children("i:visible"), + ai = a.children("i:visible"), + w1 = oi.width() * oi.length, + w2 = ai.width() * ai.length, + */ + t = default_text; + h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); + h2 = $("<"+"input />", { + "value" : t, + "class" : "jstree-rename-input", + // "size" : t.length, + "css" : { + "padding" : "0", + "border" : "1px solid silver", + "box-sizing" : "border-box", + "display" : "inline-block", + "height" : (this._data.core.li_height) + "px", + "lineHeight" : (this._data.core.li_height) + "px", + "width" : "150px" // will be set a bit further down + }, + "blur" : $.proxy(function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var i = s.children(".jstree-rename-input"), + v = i.val(), + f = this.settings.core.force_text, + nv; + if(v === "") { v = t; } + h1.remove(); + s.replaceWith(a); + s.remove(); + t = f ? t : $('
          ').append($.parseHTML(t)).html(); + this.set_text(obj, t); + nv = !!this.rename_node(obj, f ? $('
          ').text(v).text() : $('
          ').append($.parseHTML(v)).html()); + if(!nv) { + this.set_text(obj, t); // move this up? and fix #483 + } + this._data.core.focused = tmp.id; + setTimeout($.proxy(function () { + var node = this.get_node(tmp.id, true); + if(node.length) { + this._data.core.focused = tmp.id; + node.children('.jstree-anchor').focus(); + } + }, this), 0); + if(callback) { + callback.call(this, tmp, nv, cancel); + } + h2 = null; + }, this), + "keydown" : function (e) { + var key = e.which; + if(key === 27) { + cancel = true; + this.value = t; + } + if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { + e.stopImmediatePropagation(); + } + if(key === 27 || key === 13) { + e.preventDefault(); + this.blur(); + } + }, + "click" : function (e) { e.stopImmediatePropagation(); }, + "mousedown" : function (e) { e.stopImmediatePropagation(); }, + "keyup" : function (e) { + h2.width(Math.min(h1.text("pW" + this.value).width(),w)); + }, + "keypress" : function(e) { + if(e.which === 13) { return false; } + } + }); + fn = { + fontFamily : a.css('fontFamily') || '', + fontSize : a.css('fontSize') || '', + fontWeight : a.css('fontWeight') || '', + fontStyle : a.css('fontStyle') || '', + fontStretch : a.css('fontStretch') || '', + fontVariant : a.css('fontVariant') || '', + letterSpacing : a.css('letterSpacing') || '', + wordSpacing : a.css('wordSpacing') || '' + }; + s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); + a.replaceWith(s); + h1.css(fn); + h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); + $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { + if (h2 && e.target !== h2) { + $(h2).blur(); + } + }); + }, + + + /** + * changes the theme + * @name set_theme(theme_name [, theme_url]) + * @param {String} theme_name the name of the new theme to apply + * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. + * @trigger set_theme.jstree + */ + set_theme : function (theme_name, theme_url) { + if(!theme_name) { return false; } + if(theme_url === true) { + var dir = this.settings.core.themes.dir; + if(!dir) { dir = $.jstree.path + '/themes'; } + theme_url = dir + '/' + theme_name + '/style.css'; + } + if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { + $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); + themes_loaded.push(theme_url); + } + if(this._data.core.themes.name) { + this.element.removeClass('jstree-' + this._data.core.themes.name); + } + this._data.core.themes.name = theme_name; + this.element.addClass('jstree-' + theme_name); + this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); + /** + * triggered when a theme is set + * @event + * @name set_theme.jstree + * @param {String} theme the new theme + */ + this.trigger('set_theme', { 'theme' : theme_name }); + }, + /** + * gets the name of the currently applied theme name + * @name get_theme() + * @return {String} + */ + get_theme : function () { return this._data.core.themes.name; }, + /** + * changes the theme variant (if the theme has variants) + * @name set_theme_variant(variant_name) + * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) + */ + set_theme_variant : function (variant_name) { + if(this._data.core.themes.variant) { + this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + this._data.core.themes.variant = variant_name; + if(variant_name) { + this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + }, + /** + * gets the name of the currently applied theme variant + * @name get_theme() + * @return {String} + */ + get_theme_variant : function () { return this._data.core.themes.variant; }, + /** + * shows a striped background on the container (if the theme supports it) + * @name show_stripes() + */ + show_stripes : function () { + this._data.core.themes.stripes = true; + this.get_container_ul().addClass("jstree-striped"); + /** + * triggered when stripes are shown + * @event + * @name show_stripes.jstree + */ + this.trigger('show_stripes'); + }, + /** + * hides the striped background on the container + * @name hide_stripes() + */ + hide_stripes : function () { + this._data.core.themes.stripes = false; + this.get_container_ul().removeClass("jstree-striped"); + /** + * triggered when stripes are hidden + * @event + * @name hide_stripes.jstree + */ + this.trigger('hide_stripes'); + }, + /** + * toggles the striped background on the container + * @name toggle_stripes() + */ + toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, + /** + * shows the connecting dots (if the theme supports it) + * @name show_dots() + */ + show_dots : function () { + this._data.core.themes.dots = true; + this.get_container_ul().removeClass("jstree-no-dots"); + /** + * triggered when dots are shown + * @event + * @name show_dots.jstree + */ + this.trigger('show_dots'); + }, + /** + * hides the connecting dots + * @name hide_dots() + */ + hide_dots : function () { + this._data.core.themes.dots = false; + this.get_container_ul().addClass("jstree-no-dots"); + /** + * triggered when dots are hidden + * @event + * @name hide_dots.jstree + */ + this.trigger('hide_dots'); + }, + /** + * toggles the connecting dots + * @name toggle_dots() + */ + toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, + /** + * show the node icons + * @name show_icons() + */ + show_icons : function () { + this._data.core.themes.icons = true; + this.get_container_ul().removeClass("jstree-no-icons"); + /** + * triggered when icons are shown + * @event + * @name show_icons.jstree + */ + this.trigger('show_icons'); + }, + /** + * hide the node icons + * @name hide_icons() + */ + hide_icons : function () { + this._data.core.themes.icons = false; + this.get_container_ul().addClass("jstree-no-icons"); + /** + * triggered when icons are hidden + * @event + * @name hide_icons.jstree + */ + this.trigger('hide_icons'); + }, + /** + * toggle the node icons + * @name toggle_icons() + */ + toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, + /** + * show the node ellipsis + * @name show_icons() + */ + show_ellipsis : function () { + this._data.core.themes.ellipsis = true; + this.get_container_ul().addClass("jstree-ellipsis"); + /** + * triggered when ellisis is shown + * @event + * @name show_ellipsis.jstree + */ + this.trigger('show_ellipsis'); + }, + /** + * hide the node ellipsis + * @name hide_ellipsis() + */ + hide_ellipsis : function () { + this._data.core.themes.ellipsis = false; + this.get_container_ul().removeClass("jstree-ellipsis"); + /** + * triggered when ellisis is hidden + * @event + * @name hide_ellipsis.jstree + */ + this.trigger('hide_ellipsis'); + }, + /** + * toggle the node ellipsis + * @name toggle_icons() + */ + toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, + /** + * set the node icon for a node + * @name set_icon(obj, icon) + * @param {mixed} obj + * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + */ + set_icon : function (obj, icon) { + var t1, t2, dom, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_icon(obj[t1], icon); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.icon; + obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; + dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); + if(icon === false) { + this.hide_icon(obj); + } + else if(icon === true || icon === null || icon === undefined || icon === '') { + dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); + if(old === false) { this.show_icon(obj); } + } + else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { + dom.removeClass(old).css("background",""); + dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + else { + dom.removeClass(old).css("background",""); + dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + return true; + }, + /** + * get the node icon for a node + * @name get_icon(obj) + * @param {mixed} obj + * @return {String} + */ + get_icon : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.icon; + }, + /** + * hide the icon on an individual node + * @name hide_icon(obj) + * @param {mixed} obj + */ + hide_icon : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + obj.icon = false; + this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); + return true; + }, + /** + * show the icon on an individual node + * @name show_icon(obj) + * @param {mixed} obj + */ + show_icon : function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + dom = this.get_node(obj, true); + obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; + if(!obj.icon) { obj.icon = true; } + dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); + return true; + } + }; + + // helpers + $.vakata = {}; + // collect attributes + $.vakata.attributes = function(node, with_values) { + node = $(node)[0]; + var attr = with_values ? {} : []; + if(node && node.attributes) { + $.each(node.attributes, function (i, v) { + if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } + if(v.value !== null && $.trim(v.value) !== '') { + if(with_values) { attr[v.name] = v.value; } + else { attr.push(v.name); } + } + }); + } + return attr; + }; + $.vakata.array_unique = function(array) { + var a = [], i, j, l, o = {}; + for(i = 0, l = array.length; i < l; i++) { + if(o[array[i]] === undefined) { + a.push(array[i]); + o[array[i]] = true; + } + } + return a; + }; + // remove item from array + $.vakata.array_remove = function(array, from) { + array.splice(from, 1); + return array; + //var rest = array.slice((to || from) + 1 || array.length); + //array.length = from < 0 ? array.length + from : from; + //array.push.apply(array, rest); + //return array; + }; + // remove item from array + $.vakata.array_remove_item = function(array, item) { + var tmp = $.inArray(item, array); + return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; + }; + $.vakata.array_filter = function(c,a,b,d,e) { + if (c.filter) { + return c.filter(a, b); + } + d=[]; + for (e in c) { + if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { + d.push(c[e]); + } + } + return d; + }; +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js new file mode 100644 index 0000000000..d202a3eca5 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js @@ -0,0 +1,137 @@ +/** + * ### Massload plugin + * + * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.massload', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.massload) { return; } + + /** + * massload configuration + * + * It is possible to set this to a standard jQuery-like AJAX config. + * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. + * + * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. + * + * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. + * + * { + * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], + * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] + * } + * + * @name $.jstree.defaults.massload + * @plugin massload + */ + $.jstree.defaults.massload = null; + $.jstree.plugins.massload = function (options, parent) { + this.init = function (el, options) { + this._data.massload = {}; + parent.init.call(this, el, options); + }; + this._load_nodes = function (nodes, callback, is_callback, force_reload) { + var s = this.settings.massload, + nodesString = JSON.stringify(nodes), + toLoad = [], + m = this._model.data, + i, j, dom; + if (!is_callback) { + for(i = 0, j = nodes.length; i < j; i++) { + if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { + toLoad.push(nodes[i]); + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.addClass("jstree-loading").attr('aria-busy',true); + } + } + } + this._data.massload = {}; + if (toLoad.length) { + if($.isFunction(s)) { + return s.call(this, toLoad, $.proxy(function (data) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + if(typeof s === 'object' && s && s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, toLoad); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, toLoad); + } + return $.ajax(s) + .done($.proxy(function (data,t,x) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)) + .fail($.proxy(function (f) { + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + } + } + return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }; + this._load_node = function (obj, callback) { + var data = this._data.massload[obj.id], + rslt = null, dom; + if(data) { + rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( + obj, + typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, + function (status) { callback.call(this, status); } + ); + dom = this.get_node(obj.id, true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + delete this._data.massload[obj.id]; + return rslt; + } + return parent._load_node.call(this, obj, callback); + }; + }; +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js new file mode 100644 index 0000000000..21c3e7923a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js @@ -0,0 +1,421 @@ +/** + * ### Search plugin + * + * Adds search functionality to jsTree. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.search', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.search) { return; } + + /** + * stores all defaults for the search plugin + * @name $.jstree.defaults.search + * @plugin search + */ + $.jstree.defaults.search = { + /** + * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. + * + * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. + * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to + * @name $.jstree.defaults.search.ajax + * @plugin search + */ + ajax : false, + /** + * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. + * @name $.jstree.defaults.search.fuzzy + * @plugin search + */ + fuzzy : false, + /** + * Indicates if the search should be case sensitive. Default is `false`. + * @name $.jstree.defaults.search.case_sensitive + * @plugin search + */ + case_sensitive : false, + /** + * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches + * @plugin search + */ + show_only_matches : false, + /** + * Indicates if the children of matched element are shown (when show_only_matches is true) + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches_children + * @plugin search + */ + show_only_matches_children : false, + /** + * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. + * @name $.jstree.defaults.search.close_opened_onclear + * @plugin search + */ + close_opened_onclear : true, + /** + * Indicates if only leaf nodes should be included in search results. Default is `false`. + * @name $.jstree.defaults.search.search_leaves_only + * @plugin search + */ + search_leaves_only : false, + /** + * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). + * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. + * @name $.jstree.defaults.search.search_callback + * @plugin search + */ + search_callback : false + }; + + $.jstree.plugins.search = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this._data.search.str = ""; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = false; + this._data.search.smc = false; + this._data.search.hdn = []; + + this.element + .on("search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + var m = this._model.data, i, j, p = [], k, l; + for(i = 0, j = data.res.length; i < j; i++) { + if(m[data.res[i]] && !m[data.res[i]].state.hidden) { + p.push(data.res[i]); + p = p.concat(m[data.res[i]].parents); + if(this._data.search.smc) { + for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { + if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { + p.push(m[data.res[i]].children_d[k]); + } + } + } + } + } + p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); + this._data.search.hdn = this.hide_all(true); + this.show_node(p, true); + this.redraw(true); + } + }, this)) + .on("clear_search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + this.show_node(this._data.search.hdn, true); + this.redraw(true); + } + }, this)); + }; + /** + * used to search the tree nodes for a given string + * @name search(str [, skip_async]) + * @param {String} str the search string + * @param {Boolean} skip_async if set to true server will not be queried even if configured + * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) + * @param {mixed} inside an optional node to whose children to limit the search + * @param {Boolean} append if set to true the results of this search are appended to the previous search + * @plugin search + * @trigger search.jstree + */ + this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { + if(str === false || $.trim(str.toString()) === "") { + return this.clear_search(); + } + inside = this.get_node(inside); + inside = inside && inside.id ? inside.id : null; + str = str.toString(); + var s = this.settings.search, + a = s.ajax ? s.ajax : false, + m = this._model.data, + f = null, + r = [], + p = [], i, j; + if(this._data.search.res.length && !append) { + this.clear_search(); + } + if(show_only_matches === undefined) { + show_only_matches = s.show_only_matches; + } + if(show_only_matches_children === undefined) { + show_only_matches_children = s.show_only_matches_children; + } + if(!skip_async && a !== false) { + if($.isFunction(a)) { + return a.call(this, str, $.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this), inside); + } + else { + a = $.extend({}, a); + if(!a.data) { a.data = {}; } + a.data.str = str; + if(inside) { + a.data.inside = inside; + } + if (this._data.search.lastRequest) { + this._data.search.lastRequest.abort(); + } + this._data.search.lastRequest = $.ajax(a) + .fail($.proxy(function () { + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)) + .done($.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this)); + return this._data.search.lastRequest; + } + } + if(!append) { + this._data.search.str = str; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = show_only_matches; + this._data.search.smc = show_only_matches_children; + } + + f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); + $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { + var v = m[i]; + if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { + r.push(i); + p = p.concat(v.parents); + } + }); + if(r.length) { + p = $.vakata.array_unique(p); + for(i = 0, j = p.length; i < j; i++) { + if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { + this._data.search.opn.push(p[i]); + } + } + if(!append) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); + this._data.search.res = r; + } + else { + this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); + this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); + } + this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); + } + /** + * triggered after search is complete + * @event + * @name search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes + * @param {String} str the search string + * @param {Array} res a collection of objects represeing the matching nodes + * @plugin search + */ + this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); + }; + /** + * used to clear the last search (removes classes and shows all nodes if filtering is on) + * @name clear_search() + * @plugin search + * @trigger clear_search.jstree + */ + this.clear_search = function () { + if(this.settings.search.close_opened_onclear) { + this.close_node(this._data.search.opn, 0); + } + /** + * triggered after search is complete + * @event + * @name clear_search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) + * @param {String} str the search string (the last search string) + * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) + * @plugin search + */ + this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); + if(this._data.search.res.length) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { + return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); + }).join(', #'))); + this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); + } + this._data.search.str = ""; + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.dom = $(); + }; + + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + if($.inArray(obj.id, this._data.search.res) !== -1) { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.className += ' jstree-search'; + } + } + } + return obj; + }; + }; + + // helpers + (function ($) { + // from http://kiro.me/projects/fuse.html + $.vakata.search = function(pattern, txt, options) { + options = options || {}; + options = $.extend({}, $.vakata.search.defaults, options); + if(options.fuzzy !== false) { + options.fuzzy = true; + } + pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); + var MATCH_LOCATION = options.location, + MATCH_DISTANCE = options.distance, + MATCH_THRESHOLD = options.threshold, + patternLen = pattern.length, + matchmask, pattern_alphabet, match_bitapScore, search; + if(patternLen > 32) { + options.fuzzy = false; + } + if(options.fuzzy) { + matchmask = 1 << (patternLen - 1); + pattern_alphabet = (function () { + var mask = {}, + i = 0; + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] = 0; + } + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); + } + return mask; + }()); + match_bitapScore = function (e, x) { + var accuracy = e / patternLen, + proximity = Math.abs(MATCH_LOCATION - x); + if(!MATCH_DISTANCE) { + return proximity ? 1.0 : accuracy; + } + return accuracy + (proximity / MATCH_DISTANCE); + }; + } + search = function (text) { + text = options.caseSensitive ? text : text.toLowerCase(); + if(pattern === text || text.indexOf(pattern) !== -1) { + return { + isMatch: true, + score: 0 + }; + } + if(!options.fuzzy) { + return { + isMatch: false, + score: 1 + }; + } + var i, j, + textLen = text.length, + scoreThreshold = MATCH_THRESHOLD, + bestLoc = text.indexOf(pattern, MATCH_LOCATION), + binMin, binMid, + binMax = patternLen + textLen, + lastRd, start, finish, rd, charMatch, + score = 1, + locations = []; + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + } + } + bestLoc = -1; + for (i = 0; i < patternLen; i++) { + binMin = 0; + binMid = binMax; + while (binMin < binMid) { + if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { + binMin = binMid; + } else { + binMax = binMid; + } + binMid = Math.floor((binMax - binMin) / 2 + binMin); + } + binMax = binMid; + start = Math.max(1, MATCH_LOCATION - binMid + 1); + finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; + rd = new Array(finish + 2); + rd[finish + 1] = (1 << i) - 1; + for (j = finish; j >= start; j--) { + charMatch = pattern_alphabet[text.charAt(j - 1)]; + if (i === 0) { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; + } else { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; + } + if (rd[j] & matchmask) { + score = match_bitapScore(i, j - 1); + if (score <= scoreThreshold) { + scoreThreshold = score; + bestLoc = j - 1; + locations.push(bestLoc); + if (bestLoc > MATCH_LOCATION) { + start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); + } else { + break; + } + } + } + } + if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { + break; + } + lastRd = rd; + } + return { + isMatch: bestLoc >= 0, + score: score + }; + }; + return txt === true ? { 'search' : search } : search(txt); + }; + $.vakata.search.defaults = { + location : 0, + distance : 100, + threshold : 0.6, + fuzzy : false, + caseSensitive : false + }; + }($)); + + // include the search plugin by default + // $.jstree.defaults.plugins.push("search"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js new file mode 100644 index 0000000000..94f8b39014 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js @@ -0,0 +1,74 @@ +/** + * ### Sort plugin + * + * Automatically sorts all siblings in the tree according to a sorting function. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.sort', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.sort) { return; } + + /** + * the settings function used to sort the nodes. + * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. + * @name $.jstree.defaults.sort + * @plugin sort + */ + $.jstree.defaults.sort = function (a, b) { + //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b); + return this.get_text(a) > this.get_text(b) ? 1 : -1; + }; + $.jstree.plugins.sort = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("model.jstree", $.proxy(function (e, data) { + this.sort(data.parent, true); + }, this)) + .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent || data.node.parent, false); + this.redraw_node(data.parent || data.node.parent, true); + }, this)) + .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent, false); + this.redraw_node(data.parent, true); + }, this)); + }; + /** + * used to sort a node's children + * @private + * @name sort(obj [, deep]) + * @param {mixed} obj the node + * @param {Boolean} deep if set to `true` nodes are sorted recursively. + * @plugin sort + * @trigger search.jstree + */ + this.sort = function (obj, deep) { + var i, j; + obj = this.get_node(obj); + if(obj && obj.children && obj.children.length) { + obj.children.sort($.proxy(this.settings.sort, this)); + if(deep) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + this.sort(obj.children_d[i], false); + } + } + } + }; + }; + + // include the sort plugin by default + // $.jstree.defaults.plugins.push("sort"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js new file mode 100644 index 0000000000..f87cf4fb64 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js @@ -0,0 +1,125 @@ +/** + * ### State plugin + * + * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.state', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.state) { return; } + + var to = false; + /** + * stores all defaults for the state plugin + * @name $.jstree.defaults.state + * @plugin state + */ + $.jstree.defaults.state = { + /** + * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. + * @name $.jstree.defaults.state.key + * @plugin state + */ + key : 'jstree', + /** + * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. + * @name $.jstree.defaults.state.events + * @plugin state + */ + events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', + /** + * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. + * @name $.jstree.defaults.state.ttl + * @plugin state + */ + ttl : false, + /** + * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. + * @name $.jstree.defaults.state.filter + * @plugin state + */ + filter : false + }; + $.jstree.plugins.state = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + var bind = $.proxy(function () { + this.element.on(this.settings.state.events, $.proxy(function () { + if(to) { clearTimeout(to); } + to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); + }, this)); + /** + * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). + * @event + * @name state_ready.jstree + * @plugin state + */ + this.trigger('state_ready'); + }, this); + this.element + .on("ready.jstree", $.proxy(function (e, data) { + this.element.one("restore_state.jstree", bind); + if(!this.restore_state()) { bind(); } + }, this)); + }; + /** + * save the state + * @name save_state() + * @plugin state + */ + this.save_state = function () { + var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; + $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); + }; + /** + * restore the state from the user's computer + * @name restore_state() + * @plugin state + */ + this.restore_state = function () { + var k = $.vakata.storage.get(this.settings.state.key); + if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } + if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } + if(!!k && k.state) { k = k.state; } + if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } + if(!!k) { + this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); + this.set_state(k); + return true; + } + return false; + }; + /** + * clear the state on the user's computer + * @name clear_state() + * @plugin state + */ + this.clear_state = function () { + return $.vakata.storage.del(this.settings.state.key); + }; + }; + + (function ($, undefined) { + $.vakata.storage = { + // simply specifying the functions in FF throws an error + set : function (key, val) { return window.localStorage.setItem(key, val); }, + get : function (key) { return window.localStorage.getItem(key); }, + del : function (key) { return window.localStorage.removeItem(key); } + }; + }($)); + + // include the state plugin by default + // $.jstree.defaults.plugins.push("state"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js new file mode 100644 index 0000000000..706829a9d0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js @@ -0,0 +1,372 @@ +/** + * ### Types plugin + * + * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.types', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.types) { return; } + + /** + * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). + * + * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. + * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. + * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. + * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. + * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) + * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) + * + * There are two predefined types: + * + * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. + * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. + * + * @name $.jstree.defaults.types + * @plugin types + */ + $.jstree.defaults.types = { + 'default' : {} + }; + $.jstree.defaults.types[$.jstree.root] = {}; + + $.jstree.plugins.types = function (options, parent) { + this.init = function (el, options) { + var i, j; + if(options && options.types && options.types['default']) { + for(i in options.types) { + if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { + for(j in options.types['default']) { + if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { + options.types[i][j] = options.types['default'][j]; + } + } + } + } + } + parent.init.call(this, el, options); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.refresh = function (skip_loading, forget_state) { + parent.refresh.call(this, skip_loading, forget_state); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.bind = function () { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + dpc = data.nodes, + t = this.settings.types, + i, j, c = 'default', k; + for(i = 0, j = dpc.length; i < j; i++) { + c = 'default'; + if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { + c = m[dpc[i]].original.type; + } + if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { + c = m[dpc[i]].data.jstree.type; + } + m[dpc[i]].type = c; + if(m[dpc[i]].icon === true && t[c].icon !== undefined) { + m[dpc[i]].icon = t[c].icon; + } + if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { + for (k in t[c].li_attr) { + if (t[c].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].li_attr[k] === undefined) { + m[dpc[i]].li_attr[k] = t[c].li_attr[k]; + } + else if (k === 'class') { + m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; + } + } + } + } + if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { + for (k in t[c].a_attr) { + if (t[c].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].a_attr[k] === undefined) { + m[dpc[i]].a_attr[k] = t[c].a_attr[k]; + } + else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { + m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; + } + else if (k === 'class') { + m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; + } + } + } + } + } + m[$.jstree.root].type = $.jstree.root; + }, this)); + parent.bind.call(this); + }; + this.get_json = function (obj, options, flat) { + var i, j, + m = this._model.data, + opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, + tmp = parent.get_json.call(this, obj, opt, flat); + if(tmp === false) { return false; } + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; + if(options && options.no_id) { + delete tmp[i].id; + if(tmp[i].li_attr && tmp[i].li_attr.id) { + delete tmp[i].li_attr.id; + } + if(tmp[i].a_attr && tmp[i].a_attr.id) { + delete tmp[i].a_attr.id; + } + } + } + } + else { + tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; + if(options && options.no_id) { + tmp = this._delete_ids(tmp); + } + } + return tmp; + }; + this._delete_ids = function (tmp) { + if($.isArray(tmp)) { + for(var i = 0, j = tmp.length; i < j; i++) { + tmp[i] = this._delete_ids(tmp[i]); + } + return tmp; + } + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + if(tmp.children && $.isArray(tmp.children)) { + tmp.children = this._delete_ids(tmp.children); + } + return tmp; + }; + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; + m = m && m._model && m._model.data ? m._model.data : null; + switch(chk) { + case "create_node": + case "move_node": + case "copy_node": + if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { + tmp = this.get_rules(par); + if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(m && obj.children_d && obj.parents) { + d = 0; + for(i = 0, j = obj.children_d.length; i < j; i++) { + d = Math.max(d, m[obj.children_d[i]].parents.length); + } + d = d - obj.parents.length + 1; + } + if(d <= 0 || d === undefined) { d = 1; } + do { + if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + par = this.get_node(par.parent); + tmp = this.get_rules(par); + d++; + } while(par); + } + break; + } + return true; + }; + /** + * used to retrieve the type settings object for a node + * @name get_rules(obj) + * @param {mixed} obj the node to find the rules for + * @return {Object} + * @plugin types + */ + this.get_rules = function (obj) { + obj = this.get_node(obj); + if(!obj) { return false; } + var tmp = this.get_type(obj, true); + if(tmp.max_depth === undefined) { tmp.max_depth = -1; } + if(tmp.max_children === undefined) { tmp.max_children = -1; } + if(tmp.valid_children === undefined) { tmp.valid_children = -1; } + return tmp; + }; + /** + * used to retrieve the type string or settings object for a node + * @name get_type(obj [, rules]) + * @param {mixed} obj the node to find the rules for + * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned + * @return {String|Object} + * @plugin types + */ + this.get_type = function (obj, rules) { + obj = this.get_node(obj); + return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); + }; + /** + * used to change a node's type + * @name set_type(obj, type) + * @param {mixed} obj the node to change + * @param {String} type the new type + * @plugin types + */ + this.set_type = function (obj, type) { + var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_type(obj[t1], type); + } + return true; + } + t = this.settings.types; + obj = this.get_node(obj); + if(!t[type] || !obj) { return false; } + d = this.get_node(obj, true); + if (d && d.length) { + a = d.children('.jstree-anchor'); + } + old_type = obj.type; + old_icon = this.get_icon(obj); + obj.type = type; + if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { + this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); + } + + // remove old type props + if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { + for (k in t[old_type].li_attr) { + if (t[old_type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); + if (d) { d.removeClass(t[old_type].li_attr[k]); } + } + else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { + m[obj.id].li_attr[k] = null; + if (d) { d.removeAttr(k); } + } + } + } + } + if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { + for (k in t[old_type].a_attr) { + if (t[old_type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); + if (a) { a.removeClass(t[old_type].a_attr[k]); } + } + else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { + if (k === 'href') { + m[obj.id].a_attr[k] = '#'; + if (a) { a.attr('href', '#'); } + } + else { + delete m[obj.id].a_attr[k]; + if (a) { a.removeAttr(k); } + } + } + } + } + } + + // add new props + if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { + for (k in t[type].li_attr) { + if (t[type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].li_attr[k] === undefined) { + m[obj.id].li_attr[k] = t[type].li_attr[k]; + if (d) { + if (k === 'class') { + d.addClass(t[type].li_attr[k]); + } + else { + d.attr(k, t[type].li_attr[k]); + } + } + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; + if (d) { d.addClass(t[type].li_attr[k]); } + } + } + } + } + if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { + for (k in t[type].a_attr) { + if (t[type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].a_attr[k] === undefined) { + m[obj.id].a_attr[k] = t[type].a_attr[k]; + if (a) { + if (k === 'class') { + a.addClass(t[type].a_attr[k]); + } + else { + a.attr(k, t[type].a_attr[k]); + } + } + } + else if (k === 'href' && m[obj.id].a_attr[k] === '#') { + m[obj.id].a_attr['href'] = t[type].a_attr['href']; + if (a) { a.attr('href', t[type].a_attr['href']); } + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; + if (a) { a.addClass(t[type].a_attr[k]); } + } + } + } + } + + return true; + }; + }; + // include the types plugin by default + // $.jstree.defaults.plugins.push("types"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js new file mode 100644 index 0000000000..bfe2f1b8f8 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js @@ -0,0 +1,121 @@ +/** + * ### Unique plugin + * + * Enforces that no nodes with the same name can coexist as siblings. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.unique', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.unique) { return; } + + /** + * stores all defaults for the unique plugin + * @name $.jstree.defaults.unique + * @plugin unique + */ + $.jstree.defaults.unique = { + /** + * Indicates if the comparison should be case sensitive. Default is `false`. + * @name $.jstree.defaults.unique.case_sensitive + * @plugin unique + */ + case_sensitive : false, + /** + * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. + * @name $.jstree.defaults.unique.duplicate + * @plugin unique + */ + duplicate : function (name, counter) { + return name + ' (' + counter + ')'; + } + }; + + $.jstree.plugins.unique = function (options, parent) { + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + if(!par || !par.children) { return true; } + var n = chk === "rename_node" ? pos : obj.text, + c = [], + s = this.settings.unique.case_sensitive, + m = this._model.data, i, j; + for(i = 0, j = par.children.length; i < j; i++) { + c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + if(!s) { n = n.toLowerCase(); } + switch(chk) { + case "delete_node": + return true; + case "rename_node": + i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n)); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "create_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "copy_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "move_node": + i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + } + return true; + }; + this.create_node = function (par, node, pos, callback, is_loaded) { + if(!node || node.text === undefined) { + if(par === null) { + par = $.jstree.root; + } + par = this.get_node(par); + if(!par) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + if(!node) { node = {}; } + var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate; + n = tmp = this.get_string('New node'); + dpc = []; + for(i = 0, j = par.children.length; i < j; i++) { + dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + i = 1; + while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) { + n = cb.call(this, tmp, (++i)).toString(); + } + node.text = n; + } + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + }; + }; + + // include the unique plugin by default + // $.jstree.defaults.plugins.push("unique"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js new file mode 100644 index 0000000000..e8fe3e6d54 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js @@ -0,0 +1,122 @@ +/** + * ### Wholerow plugin + * + * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.wholerow', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.wholerow) { return; } + + var div = document.createElement('DIV'); + div.setAttribute('unselectable','on'); + div.setAttribute('role','presentation'); + div.className = 'jstree-wholerow'; + div.innerHTML = ' '; + $.jstree.plugins.wholerow = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this.element + .on('ready.jstree set_state.jstree', $.proxy(function () { + this.hide_dots(); + }, this)) + .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { + //div.style.height = this._data.core.li_height + 'px'; + this.get_container_ul().addClass('jstree-wholerow-ul'); + }, this)) + .on("deselect_all.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + }, this)) + .on("changed.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + var tmp = false, i, j; + for(i = 0, j = data.selected.length; i < j; i++) { + tmp = this.get_node(data.selected[i], true); + if(tmp && tmp.length) { + tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + } + } + }, this)) + .on("open_node.jstree", $.proxy(function (e, data) { + this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + }, this)) + .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { + if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } + this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); + }, this)) + .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { + if (this._data.contextmenu) { + e.preventDefault(); + var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); + } + }, this)) + /*! + .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { + if(e.target === e.currentTarget) { + var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); + e.target = a[0]; + a.trigger(e); + } + }) + */ + .on("click.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("dblclick.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }, this)) + .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { + e.stopImmediatePropagation(); + if(!this.is_disabled(e.currentTarget)) { + this.hover_node(e.currentTarget); + } + return false; + }, this)) + .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }; + this.teardown = function () { + if(this.settings.wholerow) { + this.element.find(".jstree-wholerow").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var tmp = div.cloneNode(true); + //tmp.style.height = this._data.core.li_height + 'px'; + if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } + if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } + obj.insertBefore(tmp, obj.childNodes[0]); + } + return obj; + }; + }; + // include the wholerow plugin by default + // $.jstree.defaults.plugins.push("wholerow"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js new file mode 100644 index 0000000000..d2d789b1f3 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js @@ -0,0 +1,601 @@ +/* global jQuery */ + +// disable all events +(function ($, undefined) { + "use strict"; + $.jstree.plugins.trigger = function (options, parent) { + this.init = function (el, options) { + // do not forget parent + parent.init.call(this, el, options); + this._data.trigger.disabled = false; + }; + this.trigger = function (ev, data) { + if(!this._data.trigger.disabled) { + parent.trigger.call(this, ev, data); + } + }; + this.disable_events = function () { this._data.trigger.disabled = true; }; + this.enable_events = function () { this._data.trigger.disabled = false; }; + }; +})(jQuery); + +// mapping +(function ($, undefined) { + "use strict"; + // use this if you need any options + $.jstree.defaults.mapper = { + option_key : "option_value" + }; + $.jstree.plugins.mapper = function () { + this._parse_model_from_json = function (d, p, ps) { + // d is the node from the server, it will be called recursively for children, + // so you do not need to process at once + /* // for example + for(var i in d) { + if(d.hasOwnProperty(i)) { + d[i.toLowerCase()] = d[i]; + } + } + */ + return parent._parse_model_from_json.call(this, d, p, ps); + }; + }; +})(jQuery); + +// no hover +(function ($, undefined) { + "use strict"; + $.jstree.plugins.nohover = function () { + this.hover_node = $.noop; + }; +})(jQuery); + +// force multiple select +(function ($, undefined) { + "use strict"; + $.jstree.defaults.multiselect = {}; + $.jstree.plugins.multiselect = function (options, parent) { + this.activate_node = function (obj, e) { + e.ctrlKey = true; + parent.activate_node.call(this, obj, e); + }; + }; +})(jQuery); + +// real checkboxes +(function ($, undefined) { + "use strict"; + + var inp = document.createElement("INPUT"); + inp.type = "checkbox"; + inp.className = "jstree-checkbox jstree-realcheckbox"; + + $.jstree.defaults.realcheckboxes = {}; + + $.jstree.plugins.realcheckboxes = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.realcheckboxes.uto = false; + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree ready.jstree loaded.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.realcheckboxes.uto) { clearTimeout(this._data.realcheckboxes.uto); } + this._data.realcheckboxes.uto = setTimeout($.proxy(this._realcheckboxes, this), 50); + }, this)); + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + var i, j, tmp = null, chk = inp.cloneNode(true); + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + for(i = 0, j = tmp.childNodes.length; i < j; i++) { + if(tmp.childNodes[i] && tmp.childNodes[i].className && tmp.childNodes[i].className.indexOf("jstree-checkbox") !== -1) { + tmp = tmp.childNodes[i]; + break; + } + } + } + if(tmp && tmp.tagName === "I") { + tmp.style.backgroundColor = "transparent"; + tmp.style.backgroundImage = "none"; + tmp.appendChild(chk); + } + } + return obj; + }; + this._realcheckboxes = function () { + var ts = this.settings.checkbox.tie_selection; + console.log(ts); + $('.jstree-realcheckbox').each(function () { + this.checked = (!ts && this.parentNode.parentNode.className.indexOf("jstree-checked") !== -1) || (ts && this.parentNode.parentNode.className.indexOf('jstree-clicked') !== -1); + this.indeterminate = this.parentNode.className.indexOf("jstree-undetermined") !== -1; + this.disabled = this.parentNode.parentNode.className.indexOf("disabled") !== -1; + }); + }; + }; +})(jQuery); + +// no state +(function ($, undefined) { + "use strict"; + $.jstree.plugins.nostate = function () { + this.set_state = function (state, callback) { + if(callback) { callback.call(this); } + this.trigger('set_state'); + }; + }; +})(jQuery); + +// no selected in state +(function ($, undefined) { + "use strict"; + $.jstree.plugins.noselectedstate = function (options, parent) { + this.get_state = function () { + var state = parent.get_state.call(this); + delete state.core.selected; + return state; + }; + }; +})(jQuery); + +// additional icon on node (outside of anchor) +(function ($, undefined) { + "use strict"; + var img = document.createElement('IMG'); + //img.src = "http://www.dpcd.vic.gov.au/__data/assets/image/0004/30667/help.gif"; + img.className = "jstree-questionmark"; + + $.jstree.defaults.questionmark = $.noop; + $.jstree.plugins.questionmark = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("click.jstree", ".jstree-questionmark", $.proxy(function (e) { + e.stopImmediatePropagation(); + this.settings.questionmark.call(this, this.get_node(e.target)); + }, this)); + }; + this.teardown = function () { + if(this.settings.questionmark) { + this.element.find(".jstree-questionmark").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + var tmp = img.cloneNode(true); + obj.insertBefore(tmp, obj.childNodes[2]); + } + return obj; + }; + }; +})(jQuery); + +// auto numbering +(function ($, undefined) { + "use strict"; + var span = document.createElement('SPAN'); + span.className = "jstree-numbering"; + + $.jstree.defaults.numbering = {}; + $.jstree.plugins.numbering = function (options, parent) { + this.teardown = function () { + if(this.settings.questionmark) { + this.element.find(".jstree-numbering").remove(); + } + parent.teardown.call(this); + }; + this.get_number = function (obj) { + obj = this.get_node(obj); + var ind = $.inArray(obj.id, this.get_node(obj.parent).children) + 1; + return obj.parent === '#' ? ind : this.get_number(obj.parent) + '.' + ind; + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + var i, j, tmp = null, elm = null, org = this.get_number(obj); + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + elm = span.cloneNode(true); + elm.innerHTML = org + '. '; + tmp.insertBefore(elm, tmp.childNodes[tmp.childNodes.length - 1]); + } + } + return obj; + }; + }; +})(jQuery); + +// additional icon on node (inside anchor) +(function ($, undefined) { + "use strict"; + var _s = document.createElement('SPAN'); + _s.className = 'fa-stack jstree-stackedicon'; + var _i = document.createElement('I'); + _i.className = 'jstree-icon'; + _i.setAttribute('role', 'presentation'); + + $.jstree.plugins.stackedicon = function (options, parent) { + this.teardown = function () { + this.element.find(".jstree-stackedicon").remove(); + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null, temp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(this._model.data[obj.id].state.icons && this._model.data[obj.id].state.icons.length) { + icon = _s.cloneNode(false); + for(i = 0, j = this._model.data[obj.id].state.icons.length; i < j; i++) { + temp = _i.cloneNode(false); + temp.className += ' ' + this._model.data[obj.id].state.icons[i]; + icon.appendChild(temp); + } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + } + return obj; + }; + }; +})(jQuery); + +// selecting a node opens it +(function ($, undefined) { + "use strict"; + $.jstree.plugins.selectopens = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element.on('select_node.jstree', function (e, data) { data.instance.open_node(data.node); }); + }; + }; +})(jQuery); + +// object as data +(function ($, undefined) { + "use strict"; + $.jstree.defaults.datamodel = {}; + $.jstree.plugins.datamodel = function (options, parent) { + this.init = function (el, options) { + this._data.datamodel = {}; + parent.init.call(this, el, options); + }; + this._datamodel = function (id, nodes, callback) { + var i = 0, j = nodes.length, tmp = [], obj = null; + for(; i < j; i++) { + this._data.datamodel[nodes[i].getID()] = nodes[i]; + obj = { + id : nodes[i].getID(), + text : nodes[i].getText(), + children : nodes[i].hasChildren() + }; + if(nodes[i].getExtra) { + obj = nodes[i].getExtra(obj); // icon, type + } + tmp.push(obj); + } + return this._append_json_data(id, tmp, $.proxy(function (status) { + callback.call(this, status); + }, this)); + }; + this._load_node = function (obj, callback) { + var id = obj.id; + var nd = obj.id === "#" ? this.settings.core.data : this._data.datamodel[obj.id].getChildren($.proxy(function (nodes) { + this._datamodel(id, nodes, callback); + }, this)); + if($.isArray(nd)) { + this._datamodel(id, nd, callback); + } + }; + }; +})(jQuery); +/* + demo of the above + function treeNode(val) { + var id = ++treeNode.counter; + this.getID = function () { + return id; + }; + this.getText = function () { + return val.toString(); + }; + this.getExtra = function (obj) { + obj.icon = false; + return obj; + }; + this.hasChildren = function () { + return true; + }; + this.getChildren = function () { + return [ + new treeNode(Math.pow(val, 2)), + new treeNode(Math.sqrt(val)), + ]; + }; + } + treeNode.counter = 0; + + $('#jstree').jstree({ + 'core': { + 'data': [ + new treeNode(2), + new treeNode(3), + new treeNode(4), + new treeNode(5) + ] + }, + plugins : ['datamodel'] + }); +*/ + +// untested sample plugin to keep all nodes in the DOM +(function ($, undefined) { + "use strict"; + $.jstree.plugins.dom = function (options, parent) { + this.redraw_node = function (node, deep, is_callback, force_render) { + return parent.redraw_node.call(this, node, deep, is_callback, true); + }; + this.close_node = function (obj, animation) { + var t1, t2, t, d; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.close_node(obj[t1], animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(this.is_closed(obj)) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + t = this; + d = this.get_node(obj, true); + if(d.length) { + if(!animation) { + d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); + d.attr("aria-expanded", false); + } + else { + d + .children(".jstree-children").attr("style","display:block !important").end() + .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) + .children(".jstree-children").stop(true, true).slideUp(animation, function () { + this.style.display = ""; + t.trigger("after_close", { "node" : obj }); + }); + } + } + obj.state.opened = false; + this.trigger('close_node',{ "node" : obj }); + if(!animation || !d.length) { + this.trigger("after_close", { "node" : obj }); + } + }; + }; +})(jQuery); + +// customize plugin by @Lusito +// https://github.com/Lusito/jstree/blob/node-customize/src/jstree-node-customize.js +/** + * ### Node Customize plugin + * + * Allows to customize nodes when they are drawn. + */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.node_customize', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.node_customize) { return; } + + /** + * the settings object. + * key is the attribute name to select the customizer function from switch. + * switch is a key => function(el, node) map. + * default: function(el, node) will be called if the type could not be mapped + * @name $.jstree.defaults.node_customize + * @plugin node_customize + */ + $.jstree.defaults.node_customize = { + "key": "type", + "switch": {}, + "default": null + }; + + $.jstree.plugins.node_customize = function (options, parent) { + this.redraw_node = function (obj, deep, callback, force_draw) { + var node_id = obj; + var el = parent.redraw_node.apply(this, arguments); + if (el) { + var node = this._model.data[node_id]; + var cfg = this.settings.node_customize; + var key = cfg.key; + var type = (node && node.original && node.original[key]); + var customizer = (type && cfg.switch[type]) || cfg.default; + if(customizer) + customizer(el, node); + } + return el; + }; + } +})); + + +// parentsload plugin by @ashl1 +/** + * ### Parentsload plugin + * + * Change load_node() functionality in jsTree, to possible load not yes downloaded node with all it parent in a single request (only useful with lazy loading). + * + * version 1.0.0 (Alexey Shildyakov - ashl1future@gmail.com) + * 2015: Compatible with jsTree-3.2.1 + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.parentsload', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.parentsload) { return; } + + /** + * parentsload configuration + * + * The configuration syntax is almost the same as for core.data option. You must set parenstload.data the following: + * + * parentsload: { + * data: function(){} // this function overwrites core data.data options + * } + * + * OR + * + * parentsload: { + * data: { + * url: function(node){} OR string, + * data: function(node){} OR associative array as json{data} jQuery parameter + * } + * } + * + * In last case at least on of 'url' or 'data' must be presented. + * + * At first, the plugin load_node() detects if the node already downloaded. If is - uses the core.data settings, if not - uses parentsload.data settings + * to fetch in one query the specified node and all its parent. The data must be in the first mentioned JSON format with set nested children[]. + * Each node level should consist of all nodes on the level to properly work with the tree in the future. Otherwise, you must manually call load_node + * on every parent node to fetch all children nodes on that level. + * + * @name $.jstree.defaults.parentsload + * @plugin parentsload + */ + $.jstree.defaults.parentsload = null; + $.jstree.plugins.parentsload = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.patch_data() + }; + this.patch_data = function(){ + var parentsloadSettings = this.settings.parentsload; + var jsTreeDataSettings = this.settings.core.data; + var self = this; + + var callError = function(number, message) { + self._data.core.last_error = { 'error' : 'configuration', 'plugin' : 'parentsload', 'id' : 'parentsload_' + number, 'reason' : message, 'data' : JSON.stringify({config: parentsloadSettings}) }; + self.settings.core.error.call(self, self._data.core.last_error); + } + + if(!parentsloadSettings) { + callError('01', 'The configuration must be presented') + return + } + parentsloadSettings = parentsloadSettings.data; + + var patchSettingsProperty = function (propertyName) { + var property = parentsloadSettings[propertyName], + coreProperty = jsTreeDataSettings[propertyName]; + if (property) { + jsTreeDataSettings[propertyName] = function(node) { + if (this.get_node(node).parentsload_required) { + if ($.isFunction(property)) { + return property.call(this, node) + } else {// (typeof property === 'string') + return property + } + } else { + if ($.isFunction(coreProperty)) { + return coreProperty.call(this, node) + } else { // (typeof coreProperty === 'string') + return coreProperty + } + } + } + } /* else { + use jstree the same data[propertyName] settings + }*/ + } + + if($.isFunction(parentsloadSettings)) { + this.settings.data = parentsloadSettings + } else if (typeof parentsloadSettings === 'object') { + if (! (parentsloadSettings.url || parentsloadSettings.data)) { + callError('02', 'The "data.url" or "data.data" must be presented in configuration') + return + } + patchSettingsProperty('url') + patchSettingsProperty('data') + + } else { + callError('03', 'The appropriate "data.url" or "data.data" must be presented in configuration') + } + } + + this.load_node = function (obj, callback) { + if($.isArray(obj)) { + // FIXME: _load_nodes will not load nodes not presented in the tree + this._load_nodes(obj.slice(), callback); + return true; + } + var foundObj = this.get_node(obj); + if (foundObj) { + return parent.load_node.apply(this, arguments) + } else { + // node hasn't been loaded + var id = obj.id? obj.id: obj; + this._model.data[id] = { + id : id, + parent : '#', + parents : [], + children : [], + children_d : [], + state : { loaded : false }, + li_attr : {}, + a_attr : {}, + parentsload_required : true, + }; + return parent.load_node.call(this, obj, function(obj, status){ + obj.parentsload_required = !status + callback.call(this, obj, status) + }) + } + } + }; +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js new file mode 100644 index 0000000000..57d3e4820a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js @@ -0,0 +1 @@ +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js new file mode 100644 index 0000000000..2811e75ca0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js @@ -0,0 +1,93 @@ +/*global jQuery */ +// wrap in IIFE and pass jQuery as $ +(function ($, undefined) { + "use strict"; + + // some private plugin stuff if needed + var private_var = null; + + // extending the defaults + $.jstree.defaults.sample = { + sample_option : 'sample_val' + }; + + // the actual plugin code + $.jstree.plugins.sample = function (options, parent) { + // own function + this.sample_function = function (arg) { + // you can chain this method if needed and available + if(parent.sample_function) { parent.sample_function.call(this, arg); } + }; + + // *SPECIAL* FUNCTIONS + this.init = function (el, options) { + // do not forget parent + parent.init.call(this, el, options); + }; + // bind events if needed + this.bind = function () { + // call parent function first + parent.bind.call(this); + // do(stuff); + }; + // unbind events if needed (all in jquery namespace are taken care of by the core) + this.unbind = function () { + // do(stuff); + // call parent function last + parent.unbind.call(this); + }; + this.teardown = function () { + // do not forget parent + parent.teardown.call(this); + }; + // state management - get and restore + this.get_state = function () { + // always get state from parent first + var state = parent.get_state.call(this); + // add own stuff to state + state.sample = { 'var' : 'val' }; + return state; + }; + this.set_state = function (state, callback) { + // only process your part if parent returns true + // there will be multiple times with false + if(parent.set_state.call(this, state, callback)) { + // check the key you set above + if(state.sample) { + // do(stuff); // like calling this.sample_function(state.sample.var); + // remove your part of the state, call again and RETURN FALSE, the next cycle will be TRUE + delete state.sample; + this.set_state(state, callback); + return false; + } + // return true if your state is gone (cleared in the previous step) + return true; + } + // parent was false - return false too + return false; + }; + // node transportation + this.get_json = function (obj, options, flat) { + // get the node from the parent + var tmp = parent.get_json.call(this, obj, options, flat), i, j; + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].sample = 'value'; + } + } + else { + tmp.sample = 'value'; + } + // return the original / modified node + return tmp; + }; + }; + + // attach to document ready if needed + $(function () { + // do(stuff); + }); + + // you can include the sample plugin in all instances by default + $.jstree.defaults.plugins.push("sample"); +})(jQuery); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less new file mode 100644 index 0000000000..097e9997a8 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less @@ -0,0 +1,88 @@ +// base jstree +.jstree-node, .jstree-children, .jstree-container-ul { display:block; margin:0; padding:0; list-style-type:none; list-style-image:none; } +.jstree-node { white-space:nowrap; } +.jstree-anchor { display:inline-block; color:black; white-space:nowrap; padding:0 4px 0 1px; margin:0; vertical-align:top; } +.jstree-anchor:focus { outline:0; } +.jstree-anchor, .jstree-anchor:link, .jstree-anchor:visited, .jstree-anchor:hover, .jstree-anchor:active { text-decoration:none; color:inherit; } +.jstree-icon { display:inline-block; text-decoration:none; margin:0; padding:0; vertical-align:top; text-align:center; } +.jstree-icon:empty { display:inline-block; text-decoration:none; margin:0; padding:0; vertical-align:top; text-align:center; } +.jstree-ocl { cursor:pointer; } +.jstree-leaf > .jstree-ocl { cursor:default; } +.jstree .jstree-open > .jstree-children { display:block; } +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { display:none; } +.jstree-anchor > .jstree-themeicon { margin-right:2px; } +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { display:none; } +.jstree-hidden, .jstree-node.jstree-hidden { display:none; } + +// base jstree rtl +.jstree-rtl { + .jstree-anchor { padding:0 1px 0 4px; } + .jstree-anchor > .jstree-themeicon { margin-left:2px; margin-right:0; } + .jstree-node { margin-left:0; } + .jstree-container-ul > .jstree-node { margin-right:0; } +} + +// base jstree wholerow +.jstree-wholerow-ul { + position:relative; + display:inline-block; + min-width:100%; + .jstree-leaf > .jstree-ocl { cursor:pointer; } + .jstree-anchor, .jstree-icon { position:relative; } + .jstree-wholerow { width:100%; cursor:pointer; position:absolute; left:0; -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; } +} + +// base contextmenu +.vakata-context { + display:none; + &, ul { margin:0; padding:2px; position:absolute; background:#f5f5f5; border:1px solid #979797; box-shadow:2px 2px 2px #999999; } + ul { list-style:none; left:100%; margin-top:-2.7em; margin-left:-4px; } + .vakata-context-right ul { left:auto; right:100%; margin-left:auto; margin-right:-4px; } + li { + list-style:none; + > a { + display:block; padding:0 2em 0 2em; text-decoration:none; width:auto; color:black; white-space:nowrap; line-height:2.4em; text-shadow:1px 1px 0 white; border-radius:1px; + &:hover { position:relative; background-color:#e8eff7; box-shadow:0 0 2px #0a6aa1; } + &.vakata-context-parent { background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); background-position:right center; background-repeat:no-repeat; } + } + > a:focus { outline:0; } + } + .vakata-context-hover > a { position:relative; background-color:#e8eff7; box-shadow:0 0 2px #0a6aa1; } + .vakata-context-separator { + > a, > a:hover { background:white; border:0; border-top:1px solid #e2e3e3; height:1px; min-height:1px; max-height:1px; padding:0; margin:0 0 0 2.4em; border-left:1px solid #e0e0e0; text-shadow:0 0 0 transparent; box-shadow:0 0 0 transparent; border-radius:0; } + } + .vakata-contextmenu-disabled { + a, a:hover { color:silver; background-color:transparent; border:0; box-shadow:0 0 0; } + } + li > a { + > i { text-decoration:none; display:inline-block; width:2.4em; height:2.4em; background:transparent; margin:0 0 0 -2em; vertical-align:top; text-align:center; line-height:2.4em; } + > i:empty { width:2.4em; line-height:2.4em; } + .vakata-contextmenu-sep { display:inline-block; width:1px; height:2.4em; background:white; margin:0 0.5em 0 0; border-left:1px solid #e2e3e3; } + } + .vakata-contextmenu-shortcut { font-size:0.8em; color:silver; opacity:0.5; display:none; } +} +.vakata-context-rtl { + ul { left:auto; right:100%; margin-left:auto; margin-right:-4px; } + li > a.vakata-context-parent { background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); background-position:left center; background-repeat:no-repeat; } + .vakata-context-separator > a { margin:0 2.4em 0 0; border-left:0; border-right:1px solid #e2e3e3;} + .vakata-context-left ul { right:auto; left:100%; margin-left:-4px; margin-right:auto; } + li > a { + > i { margin:0 -2em 0 0; } + .vakata-contextmenu-sep { margin:0 0 0 0.5em; border-left-color:white; background:#e2e3e3; } + } +} + +// base drag'n'drop +#jstree-marker { position: absolute; top:0; left:0; margin:-5px 0 0 0; padding:0; border-right:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:5px solid; width:0; height:0; font-size:0; line-height:0; } +#jstree-dnd { + line-height:16px; + margin:0; + padding:4px; + .jstree-icon, + .jstree-copy { display:inline-block; text-decoration:none; margin:0 2px 0 0; padding:0; width:16px; height:16px; } + .jstree-ok { background:green; } + .jstree-er { background:red; } + .jstree-copy { margin:0 2px 0 2px; } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..60395729ef6cfda914b211d5a45c9d2c083b3175 GIT binary patch literal 1525 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 Az5oCK literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css new file mode 100644 index 0000000000..3af003f2d5 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css @@ -0,0 +1,1146 @@ +/* jsTree default dark theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default-dark .jstree-anchor, +.jstree-default-dark .jstree-animated, +.jstree-default-dark .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default-dark .jstree-hovered { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-context { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-clicked { + background: #5fa2db; + border-radius: 2px; + box-shadow: inset 0 0 1px #666666; +} +.jstree-default-dark .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default-dark .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #333333; +} +.jstree-default-dark .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark .jstree-search { + font-style: italic; + color: #ffffff; + font-weight: bold; +} +.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #555555; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default-dark > .jstree-wholerow-ul .jstree-hovered, +.jstree-default-dark > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default-dark .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default-dark .jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark .jstree-wholerow-clicked { + background: #5fa2db; + background: -webkit-linear-gradient(top, #5fa2db 0%, #5fa2db 100%); + background: linear-gradient(to bottom, #5fa2db 0%, #5fa2db 100%); +} +.jstree-default-dark .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default-dark .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default-dark .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default-dark .jstree-wholerow { + height: 24px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default-dark .jstree-last { + background: transparent; +} +.jstree-default-dark .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default-dark .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default-dark .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default-dark .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-node, +.jstree-default-dark > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default-dark .jstree-disabled { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default-dark .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default-dark .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark > .jstree-striped { + background-size: auto 48px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default-dark .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default-dark .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default-dark > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark .jstree-ok, +#jstree-dnd.jstree-default-dark .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default-dark .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default-dark .jstree-er { + background-position: -36px -68px; +} +.jstree-default-dark .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-dark-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-dark-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-dark-small .jstree-wholerow { + height: 18px; +} +.jstree-default-dark-small .jstree-node, +.jstree-default-dark-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-dark-small .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-dark-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-dark-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-dark-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-node, +.jstree-default-dark-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-dark-small .jstree-disabled { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-dark-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-dark-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-dark-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-dark-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-dark-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok, +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-dark-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-dark-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-dark-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-dark-large .jstree-wholerow { + height: 32px; +} +.jstree-default-dark-large .jstree-node, +.jstree-default-dark-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-dark-large .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-dark-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-dark-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-dark-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-node, +.jstree-default-dark-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-dark-large .jstree-disabled { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-dark-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-dark-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-dark-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-dark-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-dark-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok, +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-dark-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-dark-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-dark-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-dark-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-dark-responsive .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-dark-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-dark-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-dark-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-dark-responsive .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-dark-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-dark-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-dark-responsive .jstree-wholerow { + border-top: 1px solid #666666; + border-bottom: 1px solid #000000; + background: #333333; + height: 40px; + } + .jstree-default-dark-responsive .jstree-wholerow-hovered { + background: #555555; + } + .jstree-default-dark-responsive .jstree-wholerow-clicked { + background: #5fa2db; + } + .jstree-default-dark-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #111111; + } + .jstree-default-dark-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #111111; + border-top: 0; + } + .jstree-default-dark-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-node > .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-dark-responsive .jstree-last { + background: transparent; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-dark-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-dark-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-dark-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} +.jstree-default-dark { + background: #333; +} +.jstree-default-dark .jstree-anchor { + color: #999; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5); +} +.jstree-default-dark .jstree-clicked, +.jstree-default-dark .jstree-checked { + color: white; +} +.jstree-default-dark .jstree-hovered { + color: white; +} +#jstree-marker.jstree-default-dark { + border-left-color: #999; + background: transparent; +} +.jstree-default-dark .jstree-anchor > .jstree-icon { + opacity: 0.75; +} +.jstree-default-dark .jstree-clicked > .jstree-icon, +.jstree-default-dark .jstree-hovered > .jstree-icon, +.jstree-default-dark .jstree-checked > .jstree-icon { + opacity: 1; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less new file mode 100644 index 0000000000..0f9a3963d1 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less @@ -0,0 +1,50 @@ +/* jsTree default dark theme */ +@theme-name: default-dark; +@hovered-bg-color: #555; +@hovered-shadow-color: #555; +@disabled-color: #666666; +@disabled-bg-color: #333333; +@clicked-bg-color: #5fa2db; +@clicked-shadow-color: #666666; +@clicked-gradient-color-1: #5fa2db; +@clicked-gradient-color-2: #5fa2db; +@search-result-color: #ffffff; +@mobile-wholerow-bg-color: #333333; +@mobile-wholerow-shadow: #111111; +@mobile-wholerow-bordert: #666; +@mobile-wholerow-borderb: #000; +@responsive: true; +@image-path: ""; +@base-height: 40px; + +@import "../mixins.less"; +@import "../base.less"; +@import "../main.less"; + +.jstree-@{theme-name} { + background:#333; + .jstree-anchor { color:#999; text-shadow:1px 1px 0 rgba(0,0,0,0.5); } + .jstree-clicked, .jstree-checked { color:white; } + .jstree-hovered { color:white; } + #jstree-marker& { + border-left-color:#999; + background:transparent; + } + .jstree-anchor > .jstree-icon { opacity:0.75; } + .jstree-clicked > .jstree-icon, + .jstree-hovered > .jstree-icon, + .jstree-checked > .jstree-icon { opacity:1; } +} +// theme variants +.jstree-@{theme-name} { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-small { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-large { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..2e310e8be219965cda00a2e1e9f3077838152c73 GIT binary patch literal 1849 zcmb8wdr(tX9tZI2z31lM+(&YVNJFGf2tkvOm_Q%|vGyi_Ah2wp3Y14l#IS@y4OAp; z5y=A~$Wy6`)ru`G2-*TZrrRxukr{0}wleGNPItF6+F^IJb-S=_r#jPD!XN!B{iDA> z&zv*oGvD9&&B@-e-I!*B2t>X`5WQYMF)@*rmR4I^%W<6F?{_+#!Ik#*_7f*gl$MrS zES8ax5v$cYHa6DZ-|up{kl$0WKhp(SJD##M!v#~!(GMenRefB-l7RSC? zsjbfDs^4qdv)S=N&0Zw-G2m0dUFy&+AtZvgNTn#skNx*JnrS9)mDS)RxE~8&ep=o<;ILrQ!#lhLr`Z7)AhbGuF z)4i}VFNn}iMq8b=a&d2lEuNF&JvSaWbIy_EX*lJY-Hy5g&CmEFp?8fdt^;QQ2yDLk zx$n@kku`l0ARn!gVL0Wa^k#2~8$dvJRkr5y*b2juS6W{_X*``;o*I_o3Q;~|f)tQR zX35C@nQotVKB-AP`NT-0Wg)T?ZAT)-b(aFxWh3MfUx@-7B#pbHaztvWYVix5So1c! z+_1ew{Pj}WY`$eQOP_#JP~kz%GL}cz^uE%iGM7|o{RdH&tCIUYZFx=ZR8v!U%xW&5 zB?mFSSTbit_OVLTzn;Eb*stZh(_Im8mo*z7Tw42Tw>gldDwHXW} zhOoKRueL}W%0))rSlJMybgrkF**OH${LQG#0V2liHxj*{fY5VKUm%H}nB~_J_{r~fxV*jPYx<8cwJGZYnN2_hIKHcH3X^T7JKV}#@ z8W$GO76SZP9Rzq}q<2NKprQ_?GtQ!m@u+VqPRAQPX+0~Qmu$LTJ**gw!iI7=E@s2k zC$3!l?0X*WgTPw z$L~i-8Q=fnxeEZ|E$7RWQs{HmV+yLj(|zYcA4xWT*Q{C_MG!?Bt9g)5SP7w0sbC0< zc=2FW?f~f8R#hP&HVLvDQpp~9c+KiSuWC@0`mj{7pqf+sU`{C)C5qR~NZ%@(`Rfi_ zZ7eVQ_=MdhetG6$uCB{|)i596id%P0;$S8D{VSObGad1A!L8T6a*7#>UqRs62&!`x zgm^I@#`{CPDYo0Z_cUzMmyfC_f4vd?3Bc9!VamCEx>gj8DBBJL8N2WiHn!B}jX;Hx! z5jSV2o|FQbQdLg-Da)-I&|~BSUs(EH9}dx;qb<{9 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png new file mode 100644 index 0000000000000000000000000000000000000000..ac74418d2843d0233fc67c04a59462caa82bd860 GIT binary patch literal 8740 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 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png new file mode 100644 index 0000000000000000000000000000000000000000..29273260075f1654bb86a9e3f42c3f32ab5a2d23 GIT binary patch literal 6055 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 B1Y7_B literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css new file mode 100644 index 0000000000..616be241be --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css @@ -0,0 +1,1102 @@ +/* jsTree default theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default .jstree-anchor, +.jstree-default .jstree-animated, +.jstree-default .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-clicked { + background: #beebff; + border-radius: 2px; + box-shadow: inset 0 0 1px #999999; +} +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; +} +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default > .jstree-wholerow-ul .jstree-hovered, +.jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); + background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); +} +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default .jstree-wholerow { + height: 24px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default .jstree-last { + background: transparent; +} +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default > .jstree-no-dots .jstree-node, +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default .jstree-disabled { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default > .jstree-striped { + background-size: auto 48px; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default .jstree-ok, +#jstree-dnd.jstree-default .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; +} +.jstree-default .jstree-ellipsis { + overflow: hidden; +} +.jstree-default .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-small .jstree-wholerow { + height: 18px; +} +.jstree-default-small .jstree-node, +.jstree-default-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-small .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-node, +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-small .jstree-disabled { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-small .jstree-ok, +#jstree-dnd.jstree-default-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-large .jstree-wholerow { + height: 32px; +} +.jstree-default-large .jstree-node, +.jstree-default-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-large .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-node, +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-large .jstree-disabled { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-large .jstree-ok, +#jstree-dnd.jstree-default-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-responsive .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-responsive .jstree-checkbox, + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; + } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; + } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; + } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #666666; + } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; + } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-node > .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-responsive .jstree-last { + background: transparent; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less new file mode 100644 index 0000000000..53f786fa7e --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less @@ -0,0 +1,22 @@ +/* jsTree default theme */ +@theme-name: default; +@hovered-bg-color: #e7f4f9; +@hovered-shadow-color: #cccccc; +@disabled-color: #666666; +@disabled-bg-color: #efefef; +@clicked-bg-color: #beebff; +@clicked-shadow-color: #999999; +@clicked-gradient-color-1: #beebff; +@clicked-gradient-color-2: #a8e4ff; +@search-result-color: #8b0000; +@mobile-wholerow-bg-color: #ebebeb; +@mobile-wholerow-shadow: #666666; +@mobile-wholerow-bordert: rgba(255,255,255,0.7); +@mobile-wholerow-borderb: rgba(64,64,64,0.2); +@responsive: true; +@image-path: ""; +@base-height: 40px; + +@import "../mixins.less"; +@import "../base.less"; +@import "../main.less"; \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b33f7e54f4e55b6b8774d86d96895db9af044b4 GIT binary patch literal 1849 zcma*odr(tX9tZI2z31lM+(&YVk%mZ}5P~KlG2s=WSbGzm0!x7^P##Mnh7t-jP!X0Q zk_SQ}Po-L1tlDK;6l?(>v)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less new file mode 100644 index 0000000000..8616cc039f --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less @@ -0,0 +1,77 @@ +.jstree-@{theme-name} { + .jstree-node, + .jstree-icon { background-repeat:no-repeat; background-color:transparent; } + .jstree-anchor, + .jstree-animated, + .jstree-wholerow { transition:background-color 0.15s, box-shadow 0.15s; } + .jstree-hovered { background:@hovered-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @hovered-shadow-color; } + .jstree-context { background:@hovered-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @hovered-shadow-color; } + .jstree-clicked { background:@clicked-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @clicked-shadow-color; } + .jstree-no-icons .jstree-anchor > .jstree-themeicon { display:none; } + .jstree-disabled { + background:transparent; color:@disabled-color; + &.jstree-hovered { background:transparent; box-shadow:none; } + &.jstree-clicked { background:@disabled-bg-color; } + > .jstree-icon { opacity:0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } + } + // search + .jstree-search { font-style:italic; color:@search-result-color; font-weight:bold; } + // checkboxes + .jstree-no-checkboxes .jstree-checkbox { display:none !important; } + &.jstree-checkbox-no-clicked { + .jstree-clicked { + background:transparent; + box-shadow:none; + &.jstree-hovered { background:@hovered-bg-color; } + } + > .jstree-wholerow-ul .jstree-wholerow-clicked { + background:transparent; + &.jstree-wholerow-hovered { background:@hovered-bg-color; } + } + } + // stripes + > .jstree-striped { min-width:100%; display:inline-block; background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; } + // wholerow + > .jstree-wholerow-ul .jstree-hovered, + > .jstree-wholerow-ul .jstree-clicked { background:transparent; box-shadow:none; border-radius:0; } + .jstree-wholerow { -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box; } + .jstree-wholerow-hovered { background:@hovered-bg-color; } + .jstree-wholerow-clicked { .gradient(@clicked-gradient-color-1, @clicked-gradient-color-2); } +} + +// theme variants +.jstree-@{theme-name} { + .jstree-theme(24px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-small { + .jstree-theme(18px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-large { + .jstree-theme(32px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} + +// mobile theme attempt +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive when (@responsive = true) { + line-height:@base-height; font-weight:bold; font-size:1.1em; text-shadow:1px 1px white; + > i { background:transparent; width:@base-height; height:@base-height; } + > .jstree-ok { background-image:url("@{image-path}@{base-height}.png"); background-position:0 -(@base-height * 5); background-size:(@base-height * 3) (@base-height * 6); } + > .jstree-er { background-image:url("@{image-path}@{base-height}.png"); background-position:-(@base-height * 1) -(@base-height * 5); background-size:(@base-height * 3) (@base-height * 6); } + } + #jstree-marker.jstree-dnd-responsive when (@responsive = true) { + border-left-width:10px; + border-top-width:10px; + border-bottom-width:10px; + margin-top:-10px; + } +} + +.jstree-@{theme-name}-responsive when (@responsive = true) { + @import "responsive.less"; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less new file mode 100644 index 0000000000..3018623b26 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less @@ -0,0 +1,105 @@ +.gradient (@color1; @color2) { + background:@color1; + background: -webkit-linear-gradient(top, @color1 0%,@color2 100%); + background: linear-gradient(to bottom, @color1 0%,@color2 100%); +} + +.jstree-theme (@base-height, @image, @image-height) { + @correction: (@image-height - @base-height) / 2; + + .jstree-node { min-height:@base-height; line-height:@base-height; margin-left:@base-height; min-width:@base-height; } + .jstree-anchor { line-height:@base-height; height:@base-height; } + .jstree-icon { width:@base-height; height:@base-height; line-height:@base-height; } + .jstree-icon:empty { width:@base-height; height:@base-height; line-height:@base-height; } + &.jstree-rtl .jstree-node { margin-right:@base-height; } + .jstree-wholerow { height:@base-height; } + + .jstree-node, + .jstree-icon { background-image:url("@{image}"); } + .jstree-node { background-position:-(@image-height * 9 + @correction) -@correction; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + + .jstree-open > .jstree-ocl { background-position:-(@image-height * 4 + @correction) -@correction; } + .jstree-closed > .jstree-ocl { background-position:-(@image-height * 3 + @correction) -@correction; } + .jstree-leaf > .jstree-ocl { background-position:-(@image-height * 2 + @correction) -@correction; } + + .jstree-themeicon { background-position:-(@image-height * 8 + @correction) -@correction; } + + > .jstree-no-dots { + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 1 + @correction) -@correction; } + .jstree-closed > .jstree-ocl { background-position:-@correction -@correction; } + } + + .jstree-disabled { + background:transparent; + &.jstree-hovered { + background:transparent; + } + &.jstree-clicked { + background:#efefef; + } + } + + .jstree-checkbox { + background-position:-(@image-height * 5 + @correction) -@correction; + &:hover { background-position:-(@image-height * 5 + @correction) -(@image-height * 1 + @correction); } + } + + &.jstree-checkbox-selection .jstree-clicked, .jstree-checked { + > .jstree-checkbox { + background-position:-(@image-height * 7 + @correction) -@correction; + &:hover { background-position:-(@image-height * 7 + @correction) -(@image-height * 1 + @correction); } + } + } + .jstree-anchor { + > .jstree-undetermined { + background-position:-(@image-height * 6 + @correction) -@correction; + &:hover { + background-position:-(@image-height * 6 + @correction) -(@image-height * 1 + @correction); + } + } + } + .jstree-checkbox-disabled { opacity:0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } + + > .jstree-striped { background-size:auto (@base-height * 2); } + + &.jstree-rtl { + .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); background-position: 100% 1px; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 4 + @correction) -(@image-height * 1 + @correction); } + .jstree-closed > .jstree-ocl { background-position:-(@image-height * 3 + @correction) -(@image-height * 1 + @correction); } + .jstree-leaf > .jstree-ocl { background-position:-(@image-height * 2 + @correction) -(@image-height * 1 + @correction); } + > .jstree-no-dots { + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 1 + @correction) -(@image-height * 1 + @correction); } + .jstree-closed > .jstree-ocl { background-position:-@correction -(@image-height * 1 + @correction); } + } + } + .jstree-themeicon-custom { background-color:transparent; background-image:none; background-position:0 0; } + + > .jstree-container-ul .jstree-loading > .jstree-ocl { background:url("@{image-path}throbber.gif") center center no-repeat; } + + .jstree-file { background:url("@{image}") -(@image-height * 3 + @correction) -(@image-height * 2 + @correction) no-repeat; } + .jstree-folder { background:url("@{image}") -(@image-height * 8 + @correction) -(@correction) no-repeat; } + + > .jstree-container-ul > .jstree-node { margin-left:0; margin-right:0; } + + // drag'n'drop + #jstree-dnd& { + line-height:@base-height; padding:0 4px; + .jstree-ok, + .jstree-er { background-image:url("@{image-path}32px.png"); background-repeat:no-repeat; background-color:transparent; } + i { background:transparent; width:@base-height; height:@base-height; line-height:@base-height; } + .jstree-ok { background-position: -(@correction) -(@image-height * 2 + @correction); } + .jstree-er { background-position: -(@image-height * 1 + @correction) -(@image-height * 2 + @correction); } + } + + // ellipsis + .jstree-ellipsis { overflow: hidden; } + // base height + PADDINGS! + .jstree-ellipsis .jstree-anchor { width: calc(100% ~"-" (@base-height + 5px)); text-overflow: ellipsis; overflow: hidden; } + .jstree-ellipsis.jstree-no-icons .jstree-anchor { width: calc(100% ~"-" 5px); } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less new file mode 100644 index 0000000000..364e007518 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less @@ -0,0 +1,67 @@ +@media (max-width: 768px) { + // background image + .jstree-icon { background-image:url("@{image-path}@{base-height}.png"); } + + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + + .jstree-node { min-height:@base-height; line-height:@base-height; margin-left:@base-height; min-width:@base-height; white-space:nowrap; } + .jstree-anchor { line-height:@base-height; height:@base-height; } + .jstree-icon, .jstree-icon:empty { width:@base-height; height:@base-height; line-height:@base-height; } + + > .jstree-container-ul > .jstree-node { margin-left:0; } + &.jstree-rtl .jstree-node { margin-left:0; margin-right:@base-height; background:transparent; } + &.jstree-rtl .jstree-container-ul > .jstree-node { margin-right:0; } + + .jstree-ocl, + .jstree-themeicon, + .jstree-checkbox { background-size:(@base-height * 3) (@base-height * 6); } + .jstree-leaf > .jstree-ocl, + &.jstree-rtl .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:0 0px !important; } + .jstree-closed > .jstree-ocl { background-position:0 -(@base-height * 1) !important; } + &.jstree-rtl .jstree-closed > .jstree-ocl { background-position:-(@base-height * 1) 0px !important; } + + .jstree-themeicon { background-position:-(@base-height * 1) -(@base-height * 1); } + + .jstree-checkbox, .jstree-checkbox:hover { background-position:-(@base-height * 1) -(@base-height * 2); } + &.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + &.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-checked > .jstree-checkbox, + .jstree-checked > .jstree-checkbox:hover { background-position:0 -(@base-height * 2); } + .jstree-anchor > .jstree-undetermined, .jstree-anchor > .jstree-undetermined:hover { background-position:0 -(@base-height * 3); } + + .jstree-anchor { font-weight:bold; font-size:1.1em; text-shadow:1px 1px white; } + + > .jstree-striped { background:transparent; } + .jstree-wholerow { border-top:1px solid @mobile-wholerow-bordert; border-bottom:1px solid @mobile-wholerow-borderb; background:@mobile-wholerow-bg-color; height:@base-height; } + .jstree-wholerow-hovered { background:@hovered-bg-color; } + .jstree-wholerow-clicked { background:@clicked-bg-color; } + + // thanks to PHOTONUI + .jstree-children .jstree-last > .jstree-wholerow { box-shadow: inset 0 -6px 3px -5px @mobile-wholerow-shadow; } + .jstree-children .jstree-open > .jstree-wholerow { box-shadow: inset 0 6px 3px -5px @mobile-wholerow-shadow; border-top:0; } + .jstree-children .jstree-open + .jstree-open { box-shadow:none; } + + // experiment + .jstree-node, + .jstree-icon, + .jstree-node > .jstree-ocl, + .jstree-themeicon, + .jstree-checkbox { background-image:url("@{image-path}@{base-height}.png"); background-size:(@base-height * 3) (@base-height * 6); } + + .jstree-node { background-position:-(@base-height * 2) 0; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + .jstree-leaf > .jstree-ocl { background-position:-(@base-height * 1) -(@base-height * 3); } + .jstree-last > .jstree-ocl { background-position:-(@base-height * 1) -(@base-height * 4); } + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + + .jstree-themeicon-custom { background-color:transparent; background-image:none; background-position:0 0; } + .jstree-file { background:url("@{image-path}@{base-height}.png") 0 -(@base-height * 4) no-repeat; background-size:(@base-height * 3) (@base-height * 6); } + .jstree-folder { background:url("@{image-path}@{base-height}.png") -(@base-height * 1) -(@base-height * 1) no-repeat; background-size:(@base-height * 3) (@base-height * 6); } + + > .jstree-container-ul > .jstree-node { margin-left:0; margin-right:0; } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js new file mode 100644 index 0000000000..9838885177 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js @@ -0,0 +1,38 @@ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.checkbox', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; + if(document.registerElement && Object && Object.create) { + var proto = Object.create(HTMLElement.prototype); + proto.createdCallback = function () { + var c = { core : {}, plugins : [] }, i; + for(i in $.jstree.plugins) { + if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { + c.plugins.push(i); + if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { + c[i] = JSON.parse(this.getAttribute(i)); + } + } + } + for(i in $.jstree.defaults.core) { + if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { + c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); + } + } + $(this).jstree(c); + }; + // proto.attributeChangedCallback = function (name, previous, value) { }; + try { + document.registerElement("vakata-jstree", { prototype: proto }); + } catch(ignore) { } + } +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html new file mode 100644 index 0000000000..0d64e77d67 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html @@ -0,0 +1,16 @@ + + + + + Basic Test Suite + + + + + +
          +
          this had better work.
          + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css new file mode 100644 index 0000000000..2a6a02bf50 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css @@ -0,0 +1,244 @@ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework + * + * http://qunitjs.com + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +/** Font Family and Sizes */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { + font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { + margin: 0; + padding: 0; +} + + +/** Header */ + +#qunit-header { + padding: 0.5em 0 0.5em 1em; + + color: #8699a4; + background-color: #0d3349; + + font-size: 1.5em; + line-height: 1em; + font-weight: normal; + + border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; +} + +#qunit-header a { + text-decoration: none; + color: #c2ccd1; +} + +#qunit-header a:hover, +#qunit-header a:focus { + color: #fff; +} + +#qunit-testrunner-toolbar label { + display: inline-block; + padding: 0 .5em 0 .1em; +} + +#qunit-banner { + height: 5px; +} + +#qunit-testrunner-toolbar { + padding: 0.5em 0 0.5em 2em; + color: #5E740B; + background-color: #eee; + overflow: hidden; +} + +#qunit-userAgent { + padding: 0.5em 0 0.5em 2.5em; + background-color: #2b81af; + color: #fff; + text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; +} + +#qunit-modulefilter-container { + float: right; +} + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-position: inside; +} + +#qunit-tests li { + padding: 0.4em 0.5em 0.4em 2.5em; + border-bottom: 1px solid #fff; + list-style-position: inside; +} + +#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { + display: none; +} + +#qunit-tests li strong { + cursor: pointer; +} + +#qunit-tests li a { + padding: 0.5em; + color: #c2ccd1; + text-decoration: none; +} +#qunit-tests li a:hover, +#qunit-tests li a:focus { + color: #000; +} + +#qunit-tests li .runtime { + float: right; + font-size: smaller; +} + +.qunit-assert-list { + margin-top: 0.5em; + padding: 0.5em; + + background-color: #fff; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +.qunit-collapsed { + display: none; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #e0f2be; + color: #374e0c; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #ffcaca; + color: #500; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.counts { color: black; } +#qunit-tests b.passed { color: #5E740B; } +#qunit-tests b.failed { color: #710909; } + +#qunit-tests li li { + padding: 5px; + background-color: #fff; + border-bottom: none; + list-style-position: inside; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #3c510c; + background-color: #fff; + border-left: 10px solid #C6E746; +} + +#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } +#qunit-tests .pass .test-name { color: #366097; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + +#qunit-banner.qunit-pass { background-color: #C6E746; } + +/*** Failing Styles */ + +#qunit-tests li li.fail { + color: #710909; + background-color: #fff; + border-left: 10px solid #EE5757; + white-space: pre; +} + +#qunit-tests > li:last-child { + border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + -webkit-border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; +} + +#qunit-tests .fail { color: #000000; background-color: #EE5757; } +#qunit-tests .fail .test-name, +#qunit-tests .fail .module-name { color: #000000; } + +#qunit-tests .fail .test-actual { color: #EE5757; } +#qunit-tests .fail .test-expected { color: green; } + +#qunit-banner.qunit-fail { background-color: #EE5757; } + + +/** Result */ + +#qunit-testresult { + padding: 0.5em 0.5em 0.5em 2.5em; + + color: #2b81af; + background-color: #D2E0E6; + + border-bottom: 1px solid white; +} +#qunit-testresult .module-name { + font-weight: bold; +} + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; + width: 1000px; + height: 1000px; +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js new file mode 100644 index 0000000000..7567d5fc51 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js @@ -0,0 +1,2212 @@ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework + * + * http://qunitjs.com + * + * Copyright 2013 jQuery Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license/ + */ + +(function( window ) { + +var QUnit, + assert, + config, + onErrorFnPrev, + testId = 0, + fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""), + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + // Keep a local reference to Date (GH-283) + Date = window.Date, + setTimeout = window.setTimeout, + defined = { + setTimeout: typeof window.setTimeout !== "undefined", + sessionStorage: (function() { + var x = "qunit-test-string"; + try { + sessionStorage.setItem( x, x ); + sessionStorage.removeItem( x ); + return true; + } catch( e ) { + return false; + } + }()) + }, + /** + * Provides a normalized error string, correcting an issue + * with IE 7 (and prior) where Error.prototype.toString is + * not properly implemented + * + * Based on http://es5.github.com/#x15.11.4.4 + * + * @param {String|Error} error + * @return {String} error message + */ + errorString = function( error ) { + var name, message, + errorString = error.toString(); + if ( errorString.substring( 0, 7 ) === "[object" ) { + name = error.name ? error.name.toString() : "Error"; + message = error.message ? error.message.toString() : ""; + if ( name && message ) { + return name + ": " + message; + } else if ( name ) { + return name; + } else if ( message ) { + return message; + } else { + return "Error"; + } + } else { + return errorString; + } + }, + /** + * Makes a clone of an object using only Array or Object as base, + * and copies over the own enumerable properties. + * + * @param {Object} obj + * @return {Object} New object with only the own properties (recursively). + */ + objectValues = function( obj ) { + // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392. + /*jshint newcap: false */ + var key, val, + vals = QUnit.is( "array", obj ) ? [] : {}; + for ( key in obj ) { + if ( hasOwn.call( obj, key ) ) { + val = obj[key]; + vals[key] = val === Object(val) ? objectValues(val) : val; + } + } + return vals; + }; + +function Test( settings ) { + extend( this, settings ); + this.assertions = []; + this.testNumber = ++Test.count; +} + +Test.count = 0; + +Test.prototype = { + init: function() { + var a, b, li, + tests = id( "qunit-tests" ); + + if ( tests ) { + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml; + + // `a` initialized at top of scope + a = document.createElement( "a" ); + a.innerHTML = "Rerun"; + a.href = QUnit.url({ testNumber: this.testNumber }); + + li = document.createElement( "li" ); + li.appendChild( b ); + li.appendChild( a ); + li.className = "running"; + li.id = this.id = "qunit-test-output" + testId++; + + tests.appendChild( li ); + } + }, + setup: function() { + if ( + // Emit moduleStart when we're switching from one module to another + this.module !== config.previousModule || + // They could be equal (both undefined) but if the previousModule property doesn't + // yet exist it means this is the first test in a suite that isn't wrapped in a + // module, in which case we'll just emit a moduleStart event for 'undefined'. + // Without this, reporters can get testStart before moduleStart which is a problem. + !hasOwn.call( config, "previousModule" ) + ) { + if ( hasOwn.call( config, "previousModule" ) ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.previousModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0 }; + runLoggingCallbacks( "moduleStart", QUnit, { + name: this.module + }); + } + + config.current = this; + + this.testEnvironment = extend({ + setup: function() {}, + teardown: function() {} + }, this.moduleTestEnvironment ); + + this.started = +new Date(); + runLoggingCallbacks( "testStart", QUnit, { + name: this.testName, + module: this.module + }); + + /*jshint camelcase:false */ + + + /** + * Expose the current test environment. + * + * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead. + */ + QUnit.current_testEnvironment = this.testEnvironment; + + /*jshint camelcase:true */ + + if ( !config.pollution ) { + saveGlobal(); + } + if ( config.notrycatch ) { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + return; + } + try { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + }, + run: function() { + config.current = this; + + var running = id( "qunit-testresult" ); + + if ( running ) { + running.innerHTML = "Running:
          " + this.nameHtml; + } + + if ( this.async ) { + QUnit.stop(); + } + + this.callbackStarted = +new Date(); + + if ( config.notrycatch ) { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + return; + } + + try { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + } catch( e ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + + QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); + // else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + QUnit.start(); + } + } + }, + teardown: function() { + config.current = this; + if ( config.notrycatch ) { + if ( typeof this.callbackRuntime === "undefined" ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + } + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + return; + } else { + try { + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + } + checkPollution(); + }, + finish: function() { + config.current = this; + if ( config.requireExpects && this.expected === null ) { + QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack ); + } else if ( this.expected !== null && this.expected !== this.assertions.length ) { + QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack ); + } else if ( this.expected === null && !this.assertions.length ) { + QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack ); + } + + var i, assertion, a, b, time, li, ol, + test = this, + good = 0, + bad = 0, + tests = id( "qunit-tests" ); + + this.runtime = +new Date() - this.started; + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + if ( tests ) { + ol = document.createElement( "ol" ); + ol.className = "qunit-assert-list"; + + for ( i = 0; i < this.assertions.length; i++ ) { + assertion = this.assertions[i]; + + li = document.createElement( "li" ); + li.className = assertion.result ? "pass" : "fail"; + li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" ); + ol.appendChild( li ); + + if ( assertion.result ) { + good++; + } else { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + // store result when possible + if ( QUnit.config.reorder && defined.sessionStorage ) { + if ( bad ) { + sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad ); + } else { + sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName ); + } + } + + if ( bad === 0 ) { + addClass( ol, "qunit-collapsed" ); + } + + // `b` initialized at top of scope + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; + + addEvent(b, "click", function() { + var next = b.parentNode.lastChild, + collapsed = hasClass( next, "qunit-collapsed" ); + ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" ); + }); + + addEvent(b, "dblclick", function( e ) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location = QUnit.url({ testNumber: test.testNumber }); + } + }); + + // `time` initialized at top of scope + time = document.createElement( "span" ); + time.className = "runtime"; + time.innerHTML = this.runtime + " ms"; + + // `li` initialized at top of scope + li = id( this.id ); + li.className = bad ? "fail" : "pass"; + li.removeChild( li.firstChild ); + a = li.firstChild; + li.appendChild( b ); + li.appendChild( a ); + li.appendChild( time ); + li.appendChild( ol ); + + } else { + for ( i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[i].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + } + + runLoggingCallbacks( "testDone", QUnit, { + name: this.testName, + module: this.module, + failed: bad, + passed: this.assertions.length - bad, + total: this.assertions.length, + duration: this.runtime + }); + + QUnit.reset(); + + config.current = undefined; + }, + + queue: function() { + var bad, + test = this; + + synchronize(function() { + test.init(); + }); + function run() { + // each of these can by async + synchronize(function() { + test.setup(); + }); + synchronize(function() { + test.run(); + }); + synchronize(function() { + test.teardown(); + }); + synchronize(function() { + test.finish(); + }); + } + + // `bad` initialized at top of scope + // defer when previous test run passed, if storage is available + bad = QUnit.config.reorder && defined.sessionStorage && + +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName ); + + if ( bad ) { + run(); + } else { + synchronize( run, true ); + } + } +}; + +// Root QUnit object. +// `QUnit` initialized at top of scope +QUnit = { + + // call on start of module test to prepend name to all tests + module: function( name, testEnvironment ) { + config.currentModule = name; + config.currentModuleTestEnvironment = testEnvironment; + config.modules[name] = true; + }, + + asyncTest: function( testName, expected, callback ) { + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + QUnit.test( testName, expected, callback, true ); + }, + + test: function( testName, expected, callback, async ) { + var test, + nameHtml = "" + escapeText( testName ) + ""; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + if ( config.currentModule ) { + nameHtml = "" + escapeText( config.currentModule ) + ": " + nameHtml; + } + + test = new Test({ + nameHtml: nameHtml, + testName: testName, + expected: expected, + async: async, + callback: callback, + module: config.currentModule, + moduleTestEnvironment: config.currentModuleTestEnvironment, + stack: sourceFromStacktrace( 2 ) + }); + + if ( !validTest( test ) ) { + return; + } + + test.queue(); + }, + + // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through. + expect: function( asserts ) { + if (arguments.length === 1) { + config.current.expected = asserts; + } else { + return config.current.expected; + } + }, + + start: function( count ) { + // QUnit hasn't been initialized yet. + // Note: RequireJS (et al) may delay onLoad + if ( config.semaphore === undefined ) { + QUnit.begin(function() { + // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first + setTimeout(function() { + QUnit.start( count ); + }); + }); + return; + } + + config.semaphore -= count || 1; + // don't start until equal number of stop-calls + if ( config.semaphore > 0 ) { + return; + } + // ignore if start is called more often then stop + if ( config.semaphore < 0 ) { + config.semaphore = 0; + QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) ); + return; + } + // A slight delay, to avoid any current callbacks + if ( defined.setTimeout ) { + setTimeout(function() { + if ( config.semaphore > 0 ) { + return; + } + if ( config.timeout ) { + clearTimeout( config.timeout ); + } + + config.blocking = false; + process( true ); + }, 13); + } else { + config.blocking = false; + process( true ); + } + }, + + stop: function( count ) { + config.semaphore += count || 1; + config.blocking = true; + + if ( config.testTimeout && defined.setTimeout ) { + clearTimeout( config.timeout ); + config.timeout = setTimeout(function() { + QUnit.ok( false, "Test timed out" ); + config.semaphore = 1; + QUnit.start(); + }, config.testTimeout ); + } + } +}; + +// `assert` initialized at top of scope +// Assert helpers +// All of these must either call QUnit.push() or manually do: +// - runLoggingCallbacks( "log", .. ); +// - config.current.assertions.push({ .. }); +// We attach it to the QUnit object *after* we expose the public API, +// otherwise `assert` will become a global variable in browsers (#341). +assert = { + /** + * Asserts rough true-ish result. + * @name ok + * @function + * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); + */ + ok: function( result, msg ) { + if ( !config.current ) { + throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + result = !!result; + msg = msg || (result ? "okay" : "failed" ); + + var source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: msg + }; + + msg = "" + escapeText( msg ) + ""; + + if ( !result ) { + source = sourceFromStacktrace( 2 ); + if ( source ) { + details.source = source; + msg += "
          Source:
          " + escapeText( source ) + "
          "; + } + } + runLoggingCallbacks( "log", QUnit, details ); + config.current.assertions.push({ + result: result, + message: msg + }); + }, + + /** + * Assert that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * @name equal + * @function + * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" ); + */ + equal: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected == actual, actual, expected, message ); + }, + + /** + * @name notEqual + * @function + */ + notEqual: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected != actual, actual, expected, message ); + }, + + /** + * @name propEqual + * @function + */ + propEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notPropEqual + * @function + */ + notPropEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name deepEqual + * @function + */ + deepEqual: function( actual, expected, message ) { + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notDeepEqual + * @function + */ + notDeepEqual: function( actual, expected, message ) { + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name strictEqual + * @function + */ + strictEqual: function( actual, expected, message ) { + QUnit.push( expected === actual, actual, expected, message ); + }, + + /** + * @name notStrictEqual + * @function + */ + notStrictEqual: function( actual, expected, message ) { + QUnit.push( expected !== actual, actual, expected, message ); + }, + + "throws": function( block, expected, message ) { + var actual, + expectedOutput = expected, + ok = false; + + // 'expected' is optional + if ( typeof expected === "string" ) { + message = expected; + expected = null; + } + + config.current.ignoreGlobalErrors = true; + try { + block.call( config.current.testEnvironment ); + } catch (e) { + actual = e; + } + config.current.ignoreGlobalErrors = false; + + if ( actual ) { + // we don't want to validate thrown error + if ( !expected ) { + ok = true; + expectedOutput = null; + // expected is a regexp + } else if ( QUnit.objectType( expected ) === "regexp" ) { + ok = expected.test( errorString( actual ) ); + // expected is a constructor + } else if ( actual instanceof expected ) { + ok = true; + // expected is a validation function which returns true is validation passed + } else if ( expected.call( {}, actual ) === true ) { + expectedOutput = null; + ok = true; + } + + QUnit.push( ok, actual, expectedOutput, message ); + } else { + QUnit.pushFailure( message, null, "No exception was thrown." ); + } + } +}; + +/** + * @deprecated since 1.8.0 + * Kept assertion helpers in root for backwards compatibility. + */ +extend( QUnit, assert ); + +/** + * @deprecated since 1.9.0 + * Kept root "raises()" for backwards compatibility. + * (Note that we don't introduce assert.raises). + */ +QUnit.raises = assert[ "throws" ]; + +/** + * @deprecated since 1.0.0, replaced with error pushes since 1.3.0 + * Kept to avoid TypeErrors for undefined methods. + */ +QUnit.equals = function() { + QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" ); +}; +QUnit.same = function() { + QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" ); +}; + +// We want access to the constructor's prototype +(function() { + function F() {} + F.prototype = QUnit; + QUnit = new F(); + // Make F QUnit's constructor so that we can add to the prototype later + QUnit.constructor = F; +}()); + +/** + * Config object: Maintain internal state + * Later exposed as QUnit.config + * `config` initialized at top of scope + */ +config = { + // The queue of tests to run + queue: [], + + // block until document ready + blocking: true, + + // when enabled, show only failing tests + // gets persisted through sessionStorage and can be changed in UI via checkbox + hidepassed: false, + + // by default, run previously failed tests first + // very useful in combination with "Hide passed tests" checked + reorder: true, + + // by default, modify document.title when suite is done + altertitle: true, + + // when enabled, all tests must call expect() + requireExpects: false, + + // add checkboxes that are persisted in the query-string + // when enabled, the id is set to `true` as a `QUnit.config` property + urlConfig: [ + { + id: "noglobals", + label: "Check for Globals", + tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings." + }, + { + id: "notrycatch", + label: "No try-catch", + tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings." + } + ], + + // Set of all modules. + modules: {}, + + // logging callback queues + begin: [], + done: [], + log: [], + testStart: [], + testDone: [], + moduleStart: [], + moduleDone: [] +}; + +// Export global variables, unless an 'exports' object exists, +// in that case we assume we're in CommonJS (dealt with on the bottom of the script) +if ( typeof exports === "undefined" ) { + extend( window, QUnit.constructor.prototype ); + + // Expose QUnit object + window.QUnit = QUnit; +} + +// Initialize more QUnit.config and QUnit.urlParams +(function() { + var i, + location = window.location || { search: "", protocol: "file:" }, + params = location.search.slice( 1 ).split( "&" ), + length = params.length, + urlParams = {}, + current; + + if ( params[ 0 ] ) { + for ( i = 0; i < length; i++ ) { + current = params[ i ].split( "=" ); + current[ 0 ] = decodeURIComponent( current[ 0 ] ); + // allow just a key to turn on a flag, e.g., test.html?noglobals + current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; + urlParams[ current[ 0 ] ] = current[ 1 ]; + } + } + + QUnit.urlParams = urlParams; + + // String search anywhere in moduleName+testName + config.filter = urlParams.filter; + + // Exact match of the module name + config.module = urlParams.module; + + config.testNumber = parseInt( urlParams.testNumber, 10 ) || null; + + // Figure out if we're running the tests from a server or not + QUnit.isLocal = location.protocol === "file:"; +}()); + +// Extend QUnit object, +// these after set here because they should not be exposed as global functions +extend( QUnit, { + assert: assert, + + config: config, + + // Initialize the configuration options + init: function() { + extend( config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: +new Date(), + updateRate: 1000, + blocking: false, + autostart: true, + autorun: false, + filter: "", + queue: [], + semaphore: 1 + }); + + var tests, banner, result, + qunit = id( "qunit" ); + + if ( qunit ) { + qunit.innerHTML = + "

          " + escapeText( document.title ) + "

          " + + "

          " + + "
          " + + "

          " + + "
            "; + } + + tests = id( "qunit-tests" ); + banner = id( "qunit-banner" ); + result = id( "qunit-testresult" ); + + if ( tests ) { + tests.innerHTML = ""; + } + + if ( banner ) { + banner.className = ""; + } + + if ( result ) { + result.parentNode.removeChild( result ); + } + + if ( tests ) { + result = document.createElement( "p" ); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests ); + result.innerHTML = "Running...
             "; + } + }, + + // Resets the test setup. Useful for tests that modify the DOM. + /* + DEPRECATED: Use multiple tests instead of resetting inside a test. + Use testStart or testDone for custom cleanup. + This method will throw an error in 2.0, and will be removed in 2.1 + */ + reset: function() { + var fixture = id( "qunit-fixture" ); + if ( fixture ) { + fixture.innerHTML = config.fixture; + } + }, + + // Trigger an event on an element. + // @example triggerEvent( document.body, "click" ); + triggerEvent: function( elem, type, event ) { + if ( document.createEvent ) { + event = document.createEvent( "MouseEvents" ); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + + elem.dispatchEvent( event ); + } else if ( elem.fireEvent ) { + elem.fireEvent( "on" + type ); + } + }, + + // Safe object type checking + is: function( type, obj ) { + return QUnit.objectType( obj ) === type; + }, + + objectType: function( obj ) { + if ( typeof obj === "undefined" ) { + return "undefined"; + // consider: typeof null === object + } + if ( obj === null ) { + return "null"; + } + + var match = toString.call( obj ).match(/^\[object\s(.*)\]$/), + type = match && match[1] || ""; + + switch ( type ) { + case "Number": + if ( isNaN(obj) ) { + return "nan"; + } + return "number"; + case "String": + case "Boolean": + case "Array": + case "Date": + case "RegExp": + case "Function": + return type.toLowerCase(); + } + if ( typeof obj === "object" ) { + return "object"; + } + return undefined; + }, + + push: function( result, actual, expected, message ) { + if ( !config.current ) { + throw new Error( "assertion outside test context, was " + sourceFromStacktrace() ); + } + + var output, source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: message, + actual: actual, + expected: expected + }; + + message = escapeText( message ) || ( result ? "okay" : "failed" ); + message = "" + message + ""; + output = message; + + if ( !result ) { + expected = escapeText( QUnit.jsDump.parse(expected) ); + actual = escapeText( QUnit.jsDump.parse(actual) ); + output += ""; + + if ( actual !== expected ) { + output += ""; + output += ""; + } + + source = sourceFromStacktrace(); + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
            Expected:
            " + expected + "
            Result:
            " + actual + "
            Diff:
            " + QUnit.diff( expected, actual ) + "
            Source:
            " + escapeText( source ) + "
            "; + } + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: !!result, + message: output + }); + }, + + pushFailure: function( message, source, actual ) { + if ( !config.current ) { + throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + + var output, + details = { + module: config.current.module, + name: config.current.testName, + result: false, + message: message + }; + + message = escapeText( message ) || "error"; + message = "" + message + ""; + output = message; + + output += ""; + + if ( actual ) { + output += ""; + } + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
            Result:
            " + escapeText( actual ) + "
            Source:
            " + escapeText( source ) + "
            "; + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: false, + message: output + }); + }, + + url: function( params ) { + params = extend( extend( {}, QUnit.urlParams ), params ); + var key, + querystring = "?"; + + for ( key in params ) { + if ( hasOwn.call( params, key ) ) { + querystring += encodeURIComponent( key ) + "=" + + encodeURIComponent( params[ key ] ) + "&"; + } + } + return window.location.protocol + "//" + window.location.host + + window.location.pathname + querystring.slice( 0, -1 ); + }, + + extend: extend, + id: id, + addEvent: addEvent, + addClass: addClass, + hasClass: hasClass, + removeClass: removeClass + // load, equiv, jsDump, diff: Attached later +}); + +/** + * @deprecated: Created for backwards compatibility with test runner that set the hook function + * into QUnit.{hook}, instead of invoking it and passing the hook function. + * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here. + * Doing this allows us to tell if the following methods have been overwritten on the actual + * QUnit object. + */ +extend( QUnit.constructor.prototype, { + + // Logging callbacks; all receive a single argument with the listed properties + // run test/logs.html for any related changes + begin: registerLoggingCallback( "begin" ), + + // done: { failed, passed, total, runtime } + done: registerLoggingCallback( "done" ), + + // log: { result, actual, expected, message } + log: registerLoggingCallback( "log" ), + + // testStart: { name } + testStart: registerLoggingCallback( "testStart" ), + + // testDone: { name, failed, passed, total, duration } + testDone: registerLoggingCallback( "testDone" ), + + // moduleStart: { name } + moduleStart: registerLoggingCallback( "moduleStart" ), + + // moduleDone: { name, failed, passed, total } + moduleDone: registerLoggingCallback( "moduleDone" ) +}); + +if ( typeof document === "undefined" || document.readyState === "complete" ) { + config.autorun = true; +} + +QUnit.load = function() { + runLoggingCallbacks( "begin", QUnit, {} ); + + // Initialize the config, saving the execution queue + var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, + urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter, + numModules = 0, + moduleNames = [], + moduleFilterHtml = "", + urlConfigHtml = "", + oldconfig = extend( {}, config ); + + QUnit.init(); + extend(config, oldconfig); + + config.blocking = false; + + len = config.urlConfig.length; + + for ( i = 0; i < len; i++ ) { + val = config.urlConfig[i]; + if ( typeof val === "string" ) { + val = { + id: val, + label: val, + tooltip: "[no tooltip available]" + }; + } + config[ val.id ] = QUnit.urlParams[ val.id ]; + urlConfigHtml += ""; + } + for ( i in config.modules ) { + if ( config.modules.hasOwnProperty( i ) ) { + moduleNames.push(i); + } + } + numModules = moduleNames.length; + moduleNames.sort( function( a, b ) { + return a.localeCompare( b ); + }); + moduleFilterHtml += ""; + + // `userAgent` initialized at top of scope + userAgent = id( "qunit-userAgent" ); + if ( userAgent ) { + userAgent.innerHTML = navigator.userAgent; + } + + // `banner` initialized at top of scope + banner = id( "qunit-header" ); + if ( banner ) { + banner.innerHTML = "" + banner.innerHTML + " "; + } + + // `toolbar` initialized at top of scope + toolbar = id( "qunit-testrunner-toolbar" ); + if ( toolbar ) { + // `filter` initialized at top of scope + filter = document.createElement( "input" ); + filter.type = "checkbox"; + filter.id = "qunit-filter-pass"; + + addEvent( filter, "click", function() { + var tmp, + ol = document.getElementById( "qunit-tests" ); + + if ( filter.checked ) { + ol.className = ol.className + " hidepass"; + } else { + tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; + ol.className = tmp.replace( / hidepass /, " " ); + } + if ( defined.sessionStorage ) { + if (filter.checked) { + sessionStorage.setItem( "qunit-filter-passed-tests", "true" ); + } else { + sessionStorage.removeItem( "qunit-filter-passed-tests" ); + } + } + }); + + if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) { + filter.checked = true; + // `ol` initialized at top of scope + ol = document.getElementById( "qunit-tests" ); + ol.className = ol.className + " hidepass"; + } + toolbar.appendChild( filter ); + + // `label` initialized at top of scope + label = document.createElement( "label" ); + label.setAttribute( "for", "qunit-filter-pass" ); + label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." ); + label.innerHTML = "Hide passed tests"; + toolbar.appendChild( label ); + + urlConfigCheckboxesContainer = document.createElement("span"); + urlConfigCheckboxesContainer.innerHTML = urlConfigHtml; + urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input"); + // For oldIE support: + // * Add handlers to the individual elements instead of the container + // * Use "click" instead of "change" + // * Fallback from event.target to event.srcElement + addEvents( urlConfigCheckboxes, "click", function( event ) { + var params = {}, + target = event.target || event.srcElement; + params[ target.name ] = target.checked ? true : undefined; + window.location = QUnit.url( params ); + }); + toolbar.appendChild( urlConfigCheckboxesContainer ); + + if (numModules > 1) { + moduleFilter = document.createElement( "span" ); + moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); + moduleFilter.innerHTML = moduleFilterHtml; + addEvent( moduleFilter.lastChild, "change", function() { + var selectBox = moduleFilter.getElementsByTagName("select")[0], + selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value); + + window.location = QUnit.url({ + module: ( selectedModule === "" ) ? undefined : selectedModule, + // Remove any existing filters + filter: undefined, + testNumber: undefined + }); + }); + toolbar.appendChild(moduleFilter); + } + } + + // `main` initialized at top of scope + main = id( "qunit-fixture" ); + if ( main ) { + config.fixture = main.innerHTML; + } + + if ( config.autostart ) { + QUnit.start(); + } +}; + +addEvent( window, "load", QUnit.load ); + +// `onErrorFnPrev` initialized at top of scope +// Preserve other handlers +onErrorFnPrev = window.onerror; + +// Cover uncaught exceptions +// Returning true will suppress the default browser handler, +// returning false will let it run. +window.onerror = function ( error, filePath, linerNr ) { + var ret = false; + if ( onErrorFnPrev ) { + ret = onErrorFnPrev( error, filePath, linerNr ); + } + + // Treat return value as window.onerror itself does, + // Only do our handling if not suppressed. + if ( ret !== true ) { + if ( QUnit.config.current ) { + if ( QUnit.config.current.ignoreGlobalErrors ) { + return true; + } + QUnit.pushFailure( error, filePath + ":" + linerNr ); + } else { + QUnit.test( "global failure", extend( function() { + QUnit.pushFailure( error, filePath + ":" + linerNr ); + }, { validTest: validTest } ) ); + } + return false; + } + + return ret; +}; + +function done() { + config.autorun = true; + + // Log the last module results + if ( config.currentModule ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.currentModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + delete config.previousModule; + + var i, key, + banner = id( "qunit-banner" ), + tests = id( "qunit-tests" ), + runtime = +new Date() - config.started, + passed = config.stats.all - config.stats.bad, + html = [ + "Tests completed in ", + runtime, + " milliseconds.
            ", + "", + passed, + " assertions of ", + config.stats.all, + " passed, ", + config.stats.bad, + " failed." + ].join( "" ); + + if ( banner ) { + banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" ); + } + + if ( tests ) { + id( "qunit-testresult" ).innerHTML = html; + } + + if ( config.altertitle && typeof document !== "undefined" && document.title ) { + // show ✖ for good, ✔ for bad suite result in title + // use escape sequences in case file gets loaded with non-utf-8-charset + document.title = [ + ( config.stats.bad ? "\u2716" : "\u2714" ), + document.title.replace( /^[\u2714\u2716] /i, "" ) + ].join( " " ); + } + + // clear own sessionStorage items if all tests passed + if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { + // `key` & `i` initialized at top of scope + for ( i = 0; i < sessionStorage.length; i++ ) { + key = sessionStorage.key( i++ ); + if ( key.indexOf( "qunit-test-" ) === 0 ) { + sessionStorage.removeItem( key ); + } + } + } + + // scroll back to top to show results + if ( window.scrollTo ) { + window.scrollTo(0, 0); + } + + runLoggingCallbacks( "done", QUnit, { + failed: config.stats.bad, + passed: passed, + total: config.stats.all, + runtime: runtime + }); +} + +/** @return Boolean: true if this test should be ran */ +function validTest( test ) { + var include, + filter = config.filter && config.filter.toLowerCase(), + module = config.module && config.module.toLowerCase(), + fullName = (test.module + ": " + test.testName).toLowerCase(); + + // Internally-generated tests are always valid + if ( test.callback && test.callback.validTest === validTest ) { + delete test.callback.validTest; + return true; + } + + if ( config.testNumber ) { + return test.testNumber === config.testNumber; + } + + if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) { + return false; + } + + if ( !filter ) { + return true; + } + + include = filter.charAt( 0 ) !== "!"; + if ( !include ) { + filter = filter.slice( 1 ); + } + + // If the filter matches, we need to honour include + if ( fullName.indexOf( filter ) !== -1 ) { + return include; + } + + // Otherwise, do the opposite + return !include; +} + +// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) +// Later Safari and IE10 are supposed to support error.stack as well +// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack +function extractStacktrace( e, offset ) { + offset = offset === undefined ? 3 : offset; + + var stack, include, i; + + if ( e.stacktrace ) { + // Opera + return e.stacktrace.split( "\n" )[ offset + 3 ]; + } else if ( e.stack ) { + // Firefox, Chrome + stack = e.stack.split( "\n" ); + if (/^error$/i.test( stack[0] ) ) { + stack.shift(); + } + if ( fileName ) { + include = []; + for ( i = offset; i < stack.length; i++ ) { + if ( stack[ i ].indexOf( fileName ) !== -1 ) { + break; + } + include.push( stack[ i ] ); + } + if ( include.length ) { + return include.join( "\n" ); + } + } + return stack[ offset ]; + } else if ( e.sourceURL ) { + // Safari, PhantomJS + // hopefully one day Safari provides actual stacktraces + // exclude useless self-reference for generated Error objects + if ( /qunit.js$/.test( e.sourceURL ) ) { + return; + } + // for actual exceptions, this is useful + return e.sourceURL + ":" + e.line; + } +} +function sourceFromStacktrace( offset ) { + try { + throw new Error(); + } catch ( e ) { + return extractStacktrace( e, offset ); + } +} + +/** + * Escape text for attribute or text content. + */ +function escapeText( s ) { + if ( !s ) { + return ""; + } + s = s + ""; + // Both single quotes and double quotes (for attributes) + return s.replace( /['"<>&]/g, function( s ) { + switch( s ) { + case "'": + return "'"; + case "\"": + return """; + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + } + }); +} + +function synchronize( callback, last ) { + config.queue.push( callback ); + + if ( config.autorun && !config.blocking ) { + process( last ); + } +} + +function process( last ) { + function next() { + process( last ); + } + var start = new Date().getTime(); + config.depth = config.depth ? config.depth + 1 : 1; + + while ( config.queue.length && !config.blocking ) { + if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { + config.queue.shift()(); + } else { + setTimeout( next, 13 ); + break; + } + } + config.depth--; + if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { + done(); + } +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in window ) { + if ( hasOwn.call( window, key ) ) { + // in Opera sometimes DOM element ids show up here, ignore them + if ( /^qunit-test-output/.test( key ) ) { + continue; + } + config.pollution.push( key ); + } + } + } +} + +function checkPollution() { + var newGlobals, + deletedGlobals, + old = config.pollution; + + saveGlobal(); + + newGlobals = diff( config.pollution, old ); + if ( newGlobals.length > 0 ) { + QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); + } + + deletedGlobals = diff( old, config.pollution ); + if ( deletedGlobals.length > 0 ) { + QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); + } +} + +// returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var i, j, + result = a.slice(); + + for ( i = 0; i < result.length; i++ ) { + for ( j = 0; j < b.length; j++ ) { + if ( result[i] === b[j] ) { + result.splice( i, 1 ); + i--; + break; + } + } + } + return result; +} + +function extend( a, b ) { + for ( var prop in b ) { + if ( hasOwn.call( b, prop ) ) { + // Avoid "Member not found" error in IE8 caused by messing with window.constructor + if ( !( prop === "constructor" && a === window ) ) { + if ( b[ prop ] === undefined ) { + delete a[ prop ]; + } else { + a[ prop ] = b[ prop ]; + } + } + } + } + + return a; +} + +/** + * @param {HTMLElement} elem + * @param {string} type + * @param {Function} fn + */ +function addEvent( elem, type, fn ) { + // Standards-based browsers + if ( elem.addEventListener ) { + elem.addEventListener( type, fn, false ); + // IE + } else { + elem.attachEvent( "on" + type, fn ); + } +} + +/** + * @param {Array|NodeList} elems + * @param {string} type + * @param {Function} fn + */ +function addEvents( elems, type, fn ) { + var i = elems.length; + while ( i-- ) { + addEvent( elems[i], type, fn ); + } +} + +function hasClass( elem, name ) { + return (" " + elem.className + " ").indexOf(" " + name + " ") > -1; +} + +function addClass( elem, name ) { + if ( !hasClass( elem, name ) ) { + elem.className += (elem.className ? " " : "") + name; + } +} + +function removeClass( elem, name ) { + var set = " " + elem.className + " "; + // Class name may appear multiple times + while ( set.indexOf(" " + name + " ") > -1 ) { + set = set.replace(" " + name + " " , " "); + } + // If possible, trim it for prettiness, but not necessarily + elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, ""); +} + +function id( name ) { + return !!( typeof document !== "undefined" && document && document.getElementById ) && + document.getElementById( name ); +} + +function registerLoggingCallback( key ) { + return function( callback ) { + config[key].push( callback ); + }; +} + +// Supports deprecated method of completely overwriting logging callbacks +function runLoggingCallbacks( key, scope, args ) { + var i, callbacks; + if ( QUnit.hasOwnProperty( key ) ) { + QUnit[ key ].call(scope, args ); + } else { + callbacks = config[ key ]; + for ( i = 0; i < callbacks.length; i++ ) { + callbacks[ i ].call( scope, args ); + } + } +} + +// Test for equality any JavaScript type. +// Author: Philippe Rathé +QUnit.equiv = (function() { + + // Call the o related callback with the given arguments. + function bindCallbacks( o, callbacks, args ) { + var prop = QUnit.objectType( o ); + if ( prop ) { + if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { + return callbacks[ prop ].apply( callbacks, args ); + } else { + return callbacks[ prop ]; // or undefined + } + } + } + + // the real equiv function + var innerEquiv, + // stack to decide between skip/abort functions + callers = [], + // stack to avoiding loops from circular referencing + parents = [], + parentsB = [], + + getProto = Object.getPrototypeOf || function ( obj ) { + /*jshint camelcase:false */ + return obj.__proto__; + }, + callbacks = (function () { + + // for string, boolean, number and null + function useStrictEquality( b, a ) { + /*jshint eqeqeq:false */ + if ( b instanceof a.constructor || a instanceof b.constructor ) { + // to catch short annotation VS 'new' annotation of a + // declaration + // e.g. var i = 1; + // var j = new Number(1); + return a == b; + } else { + return a === b; + } + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function( b ) { + return isNaN( b ); + }, + + "date": function( b, a ) { + return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function( b, a ) { + return QUnit.objectType( b ) === "regexp" && + // the regex itself + a.source === b.source && + // and its modifiers + a.global === b.global && + // (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline && + a.sticky === b.sticky; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function() { + var caller = callers[callers.length - 1]; + return caller !== Object && typeof caller !== "undefined"; + }, + + "array": function( b, a ) { + var i, j, len, loop, aCircular, bCircular; + + // b could be an object literal here + if ( QUnit.objectType( b ) !== "array" ) { + return false; + } + + len = a.length; + if ( len !== b.length ) { + // safe and faster + return false; + } + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + for ( i = 0; i < len; i++ ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + parents.pop(); + parentsB.pop(); + return false; + } + } + } + if ( !loop && !innerEquiv(a[i], b[i]) ) { + parents.pop(); + parentsB.pop(); + return false; + } + } + parents.pop(); + parentsB.pop(); + return true; + }, + + "object": function( b, a ) { + /*jshint forin:false */ + var i, j, loop, aCircular, bCircular, + // Default to true + eq = true, + aProperties = [], + bProperties = []; + + // comparing constructors is more strict than using + // instanceof + if ( a.constructor !== b.constructor ) { + // Allow objects with no prototype to be equivalent to + // objects with Object as their constructor. + if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) || + ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) { + return false; + } + } + + // stack constructor before traversing properties + callers.push( a.constructor ); + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + + // be strict: don't ensure hasOwnProperty and go deep + for ( i in a ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + eq = false; + break; + } + } + } + aProperties.push(i); + if ( !loop && !innerEquiv(a[i], b[i]) ) { + eq = false; + break; + } + } + + parents.pop(); + parentsB.pop(); + callers.pop(); // unstack, we are done + + for ( i in b ) { + bProperties.push( i ); // collect b's properties + } + + // Ensures identical properties name + return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); + } + }; + }()); + + innerEquiv = function() { // can take multiple arguments + var args = [].slice.apply( arguments ); + if ( args.length < 2 ) { + return true; // end transition + } + + return (function( a, b ) { + if ( a === b ) { + return true; // catch the most you can + } else if ( a === null || b === null || typeof a === "undefined" || + typeof b === "undefined" || + QUnit.objectType(a) !== QUnit.objectType(b) ) { + return false; // don't lose time with error prone cases + } else { + return bindCallbacks(a, callbacks, [ b, a ]); + } + + // apply transition with (1..n) arguments + }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) ); + }; + + return innerEquiv; +}()); + +/** + * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | + * http://flesler.blogspot.com Licensed under BSD + * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 + * + * @projectDescription Advanced and extensible data dumping for Javascript. + * @version 1.0.0 + * @author Ariel Flesler + * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} + */ +QUnit.jsDump = (function() { + function quote( str ) { + return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; + } + function literal( o ) { + return o + ""; + } + function join( pre, arr, post ) { + var s = jsDump.separator(), + base = jsDump.indent(), + inner = jsDump.indent(1); + if ( arr.join ) { + arr = arr.join( "," + s + inner ); + } + if ( !arr ) { + return pre + post; + } + return [ pre, inner + arr, base + post ].join(s); + } + function array( arr, stack ) { + var i = arr.length, ret = new Array(i); + this.up(); + while ( i-- ) { + ret[i] = this.parse( arr[i] , undefined , stack); + } + this.down(); + return join( "[", ret, "]" ); + } + + var reName = /^function (\w+)/, + jsDump = { + // type is used mostly internally, you can fix a (custom)type in advance + parse: function( obj, type, stack ) { + stack = stack || [ ]; + var inStack, res, + parser = this.parsers[ type || this.typeOf(obj) ]; + + type = typeof parser; + inStack = inArray( obj, stack ); + + if ( inStack !== -1 ) { + return "recursion(" + (inStack - stack.length) + ")"; + } + if ( type === "function" ) { + stack.push( obj ); + res = parser.call( this, obj, stack ); + stack.pop(); + return res; + } + return ( type === "string" ) ? parser : this.parsers.error; + }, + typeOf: function( obj ) { + var type; + if ( obj === null ) { + type = "null"; + } else if ( typeof obj === "undefined" ) { + type = "undefined"; + } else if ( QUnit.is( "regexp", obj) ) { + type = "regexp"; + } else if ( QUnit.is( "date", obj) ) { + type = "date"; + } else if ( QUnit.is( "function", obj) ) { + type = "function"; + } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) { + type = "window"; + } else if ( obj.nodeType === 9 ) { + type = "document"; + } else if ( obj.nodeType ) { + type = "node"; + } else if ( + // native arrays + toString.call( obj ) === "[object Array]" || + // NodeList objects + ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) + ) { + type = "array"; + } else if ( obj.constructor === Error.prototype.constructor ) { + type = "error"; + } else { + type = typeof obj; + } + return type; + }, + separator: function() { + return this.multiline ? this.HTML ? "
            " : "\n" : this.HTML ? " " : " "; + }, + // extra can be a number, shortcut for increasing-calling-decreasing + indent: function( extra ) { + if ( !this.multiline ) { + return ""; + } + var chr = this.indentChar; + if ( this.HTML ) { + chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); + } + return new Array( this.depth + ( extra || 0 ) ).join(chr); + }, + up: function( a ) { + this.depth += a || 1; + }, + down: function( a ) { + this.depth -= a || 1; + }, + setParser: function( name, parser ) { + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote: quote, + literal: literal, + join: join, + // + depth: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers: { + window: "[Window]", + document: "[Document]", + error: function(error) { + return "Error(\"" + error.message + "\")"; + }, + unknown: "[Unknown]", + "null": "null", + "undefined": "undefined", + "function": function( fn ) { + var ret = "function", + // functions never have name in IE + name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1]; + + if ( name ) { + ret += " " + name; + } + ret += "( "; + + ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" ); + return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" ); + }, + array: array, + nodelist: array, + "arguments": array, + object: function( map, stack ) { + /*jshint forin:false */ + var ret = [ ], keys, key, val, i; + QUnit.jsDump.up(); + keys = []; + for ( key in map ) { + keys.push( key ); + } + keys.sort(); + for ( i = 0; i < keys.length; i++ ) { + key = keys[ i ]; + val = map[ key ]; + ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) ); + } + QUnit.jsDump.down(); + return join( "{", ret, "}" ); + }, + node: function( node ) { + var len, i, val, + open = QUnit.jsDump.HTML ? "<" : "<", + close = QUnit.jsDump.HTML ? ">" : ">", + tag = node.nodeName.toLowerCase(), + ret = open + tag, + attrs = node.attributes; + + if ( attrs ) { + for ( i = 0, len = attrs.length; i < len; i++ ) { + val = attrs[i].nodeValue; + // IE6 includes all attributes in .attributes, even ones not explicitly set. + // Those have values like undefined, null, 0, false, "" or "inherit". + if ( val && val !== "inherit" ) { + ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" ); + } + } + } + ret += close; + + // Show content of TextNode or CDATASection + if ( node.nodeType === 3 || node.nodeType === 4 ) { + ret += node.nodeValue; + } + + return ret + open + "/" + tag + close; + }, + // function calls it internally, it's the arguments part of the function + functionArgs: function( fn ) { + var args, + l = fn.length; + + if ( !l ) { + return ""; + } + + args = new Array(l); + while ( l-- ) { + // 97 is 'a' + args[l] = String.fromCharCode(97+l); + } + return " " + args.join( ", " ) + " "; + }, + // object calls it internally, the key part of an item in a map + key: quote, + // function calls it internally, it's the content of the function + functionCode: "[code]", + // node calls it internally, it's an html attribute value + attribute: quote, + string: quote, + date: quote, + regexp: literal, + number: literal, + "boolean": literal + }, + // if true, entities are escaped ( <, >, \t, space and \n ) + HTML: false, + // indentation unit + indentChar: " ", + // if true, items in a collection, are separated by a \n, else just a space. + multiline: true + }; + + return jsDump; +}()); + +// from jquery.js +function inArray( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; +} + +/* + * Javascript Diff Algorithm + * By John Resig (http://ejohn.org/) + * Modified by Chu Alan "sprite" + * + * Released under the MIT license. + * + * More Info: + * http://ejohn.org/projects/javascript-diff-algorithm/ + * + * Usage: QUnit.diff(expected, actual) + * + * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over" + */ +QUnit.diff = (function() { + /*jshint eqeqeq:false, eqnull:true */ + function diff( o, n ) { + var i, + ns = {}, + os = {}; + + for ( i = 0; i < n.length; i++ ) { + if ( !hasOwn.call( ns, n[i] ) ) { + ns[ n[i] ] = { + rows: [], + o: null + }; + } + ns[ n[i] ].rows.push( i ); + } + + for ( i = 0; i < o.length; i++ ) { + if ( !hasOwn.call( os, o[i] ) ) { + os[ o[i] ] = { + rows: [], + n: null + }; + } + os[ o[i] ].rows.push( i ); + } + + for ( i in ns ) { + if ( hasOwn.call( ns, i ) ) { + if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) { + n[ ns[i].rows[0] ] = { + text: n[ ns[i].rows[0] ], + row: os[i].rows[0] + }; + o[ os[i].rows[0] ] = { + text: o[ os[i].rows[0] ], + row: ns[i].rows[0] + }; + } + } + } + + for ( i = 0; i < n.length - 1; i++ ) { + if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null && + n[ i + 1 ] == o[ n[i].row + 1 ] ) { + + n[ i + 1 ] = { + text: n[ i + 1 ], + row: n[i].row + 1 + }; + o[ n[i].row + 1 ] = { + text: o[ n[i].row + 1 ], + row: i + 1 + }; + } + } + + for ( i = n.length - 1; i > 0; i-- ) { + if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null && + n[ i - 1 ] == o[ n[i].row - 1 ]) { + + n[ i - 1 ] = { + text: n[ i - 1 ], + row: n[i].row - 1 + }; + o[ n[i].row - 1 ] = { + text: o[ n[i].row - 1 ], + row: i - 1 + }; + } + } + + return { + o: o, + n: n + }; + } + + return function( o, n ) { + o = o.replace( /\s+$/, "" ); + n = n.replace( /\s+$/, "" ); + + var i, pre, + str = "", + out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ), + oSpace = o.match(/\s+/g), + nSpace = n.match(/\s+/g); + + if ( oSpace == null ) { + oSpace = [ " " ]; + } + else { + oSpace.push( " " ); + } + + if ( nSpace == null ) { + nSpace = [ " " ]; + } + else { + nSpace.push( " " ); + } + + if ( out.n.length === 0 ) { + for ( i = 0; i < out.o.length; i++ ) { + str += "" + out.o[i] + oSpace[i] + ""; + } + } + else { + if ( out.n[0].text == null ) { + for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) { + str += "" + out.o[n] + oSpace[n] + ""; + } + } + + for ( i = 0; i < out.n.length; i++ ) { + if (out.n[i].text == null) { + str += "" + out.n[i] + nSpace[i] + ""; + } + else { + // `pre` initialized at top of scope + pre = ""; + + for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) { + pre += "" + out.o[n] + oSpace[n] + ""; + } + str += " " + out.n[i].text + nSpace[i] + pre; + } + } + } + + return str; + }; +}()); + +// for CommonJS environments, export everything +if ( typeof exports !== "undefined" ) { + extend( exports, QUnit.constructor.prototype ); +} + +// get at whatever the global object is, like window in browsers +}( (function() {return this;}.call()) )); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js new file mode 100644 index 0000000000..331e9c67d1 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js @@ -0,0 +1,11 @@ +test('basic test', function() { + expect(1); + ok(true, 'this had better work.'); +}); + + +test('can access the DOM', function() { + expect(1); + var fixture = document.getElementById('qunit-fixture'); + equal(fixture.innerText || fixture.textContent, 'this had better work.', 'should be able to access the DOM.'); +}); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html new file mode 100644 index 0000000000..1c3cf0a8aa --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html @@ -0,0 +1,44 @@ + + + + + Light theme visual tests + + + + + +
            +
            • asdf
            +
            +
              +
            • Node 01 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 02
            • +
            • Node 03 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 04
            • +
            • Node 05
            • +
            +
            +
            • full
            • asdf
            +
            • full
            • asdf
            + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html new file mode 100644 index 0000000000..12ba4b85d0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html @@ -0,0 +1,42 @@ + + + + + Mobile theme visual tests + + + + + +
            +
              +
            • Node 01 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 02
            • +
            • Node 03 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 04
            • +
            • Node 05
            • +
            +
            +
            • full
            • asdf
            +
            • full
            • asdf
            + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png new file mode 100644 index 0000000000000000000000000000000000000000..55ccf189b5d73f58e4ab6fca9ac859f891112b40 GIT binary patch literal 10643 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 D=AAK? literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..d6ececdbd989f50897e0858a3d71bd795ad096e9 GIT binary patch literal 19310 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 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png new file mode 100644 index 0000000000000000000000000000000000000000..55ccf189b5d73f58e4ab6fca9ac859f891112b40 GIT binary patch literal 10643 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 D=AAK? literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cd05ad1d4e39de5e1a3443646a444faed88002 GIT binary patch literal 6373 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 R{pjCYLM-hrkj{DC{~us8rDFg9 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cd05ad1d4e39de5e1a3443646a444faed88002 GIT binary patch literal 6373 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 R{pjCYLM-hrkj{DC{~us8rDFg9 literal 0 HcmV?d00001 diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc76a00649db10b5e88ccfa0e296d1ada598232 GIT binary patch literal 16220 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 +{% endblock %} + +{% block content %} + {% if title %} +

            {{ title }}

            +
            + {% endif %} +
            +
            +

            {% trans 'Navigation:' %}

            +
            +
            + +
            + {% with document_list as object_list %} + {% include 'appearance/generic_list_subtemplate.html' %} + {% endwith %} +
            +
            +{% endblock %} + +{% block javascript %} + + +{% endblock %} diff --git a/mayan/apps/cabinets/tests/__init__.py b/mayan/apps/cabinets/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/cabinets/tests/literals.py b/mayan/apps/cabinets/tests/literals.py new file mode 100644 index 0000000000..cc8bab69ab --- /dev/null +++ b/mayan/apps/cabinets/tests/literals.py @@ -0,0 +1,4 @@ +from __future__ import absolute_import, unicode_literals + +TEST_CABINET_LABEL = 'test cabinet label' +TEST_CABINET_EDITED_LABEL = 'test cabinet edited label' diff --git a/mayan/apps/cabinets/tests/test_api.py b/mayan/apps/cabinets/tests/test_api.py new file mode 100644 index 0000000000..206ff92c18 --- /dev/null +++ b/mayan/apps/cabinets/tests/test_api.py @@ -0,0 +1,241 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings +from django.utils.encoding import force_text + +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Cabinet + +from .literals import TEST_CABINET_EDITED_LABEL, TEST_CABINET_LABEL + + +@override_settings(OCR_AUTO_OCR=False) +class CabinetAPITestCase(APITestCase): + """ + Test the cabinet API endpoints + """ + + def setUp(self): + super(CabinetAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object, + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document_2 = self.document_type.new_document( + file_object=file_object, + ) + + def tearDown(self): + self.document_type.delete() + super(CabinetAPITestCase, self).tearDown() + + def test_cabinet_create(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), {'label': TEST_CABINET_LABEL} + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_create_with_single_document(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), { + 'label': TEST_CABINET_LABEL, 'documents_pk_list': '{}'.format( + self.document.pk + ) + } + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_create_with_multiple_documents(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), { + 'label': TEST_CABINET_LABEL, + 'documents_pk_list': '{},{}'.format( + self.document.pk, self.document_2.pk + ) + } + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.count(), 1) + + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + self.assertQuerysetEqual( + cabinet.documents.all(), map( + repr, (self.document, self.document_2) + ) + ) + + def test_cabinet_document_delete(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.client.delete( + reverse( + 'rest_api:cabinet-document', + args=(cabinet.pk, self.document.pk) + ) + ) + + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_document_detail(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + response = self.client.get( + reverse( + 'rest_api:cabinet-document', + args=(cabinet.pk, self.document.pk) + ) + ) + + self.assertEqual(response.data['uuid'], force_text(self.document.uuid)) + + def test_cabinet_document_list(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + response = self.client.get( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['uuid'], force_text(self.document.uuid) + ) + + def test_cabinet_delete(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.delete( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)) + ) + + self.assertEqual(Cabinet.objects.count(), 0) + + def test_cabinet_edit_via_patch(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.patch( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)), + {'label': TEST_CABINET_EDITED_LABEL} + ) + + cabinet.refresh_from_db() + + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def test_cabinet_edit_via_put(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.put( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)), + {'label': TEST_CABINET_EDITED_LABEL} + ) + + cabinet.refresh_from_db() + + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def test_cabinet_add_document(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.post( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)), { + 'documents_pk_list': '{}'.format(self.document.pk) + } + ) + + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def test_cabinet_add_multiple_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.post( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)), { + 'documents_pk_list': '{},{}'.format( + self.document.pk, self.document_2.pk + ) + } + ) + + self.assertQuerysetEqual( + cabinet.documents.all(), map( + repr, (self.document, self.document_2) + ) + ) + + def test_cabinet_list_view(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + Cabinet.objects.create( + label=TEST_CABINET_LABEL, parent=cabinet + ) + + response = self.client.get( + reverse('rest_api:cabinet-list') + ) + + self.assertEqual(response.status_code, 200) + self.assertEqual(response.data['results'][0]['label'], cabinet.label) + + def test_cabinet_remove_document(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + self.client.delete( + reverse( + 'rest_api:cabinet-document', args=( + cabinet.pk, self.document.pk + ) + ), + ) + + self.assertEqual(cabinet.documents.count(), 0) diff --git a/mayan/apps/cabinets/tests/test_models.py b/mayan/apps/cabinets/tests/test_models.py new file mode 100644 index 0000000000..4c69ac5c6e --- /dev/null +++ b/mayan/apps/cabinets/tests/test_models.py @@ -0,0 +1,82 @@ +from __future__ import unicode_literals + +from django.core.exceptions import ValidationError +from django.test import override_settings + +from common.tests import BaseTestCase +from documents.models import DocumentType +from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH + +from ..models import Cabinet + +from .literals import TEST_CABINET_LABEL + + +@override_settings(OCR_AUTO_OCR=False) +class CabinetTestCase(BaseTestCase): + def setUp(self): + super(CabinetTestCase, self).setUp() + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + self.document_type.delete() + super(CabinetTestCase, self).tearDown() + + def test_cabinet_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.all().count(), 1) + self.assertQuerysetEqual(Cabinet.objects.all(), (repr(cabinet),)) + + def test_cabinet_duplicate_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + with self.assertRaises(ValidationError): + cabinet_2 = Cabinet(label=TEST_CABINET_LABEL) + cabinet_2.validate_unique() + cabinet_2.save() + + self.assertEqual(Cabinet.objects.all().count(), 1) + self.assertQuerysetEqual(Cabinet.objects.all(), (repr(cabinet),)) + + def test_inner_cabinet_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + inner_cabinet = Cabinet.objects.create( + parent=cabinet, label=TEST_CABINET_LABEL + ) + + self.assertEqual(Cabinet.objects.all().count(), 2) + self.assertQuerysetEqual( + Cabinet.objects.all(), map(repr, (cabinet, inner_cabinet)) + ) + + def test_addition_of_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def test_addition_and_deletion_of_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + cabinet.documents.remove(self.document) + + self.assertEqual(cabinet.documents.count(), 0) + self.assertQuerysetEqual(cabinet.documents.all(), ()) diff --git a/mayan/apps/cabinets/tests/test_views.py b/mayan/apps/cabinets/tests/test_views.py new file mode 100644 index 0000000000..afc396908e --- /dev/null +++ b/mayan/apps/cabinets/tests/test_views.py @@ -0,0 +1,207 @@ +from __future__ import absolute_import, unicode_literals + +from documents.permissions import permission_document_view +from documents.tests.test_views import GenericDocumentViewTestCase + +from ..models import Cabinet +from ..permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_remove_document, permission_cabinet_view +) +from .literals import TEST_CABINET_LABEL, TEST_CABINET_EDITED_LABEL + + +class CabinetViewTestCase(GenericDocumentViewTestCase): + def setUp(self): + super(CabinetViewTestCase, self).setUp() + self.login_user() + + def _create_cabinet(self, label): + return self.post( + 'cabinets:cabinet_create', data={ + 'label': TEST_CABINET_LABEL + } + ) + + def test_cabinet_create_view_no_permission(self): + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + self.assertEquals(response.status_code, 403) + self.assertEqual(Cabinet.objects.count(), 0) + + def test_cabinet_create_view_with_permission(self): + self.grant(permission=permission_cabinet_create) + + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + self.assertEqual(response.status_code, 302) + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(Cabinet.objects.first().label, TEST_CABINET_LABEL) + + def test_cabinet_create_duplicate_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + self.grant(permission=permission_cabinet_create) + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + # HTTP 200 with error message + self.assertEqual(response.status_code, 200) + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(Cabinet.objects.first().pk, cabinet.pk) + + def _delete_cabinet(self, cabinet): + return self.post('cabinets:cabinet_delete', args=(cabinet.pk,)) + + def test_cabinet_delete_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._delete_cabinet(cabinet=cabinet) + self.assertEqual(response.status_code, 403) + self.assertEqual(Cabinet.objects.count(), 1) + + def test_cabinet_delete_view_with_permission(self): + self.grant(permission=permission_cabinet_delete) + + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._delete_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + self.assertEqual(Cabinet.objects.count(), 0) + + def _edit_cabinet(self, cabinet, label): + return self.post( + 'cabinets:cabinet_edit', args=(cabinet.pk,), data={ + 'label': label + } + ) + + def test_cabinet_edit_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._edit_cabinet( + cabinet=cabinet, label=TEST_CABINET_EDITED_LABEL + ) + self.assertEqual(response.status_code, 403) + cabinet.refresh_from_db() + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_edit_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_edit) + + response = self._edit_cabinet( + cabinet=cabinet, label=TEST_CABINET_EDITED_LABEL + ) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def _add_document_to_cabinet(self, cabinet): + return self.post( + 'cabinets:cabinet_add_document', args=(self.document.pk,), data={ + 'cabinets': cabinet.pk + } + ) + + def test_cabinet_add_document_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + + response = self._add_document_to_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice.', status_code=200 + ) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_add_document_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + self.grant(permission=permission_cabinet_add_document) + self.grant(permission=permission_document_view) + + response = self._add_document_to_cabinet(cabinet=cabinet) + + cabinet.refresh_from_db() + + self.assertEqual(response.status_code, 302) + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def _add_multiple_documents_to_cabinet(self, cabinet): + return self.post( + 'cabinets:cabinet_add_multiple_documents', data={ + 'id_list': (self.document.pk,), 'cabinets': cabinet.pk + } + ) + + def test_cabinet_add_multiple_documents_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + + response = self._add_multiple_documents_to_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice', status_code=200 + ) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_add_multiple_documents_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + self.grant(permission=permission_cabinet_add_document) + + response = self._add_multiple_documents_to_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def _remove_document_from_cabinet(self, cabinet): + return self.post( + 'cabinets:document_cabinet_remove', args=(self.document.pk,), + data={ + 'cabinets': (cabinet.pk,), + } + ) + + def test_cabinet_remove_document_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + response = self._remove_document_from_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice', status_code=200 + ) + + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 1) + + def test_cabinet_remove_document_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + self.grant(permission=permission_cabinet_remove_document) + + response = self._remove_document_from_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) diff --git a/mayan/apps/cabinets/urls.py b/mayan/apps/cabinets/urls.py new file mode 100644 index 0000000000..14142d67b1 --- /dev/null +++ b/mayan/apps/cabinets/urls.py @@ -0,0 +1,73 @@ +from __future__ import unicode_literals + +from django.conf.urls import url + +from .api_views import ( + APIDocumentCabinetListView, APICabinetDocumentListView, + APICabinetDocumentView, APICabinetListView, APICabinetView +) +from .views import ( + DocumentAddToCabinetView, DocumentCabinetListView, + DocumentRemoveFromCabinetView, CabinetChildAddView, CabinetCreateView, + CabinetDeleteView, CabinetDetailView, CabinetEditView, CabinetListView, +) + +urlpatterns = [ + url(r'^list/$', CabinetListView.as_view(), name='cabinet_list'), + url( + r'^(?P\d+)/child/add/$', CabinetChildAddView.as_view(), + name='cabinet_child_add' + ), + url(r'^create/$', CabinetCreateView.as_view(), name='cabinet_create'), + url( + r'^(?P\d+)/edit/$', CabinetEditView.as_view(), name='cabinet_edit' + ), + url( + r'^(?P\d+)/delete/$', CabinetDeleteView.as_view(), + name='cabinet_delete' + ), + url(r'^(?P\d+)/$', CabinetDetailView.as_view(), name='cabinet_view'), + + url( + r'^document/(?P\d+)/cabinet/add/$', + DocumentAddToCabinetView.as_view(), name='cabinet_add_document' + ), + url( + r'^document/multiple/cabinet/add/$', + DocumentAddToCabinetView.as_view(), + name='cabinet_add_multiple_documents' + ), + url( + r'^document/(?P\d+)/cabinet/remove/$', + DocumentRemoveFromCabinetView.as_view(), name='document_cabinet_remove' + ), + url( + r'^document/multiple/cabinet/remove/$', + DocumentRemoveFromCabinetView.as_view(), + name='multiple_document_cabinet_remove' + ), + url( + r'^document/(?P\d+)/cabinet/list/$', + DocumentCabinetListView.as_view(), name='document_cabinet_list' + ), +] + +api_urls = [ + url( + r'^cabinets/(?P[0-9]+)/documents/(?P[0-9]+)/$', + APICabinetDocumentView.as_view(), name='cabinet-document' + ), + url( + r'^cabinets/(?P[0-9]+)/documents/$', + APICabinetDocumentListView.as_view(), name='cabinet-document-list' + ), + url( + r'^cabinets/(?P[0-9]+)/$', APICabinetView.as_view(), + name='cabinet-detail' + ), + url(r'^cabinets/$', APICabinetListView.as_view(), name='cabinet-list'), + url( + r'^documents/(?P[0-9]+)/cabinets/$', + APIDocumentCabinetListView.as_view(), name='document-cabinet-list' + ), +] diff --git a/mayan/apps/cabinets/views.py b/mayan/apps/cabinets/views.py new file mode 100644 index 0000000000..012b28c3a4 --- /dev/null +++ b/mayan/apps/cabinets/views.py @@ -0,0 +1,348 @@ +from __future__ import absolute_import, unicode_literals + +import logging + +from django.contrib import messages +from django.core.urlresolvers import reverse_lazy +from django.shortcuts import get_object_or_404 +from django.utils.translation import ugettext_lazy as _, ungettext + +from acls.models import AccessControlList +from common.views import ( + MultipleObjectFormActionView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView, + TemplateView +) +from documents.permissions import permission_document_view +from documents.models import Document + +from .forms import CabinetListForm +from .models import Cabinet +from .permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_view, permission_cabinet_remove_document +) +from .widgets import jstree_data + + +logger = logging.getLogger(__name__) + + +class CabinetCreateView(SingleObjectCreateView): + fields = ('label',) + model = Cabinet + view_permission = permission_cabinet_create + + def get_extra_context(self): + return { + 'title': _('Create cabinet'), + } + + +class CabinetChildAddView(SingleObjectCreateView): + fields = ('label',) + model = Cabinet + + def form_valid(self, form): + """ + If the form is valid, save the associated model. + """ + self.object = form.save(commit=False) + self.object.parent = self.get_object() + self.object.save() + + return super(CabinetChildAddView, self).form_valid(form) + + def get_object(self, *args, **kwargs): + cabinet = super(CabinetChildAddView, self).get_object(*args, **kwargs) + + AccessControlList.objects.check_access( + permissions=permission_cabinet_edit, user=self.request.user, + obj=cabinet.get_root() + ) + + return cabinet + + def get_extra_context(self): + return { + 'title': _( + 'Add new level to: %s' + ) % self.get_object().get_full_path(), + } + + +class CabinetDeleteView(SingleObjectDeleteView): + model = Cabinet + object_permission = permission_cabinet_delete + post_action_redirect = reverse_lazy('cabinets:cabinet_list') + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Delete the cabinet: %s?') % self.get_object(), + } + + +class CabinetDetailView(TemplateView): + template_name = 'cabinets/cabinet_details.html' + + def get_document_queryset(self): + queryset = AccessControlList.objects.filter_by_access( + permission=permission_document_view, user=self.request.user, + queryset=self.get_object().documents.all() + ) + + return queryset + + def get_context_data(self, **kwargs): + data = super(CabinetDetailView, self).get_context_data(**kwargs) + + cabinet = self.get_object() + + data.update( + { + 'jstree_data': '\n'.join( + jstree_data(node=cabinet.get_root(), selected_node=cabinet) + ), + 'document_list': self.get_document_queryset(), + 'hide_links': True, + 'object': cabinet, + 'title': _('Details of cabinet: %s') % cabinet.get_full_path(), + } + ) + + return data + + def get_object(self): + cabinet = get_object_or_404(Cabinet, pk=self.kwargs['pk']) + + if cabinet.is_root_node(): + permission_object = cabinet + else: + permission_object = cabinet.get_root() + + AccessControlList.objects.check_access( + permissions=permission_cabinet_view, user=self.request.user, + obj=permission_object + ) + + return cabinet + + +class CabinetEditView(SingleObjectEditView): + fields = ('label',) + model = Cabinet + object_permission = permission_cabinet_edit + post_action_redirect = reverse_lazy('cabinets:cabinet_list') + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Edit cabinet: %s') % self.get_object(), + } + + +class CabinetListView(SingleObjectListView): + model = Cabinet + object_permission = permission_cabinet_view + + def get_extra_context(self): + return { + 'hide_link': True, + 'title': _('Cabinets'), + } + + def get_queryset(self): + return Cabinet.objects.root_nodes() + + +class DocumentCabinetListView(CabinetListView): + def dispatch(self, request, *args, **kwargs): + self.document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=request.user, + obj=self.document + ) + + return super(DocumentCabinetListView, self).dispatch( + request, *args, **kwargs + ) + + def get_extra_context(self): + return { + 'hide_link': True, + 'object': self.document, + 'title': _('Cabinets containing document: %s') % self.document, + } + + def get_queryset(self): + return self.document.document_cabinets().all() + + +class DocumentAddToCabinetView(MultipleObjectFormActionView): + form_class = CabinetListForm + model = Document + success_message = _( + 'Add to cabinet request performed on %(count)d document' + ) + success_message_plural = _( + 'Add to cabinet request performed on %(count)d documents' + ) + + def get_extra_context(self): + queryset = self.get_queryset() + + result = { + 'submit_label': _('Add'), + 'title': ungettext( + 'Add document to cabinets', + 'Add documents to cabinets', + queryset.count() + ) + } + + if queryset.count() == 1: + result.update( + { + 'object': queryset.first(), + 'title': _( + 'Add document "%s" to cabinets' + ) % queryset.first() + } + ) + + return result + + def get_form_extra_kwargs(self): + queryset = self.get_queryset() + result = { + 'help_text': _( + 'Cabinets to which the selected documents will be added.' + ), + 'permission': permission_cabinet_add_document, + 'user': self.request.user + } + + if queryset.count() == 1: + result.update( + { + 'queryset': Cabinet.objects.exclude( + pk__in=queryset.first().cabinets.all() + ) + } + ) + + return result + + def object_action(self, form, instance): + cabinet_membership = instance.cabinets.all() + + for cabinet in form.cleaned_data['cabinets']: + AccessControlList.objects.check_access( + obj=cabinet, permissions=permission_cabinet_add_document, + user=self.request.user + ) + if cabinet in cabinet_membership: + messages.warning( + self.request, _( + 'Document: %(document)s is already in ' + 'cabinet: %(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + else: + cabinet.documents.add(instance) + messages.success( + self.request, _( + 'Document: %(document)s added to cabinet: ' + '%(cabinet)s successfully.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + + +class DocumentRemoveFromCabinetView(MultipleObjectFormActionView): + form_class = CabinetListForm + model = Document + success_message = _( + 'Remove from cabinet request performed on %(count)d document' + ) + success_message_plural = _( + 'Remove from cabinet request performed on %(count)d documents' + ) + + def get_extra_context(self): + queryset = self.get_queryset() + + result = { + 'submit_label': _('Remove'), + 'title': ungettext( + 'Remove document from cabinets', + 'Remove documents from cabinets', + queryset.count() + ) + } + + if queryset.count() == 1: + result.update( + { + 'object': queryset.first(), + 'title': _( + 'Remove document "%s" to cabinets' + ) % queryset.first() + } + ) + + return result + + def get_form_extra_kwargs(self): + queryset = self.get_queryset() + result = { + 'help_text': _( + 'Cabinets from which the selected documents will be removed.' + ), + 'permission': permission_cabinet_remove_document, + 'user': self.request.user + } + + if queryset.count() == 1: + result.update( + { + 'queryset': queryset.first().cabinets.all() + } + ) + + return result + + def object_action(self, form, instance): + cabinet_membership = instance.cabinets.all() + + for cabinet in form.cleaned_data['cabinets']: + AccessControlList.objects.check_access( + obj=cabinet, permissions=permission_cabinet_remove_document, + user=self.request.user + ) + + if cabinet not in cabinet_membership: + messages.warning( + self.request, _( + 'Document: %(document)s is not in cabinet: ' + '%(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + else: + cabinet.documents.remove(instance) + messages.success( + self.request, _( + 'Document: %(document)s removed from cabinet: ' + '%(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) diff --git a/mayan/apps/cabinets/widgets.py b/mayan/apps/cabinets/widgets.py new file mode 100644 index 0000000000..7cab5b8595 --- /dev/null +++ b/mayan/apps/cabinets/widgets.py @@ -0,0 +1,28 @@ +from __future__ import unicode_literals + + +def jstree_data(node, selected_node): + result = [] + result.append('{') + result.append('"text": "{}",'.format(node.label)) + result.append( + '"state": {{ "opened": true, "selected": {} }},'.format( + 'true' if node == selected_node else 'false' + ) + ) + result.append( + '"data": {{ "href": "{}" }},'.format(node.get_absolute_url()) + ) + + children = node.get_children().order_by('label',) + + if children: + result.append('"children" : [') + for child in children: + result.extend(jstree_data(node=child, selected_node=selected_node)) + + result.append(']') + + result.append('},') + + return result diff --git a/mayan/apps/checkouts/apps.py b/mayan/apps/checkouts/apps.py index 759f5fcfdd..2f57b48efa 100644 --- a/mayan/apps/checkouts/apps.py +++ b/mayan/apps/checkouts/apps.py @@ -30,8 +30,8 @@ from .tasks import task_check_expired_check_outs # NOQA class CheckoutsApp(MayanAppConfig): + has_tests = True name = 'checkouts' - test = True verbose_name = _('Checkouts') def ready(self): diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo index aa5d21016f822cc4e82040886621a4447f2d0794..f1a5c523cb9dccda3ac167adc9ad995b3960a603 100644 GIT binary patch delta 65 zcmew$_(5>PB^F+DT?12HBMSvXQ!5k8$@f{LK_Vu)MurN8W>!X~li67-d3+M{(n}N5 TQ>_#dize5zMsI%3%E=4>Yv>Zw delta 65 zcmew$_(5>PB^F*YT|+}%BVz>vBP&y*$@f{Lfg%RRx<-ZyMut`f7L(aoD<}7|M)CM0 U=B1Y=rl(pdBo=Lc#>&ME0BQdc$N&HU diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po index f83ae4b596..bba43ddaa4 100644 --- a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" @@ -38,7 +44,7 @@ msgstr "Document checked out" msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document already checked out." @@ -46,13 +52,11 @@ msgstr "Document already checked out." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "مستخدم" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "Document checkout" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documents" @@ -146,64 +156,60 @@ msgstr "Check out documents" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo index c7fd7497edba7bdb0b89456a3fb5c41776f6b4ca..c532d89e76c63848f0cb37ad38286b1e126c9037 100644 GIT binary patch delta 65 zcmeAc?H1i|iG|l(*T7WQ$U?!;)XKzi@_iO*kcf${k)eX2nU#_0WOmjX9-qX#^wPxi TR4av~^vO-E(VJhfE@S}!JeLxw delta 65 zcmeAc?H1i|iG|lp*U(Vc$XLO^$ja1c@_iO*pooF7u92aFk)f4=#bkEYn#mJbqj-E0 U^U_Nb(^IV!lF~Q7WL?Ap06P5=o&W#< diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po index 46d957229a..20e9c283b1 100644 --- a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Автоматично регистрирани документи" @@ -38,7 +43,7 @@ msgstr "Документът е проверен." msgid "Document forcefully checked in" msgstr "Документът е принудително регистриран" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Документът вече е проверен." @@ -46,13 +51,11 @@ msgstr "Документът вече е проверен." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Потребител" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "Проверка на документ" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Регистрирай документи" @@ -146,64 +155,60 @@ msgstr "Провери документи" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Грешка при проверка на документ; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" проверен успешно." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Провери документ: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Данни от проверката на документ: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Документът не е проверяван." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Грешка при регистрация на документ; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" е регистриран успешно." @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo index 2a001d3520fefc86871963638c7cda11254782c0..244f511abc6d5ca6fe0d7651d0bb304aba1e83e3 100644 GIT binary patch delta 68 zcmcaAcvW!2B^F+DT?12HBMSvXQ!5k8$@f{LK_Vu)MurN8W>!X~li69P@%tp^rI#kA Wr&=i_6~{X{PM*UWy_ucu91{SU2os|K delta 68 zcmcaAcvW!2B^F*YT|+}%BVz>vBP&y*$@f{Lfg%RRx<-ZyMut`f7L(aor%hhV8pZFE Xn3rCfn4W5-kW?J+=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument je automatski prijavljen" @@ -38,7 +44,7 @@ msgstr "Dokument odjavljen" msgid "Document forcefully checked in" msgstr "Dokument je prisilno prijavljen" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument je već odjavljen." @@ -46,13 +52,11 @@ msgstr "Dokument je već odjavljen." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Korisnik" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "Odjava dokumenta" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Prijaviti dokumente" @@ -146,64 +156,60 @@ msgstr "Odjaviti dokumente" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Greška pokušaja odjave dokumenta; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" uspješno odjavljen." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Odjaviti dokument: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Odjavni detalji za dokument: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument nije odjavljen." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Greška pokušaja prijave dokumenta; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" uspješno prijavljen." @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo index 2204e3016d67b296c12d7bb36b9d76969c1196c8..866a2d661828efe96b5296b9329bef0d71128881 100644 GIT binary patch delta 61 zcmaFG{EB(PB3^S{15;fi3k5?{D-+9!>!m>gCb~w33WjD@My3<5SMvBI=B1Y=rl(pd Pq$E!EXN;b_ozWNoE+!It delta 61 zcmaFG{EB(PB3?6HLqlC7V+8{vD^sJ1>!pDL2FAKZh6+Z8Rt6RmuUAfvWsKtSNz6+x QO-xUq(Y*Lfo$v3wyy4myN^Xh5>%L{ zXz5mm3W7QmwL;XPOHe_t$D%YWC_8$HE(LvmyN?hwIQyA-oM+}g|Cwjnb7%R;WO@D- zL-A2P)T=qh>{2_AAIh41V>V+WR-=sz@eG#ZC0vR(aXvo5Dtw76@heth!JO>)8dTqh zi;NjDoir+V(1Uv67;eH8mf~yo|DUj!{*2rIgG^w`3$hc|V-fwWsP{Xu5YJ*gj$s4d z#~S>AwXAP`(a=Oo=4J!&qIS3wwZj9r9K)ypFJKwo#>MyuSL0i($DgPLJglyH0;qYq zP~&?s7ac5MeRF~aSu!K2te?Y!IEoKAj?d_)e|erFHs(2M!XK!>f1^^mfb=M^2G` zv74t@hp${`a2fr|67s)-Mr%oSC*7_`Pz#+z#+vh}%Xt|syoU?$9V)OXY{Xxv)Yo!x zG=3Xur-xAE5~$005tZ@lrR1OEGPii3NbjP~<{`%MF>(T#AR%+k>rss09c*HSI&Y|$ms?(|t{H_cS-LJ_MdBMMfZtg@st)u-vD zW-c-|P<8hI7Tql!gEFJChN^cmpOw_*Qc*^9VN}Ry<}*}#S$ZOGBB#vmi#tiHFCKCR z?N~CA9-rgSt+oyi#6wZD*FJ6y+e3*+JeGZu`Z)JZ+Xk<%&D*-sYH17jH+g-2pKsp& zeco<+IHG~x_F&QuSgpPm#`(Riewu-{jj74Ps=7UPBG@0aI+$}H5(`^f`fazlJv3p>Fu^Yq!h?H#GpMLp^7MPG8t!}eh(bTnyO?eSBD^OuWtJn*m14QRqW^bcVfUPV2>i6!^|8E9rv6TiV?oI{QKfkjwfU`zwr*oeJY zgBP(5Z=;{@o5x(}18-3)n@453jJ4=3%q7;0<@CF8J@(;tynqdO3-y6#?(>hRA}%3Q zncv7-%?eUXlSh_E`MxROVwSR>#8&!#Z!W_wR3byD6;Gg6d;^upebd8NZp7UiQ>c~QL*_7#-1{$GKcM#bJ4SH{Rq6mY>v6YhA8w|9 z3Af-KR02<2-=XH8_fdbY%};)G_*T%us#0UtU^^u!GN{aKB zP0B_cOoghTg(`Gbbj}nN`o1#MNms@?7z*v1MN^ryr~gB%uX8&psSZ{PP5a7jn4L6* z{*tOhqdJQH!^yEk%1WNGQt@HON+qqc$@2qNrX&A_CsSDv$V(3uJ&&~6p^zQkWd+00 zNZ1ax27}(7!}bwpJU$vvChX2w%86RxV5rRwM(l9V3WuVt!Sw0k%EsPge>^s7^~9W! zbB?t)mF)&bvfYjxfrOJvPZ!71KJW4J?pR`QEH=n=1J0?=0~yEr)svnmEzCH+Wl#EA G+1-D~sf2a_ diff --git a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po index ff0679ef72..0e9eb6867d 100644 --- a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po @@ -1,28 +1,34 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-05-20 21:40+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 20:58+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Ausbuchungen" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "Ausgebuchte Dokumente" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument automatisch eingebucht" @@ -39,7 +45,7 @@ msgstr "Dokument ausgebucht" msgid "Document forcefully checked in" msgstr "Dokument zwingend eingebucht" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument bereits ausgebucht" @@ -47,13 +53,11 @@ msgstr "Dokument bereits ausgebucht" msgid "Document status" msgstr "Dokumentenstatus" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Benutzer" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Ausbuchungszeit" @@ -62,7 +66,6 @@ msgid "Check out expiration" msgstr "Ausbuchungsende" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Neue Versionen erlaubt?" @@ -94,7 +97,7 @@ msgstr "Ausgebucht" msgid "Checked in/available" msgstr "Eingebucht/Verfügbar" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Dokument" @@ -119,7 +122,6 @@ msgid "Block new version upload" msgstr "Hochladen neuer Versionen sperren" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Ausbuchungsende muss in der Zukunft liegen." @@ -131,6 +133,14 @@ msgstr "Ausbuchung" msgid "Document checkouts" msgstr "Ausbuchungen" +#: models.py:97 +msgid "New version block" +msgstr "Akutialisierungsschutz" + +#: models.py:98 +msgid "New version blocks" +msgstr "Aktualisierungsschutz" + #: permissions.py:10 msgid "Check in documents" msgstr "Dokumente einbuchen" @@ -147,64 +157,62 @@ msgstr "Dokumente ausbuchen" msgid "Check out details view" msgstr "Ansicht der Ausbuchungsdetails" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Fehler bei der Ausbuchung: %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" erfolgreich ausgebucht" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Dokument %s ausbuchen " -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Ausgebuchte Dokumente" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Ausbuchungszeit" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Ausbuchungsende" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Ausbuchungsdetails für Dokument %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Sie haben dieses Dokument ursprünglich nicht ausgebucht. Soll Dokument %s trotzdem zwingend eingebucht werden?" +msgstr "" +"Sie haben dieses Dokument ursprünglich nicht ausgebucht. Soll Dokument %s " +"trotzdem zwingend eingebucht werden?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Dokument %s einbuchen?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument wurde nicht ausgebucht." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Fehler bei der Einbuchung von Dokument %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" erfolgreich eingebucht" @@ -253,11 +261,11 @@ msgstr "Einheit" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +291,6 @@ msgstr "Einheit" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo index fe5f421a48df8d14c098f058b8395efc18dc9944..c0f0f1839a080f186af90003224d194b60a6a8fc 100644 GIT binary patch delta 26 hcmX>ra8_VL9}BO!u7Rnpk%fYxsg;T4=GiQpm;r3w2c7@` delta 26 hcmX>ra8_VL9}BOUuA!l>k+Fh-k(H^@=GiQpm;r1Y2a5mz diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po index 5c879101f7..05054a24c4 100644 --- a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-07-10 15:47+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,11 +18,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 #, fuzzy msgid "Checkouts" msgstr "checkouts" +#: apps.py:54 +#, fuzzy +#| msgid "checked out documents" +msgid "Checkedout documents" +msgstr "checked out documents" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" @@ -39,7 +45,7 @@ msgstr "Document checked out" msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document already checked out." @@ -48,7 +54,7 @@ msgstr "Document already checked out." msgid "Document status" msgstr "Document status: %(widget)s %(text)s" -#: forms.py:37 models.py:37 views.py:85 +#: forms.py:37 models.py:37 views.py:79 #, fuzzy #| msgid "User: %s" msgid "User" @@ -105,7 +111,7 @@ msgstr "checked out" msgid "Checked in/available" msgstr "checked in/available" -#: models.py:27 +#: models.py:27 models.py:92 #, fuzzy msgid "Document" msgstr "document" @@ -147,6 +153,18 @@ msgstr "Document checkout" msgid "Document checkouts" msgstr "Document checkout" +#: models.py:97 +#, fuzzy +#| msgid "New versions allowed: %s" +msgid "New version block" +msgstr "New versions allowed: %s" + +#: models.py:98 +#, fuzzy +#| msgid "New versions allowed: %s" +msgid "New version blocks" +msgstr "New versions allowed: %s" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documents" @@ -164,42 +182,42 @@ msgstr "Check out documents" msgid "Check out details view" msgstr "check out date and time" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:81 +#: views.py:75 #, fuzzy msgid "Documents checked out" msgstr "Document checked out" -#: views.py:91 +#: views.py:85 #, fuzzy msgid "Checkout time and date" msgstr "checkout time and date" -#: views.py:97 +#: views.py:91 #, fuzzy msgid "Checkout expiration" msgstr "checkout expiration" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:136 +#: views.py:130 #, fuzzy, python-format #| msgid "" #| "You didn't originally checked out this document. Are you sure you wish " @@ -211,22 +229,22 @@ msgstr "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" -#: views.py:140 +#: views.py:134 #, fuzzy, python-format #| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Check out document: %s" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." @@ -308,9 +326,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo index ee5710166d3e4591eef0c3b5e84826b2c0bfdd97..89bdac4bd45023791485650554f3796a4b0be5da 100644 GIT binary patch delta 1225 zcmY+@OH30%0LJk_s=NwS5GiP30RdC zhWX7h4K1LwB)_u=YNegnh`p$VB{75#uokCq8$QQ2{Dhj|7b>AzR-ylCM~zS58tg}= zG^a7Z{N^GJrF|98;UG?O46m_|>m%jHY{yB|AHG5*@E&z!3&>Ejf=yUVOdZ&YN~j<8 zTng)P9QFJZPH5-TG+dlRP51+~Q;!4Hz=NoW&!7?+KuvrHEAa^)!fDjF@7RjV1;Y$- zxITdDzk*uOy-M=8E1^RXP2*;Ki`vN-RP-x_`w?CUjoX7tWBbhv(s+VL!Er}L-< zFQK9jvMWx_=(vC_Nb>d}u;;rQm6HBg=gN@3rI{A*p*>G^?xbpAt7TWA zp;R=_R_YF_HfIa-+p?Zttyr9f=esHFZadZ!e( z5>;u>W4|Ib9jabf8;NbuCTaWGslQ=np|~OtcCHVP4Bjv&{M$~}9~~PSN#}cVUrRp5 zyIn8t#`ZbUc%rMv^}0N-y#J(o%FhmIpxc+cZ9{mAbk$$EC delta 1121 zcmXZbOK1~89LMo#8*3BWs)_YgQ>PmHP!~2aZ8fDrp+X@AMMQj}0b>oc3D~p;QKP5_ z4=qS4iqeA@!E^DX_&NyQ1ksyX5ka&CpBTR&9-{$cR%17YaS%7+ajeG)T!+_i3*N`I_zX4vz2E7(pMOLZaS{0| z^BY;K`HK|ORFmal<~OxmOj7ofI6(g=%jrNjR7vD0YQ-a{ExLjXH8Z#wAL34YjjG5Z zY5^h2wE?53_j^zaO{2E^G?p~s6c<|AJJi6hsFE(BDp1A7YGR8G*oXa?Mva@qt$4@x z30nG}{k~pOLNW9bK~*r_K>eG!$Z$g|xr912GyZ@Vz8_E(nfGntU|9NlQ3;+xmHIML zU31m_3uUjpQ8EhV@j~TOC@Jl=z5vB4+IE_f>ZB=RG*yZ7 z=Y0VVsyYfSj$(MBv!ZjR2y1?2PGa7k>R>3ekCw((dMgAkbii8uYn4(5YX?o+$8LG& z0K899m1tK-(LY)k&lhdstS#n7v$j~U=L#cd?5rF3Ra4$q_p+iV4`uShDL8C7 diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po index c319e5e525..a924606602 100644 --- a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Roberto Rosario, 2015-2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:44+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Reservaciones" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento devuelto automáticamente" @@ -39,7 +44,7 @@ msgstr "Documento reservado" msgid "Document forcefully checked in" msgstr "Documento devuelto forzosamente" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "El documento ya está reservado." @@ -47,13 +52,11 @@ msgstr "El documento ya está reservado." msgid "Document status" msgstr "Estatus del documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Usuario" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Hora de reserva" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Salida de la reserva" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "¿Nuevas versiones permitidas?" @@ -94,7 +96,7 @@ msgstr "Reservado" msgid "Checked in/available" msgstr "Devuelto/disponible" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Restringir la subida de nuevas versiones" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Fecha y hora de la expiración de la reserva deben ser en el futuro." @@ -131,6 +132,14 @@ msgstr "Reserva de documentos" msgid "Document checkouts" msgstr "Reservaciones de documentos" +#: models.py:97 +msgid "New version block" +msgstr "Bloquear nueva version" + +#: models.py:98 +msgid "New version blocks" +msgstr "Bloquear nuevas versiones" + #: permissions.py:10 msgid "Check in documents" msgstr "Devolver documentos" @@ -147,64 +156,62 @@ msgstr "Reservar documentos" msgid "Check out details view" msgstr "Detalles de la reserva" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error tratando de reservar documento; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" reservado con éxito." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Reservar el documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documentos reservados" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Fecha y hora de reservación" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiración de la reservación" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Detalles de la reserva para el documento: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Usted no reservó inicialmente este documento. ¿Devolver forzosamente el documento: %s?" +msgstr "" +"Usted no reservó inicialmente este documento. ¿Devolver forzosamente el " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "¿Devolver el documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "El documento no ha sido reservado." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error tratando de devolver documento: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documento \"%s\" devuelto con éxito." @@ -253,11 +260,11 @@ msgstr "Periodo" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Periodo" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo index 4b7565c8a87dcfe8e859951d098ae9dda34b0161..9c3525a92ad5270eea7093c0f2c79a7b4ae33479 100644 GIT binary patch delta 87 zcmZpZZj;{dl+Dy!*T7WQ$U?!;)XKzC*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV& o&P3P9P{Gj5%E)xG6nhnqPhwtrX<|B1IxTVXWcKLIzuCK40T!zn8UO$Q delta 87 zcmZpZZj;{dl+Dyk*U(Vc$XLO^$ja16*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iUD{ q*T7iU$WXz^(8|DKvJ`vO7|M3KqYC3n}4zQumS)SZW#{% diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po index ccd0422f69..23d252da6f 100644 --- a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "خروج Checkout" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "سند بصورت اتوماتیک وارد شده است." @@ -38,7 +43,7 @@ msgstr "سند خارج شد." msgid "Document forcefully checked in" msgstr "سند طبق دستور وارد شد." -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "سند در حال حاضر خارج و یا checked out شده است." @@ -46,13 +51,11 @@ msgstr "سند در حال حاضر خارج و یا checked out شده است." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "کاربر" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "خارج شده checked out" msgid "Checked in/available" msgstr "وارد شده و یا موجود Checked in" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "سند" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "آپلود نسخه و یا بلوک جدید" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "خروج و یا checkout سند" msgid "Document checkouts" msgstr "خروجی های check out سند" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "ورود اسناد" @@ -146,64 +155,60 @@ msgstr "خروج اسناد" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "خطا در زمان خارج ویا checkout کردن سند: %s " -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "سند \"%s\" بالاجبار خارج ویا checked out شد." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "خروج و یا check out سند: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "اسناد خارج شده check out" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "زمان و تاریخ خروج" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "زمان پایان خارج بودن Checkout" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "جزئیات خروج و یا Checkout سند: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "سند خارج و یا checked out نشده است." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "خطا در زمان خروج و یا checkout سند: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "سند \"%s\" با موفقیت وارد و یا checked in شد." @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo index 60374568fcfff4e63bed50357d4abdfc0da72d1f..d57113d23f86f293784adc5d2a4000289f7bfffe 100644 GIT binary patch delta 1253 zcmZ|OPe>GD7{~F~T+`K6OEXu?oXpm&ru~DPx&@Vm9*PpB4jR;IlSs=>tbghdnB*-x ztwD6~8c1|e5GwH&1QB7kN+F_SbSUapeSfnWU3%f&&%5)^yzlcq&&>1s1#4oh!gt@$ z!t|Z=nLJ}oVj!O%TF__A5v;)=p2w}2#tOWRwV1^KKEY~yh7I@@x8o1g{iOxD{}xsn zGhtd8Y-8dy>VeDHj(4yOm)7TBVF~{~A`hA`sD<-38{@|y>bV9i!iyL}2b*vj>u>>g z;|f-?zxmEU0TdPHPF9DCG>p5j0~J^j%W(>;a0d6{9ER`>YJ;Ds3{??@)@efBpTJGn zjcjRp(Z~L#kAbp%2`}Iv-lYsrv6KIu#l|$_Jyfa}QKecz1^9LSdKu|a0L{1$yKo0y z$9kMbJ@*)E@Fh-Y!A}gD@E3Mrh(apjH0s7FWXjB&YqO&9L`%CJX^BLNyU*D@&iJryv`-~RorD#OM7giUjzz8L;Y2K+ zT`Q_C?{Np5%&2SixFgBTu$yi0_Xf@+(?es)As)G!$&UK_=Rf!x3)(u^-@4*hsic*5 W$Htvh%Grp-Xl~>`liA;8OMd|OU5X3< delta 1195 zcmXZbOGs2v9LMpK&vDW$?WvhJ^O;?}GpW#M53Q*nO$iBlA)}2ZIdfwk;zF39B4|4W zkx-im+y&ZB5|=HaHbI-h7GX#WA*fZ<_jjE?ocY{yXYM`c|Noy^w3cc!Un>fp7{X@k zXWZXn%yImg#|N>RZ%j9S!@XEjV9XBe!U{Z(Rd@|caT@pFJ*>ky+>LKhzyFk*|G-LP zGUgu_JNcrraPxs?JjVP2Zo>zt?;qnf#uxyUrG*tWnSzzrUfseN;`vUO%}DG*SY&2Pz$bOGx{h`H3qO2 z2T;$&a34NGz3(M9;WB2S3AE?#cjGMclSrYxWVI2UKQ9jPsoto33ijcJHmA@@R7ixo-G3sAX#As!Z zn3wSpRH)Btm8#@LZ_G`{QW@OpAGv~GF^5cUoE<%1wl< zzC=3iTBm!5!u{dlL91s}^R}_bo#<3F<(`U+jwPbWXe8Y>=EhF&czhzAohTW|u9RFY V^=6R?78_42RQVeUvoqyO{{aX5ghK!T diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po index 203dc974d1..a87fd7103e 100644 --- a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Bruno CAPELETO , 2016 @@ -10,20 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-05-23 20:04+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Verrous" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document déverrouillé automatiquement" @@ -40,7 +45,7 @@ msgstr "Document verrouillé" msgid "Document forcefully checked in" msgstr "Document déverrouillé de force" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document déjà verrouillé." @@ -48,13 +53,11 @@ msgstr "Document déjà verrouillé." msgid "Document status" msgstr "Status du document" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utilisateur" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Heure du vérouillage" @@ -63,7 +66,6 @@ msgid "Check out expiration" msgstr "Expiration du vérouillage" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Autoriser de nouvelles versions ?" @@ -95,7 +97,7 @@ msgstr "Verrouillé" msgid "Checked in/available" msgstr "Déverrouillé/disponible" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Document" @@ -120,9 +122,9 @@ msgid "Block new version upload" msgstr "Empêcher l'import d'une nouvelle version" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." -msgstr "La date et l'heure d'expiration du verrou doit se situer dans le futur." +msgstr "" +"La date et l'heure d'expiration du verrou doit se situer dans le futur." #: models.py:87 permissions.py:7 msgid "Document checkout" @@ -132,6 +134,14 @@ msgstr "Verrouillage du document" msgid "Document checkouts" msgstr "Verrouillages du document" +#: models.py:97 +msgid "New version block" +msgstr "Bloc de la nouvelle version" + +#: models.py:98 +msgid "New version blocks" +msgstr "Blocs de la nouvelle version" + #: permissions.py:10 msgid "Check in documents" msgstr "Déverrouiller les documents" @@ -148,64 +158,62 @@ msgstr "Verrouiller les documents" msgid "Check out details view" msgstr "Afficher la vue détaillée" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Erreur lors de la tentative de verrouillage du document : %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" verouillé avec succès." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Verrouiller le document : %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documents verrouillés" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Date et heure du verrouillage" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiration du verrou" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Détails du verrou pour le document : %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain de vouloir forcer le déverrouillage de : %s?" +msgstr "" +"Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain " +"de vouloir forcer le déverrouillage de : %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Verrouiller le document : %s ?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Ce document n'a pas été verrouillé." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Erreur lors de la tentative de déverrouillage du document : %s " -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" déverrouillé avec succès." @@ -254,11 +262,11 @@ msgstr "Période" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -284,9 +292,6 @@ msgstr "Période" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo index 40a6c7bcfecba5f8957d5a1ce76befdc9b9eac22..463ee089eb732d9cf5bf04a3f2ac87bfa7d60c99 100644 GIT binary patch delta 61 zcmeyu{DpbKB3^S{15;fi3k5?{D-+9!>!m>gCb~w33WjD@My3<5*YNlx=B1Y=rl(pd PWRy-0VvL@=i_r=IG#L`N delta 61 zcmeyu{DpbKB3?6HLqlC7V+8{vD^sJ1>!pDL2FAKZh6+Z8Rt6Rmuh&dYV2tANNz6+x QO-xU!m>gCb~w33WjD@My3<5*Yfxz=B1Y=rl(pd PWTs3GW{jS^n^6w{E_M=# delta 61 zcmaFK{E~UXB3?6HLqlC7V+8{vD^sJ1>!pDL2FAKZh6+Z8Rt6Rmuh&jaWQ^kRNz6+x QO-xUwHya9X=%|YpMh3O0 z)itPpp`aETK@r#{3L+{ufh9ysaTm3T==-~KjSigooO|xedCv2kdDHN;aeBErbkEQ_ z>09Zu1;!l0vO<1n(U39wu@0kn602|&tMNM4qlabq7;EtbHsd00#-FI?%h%_xEsPj5 zZMqq3;>JCxb{e6eN^uJ+;uLD(UetR-!F(1EbA1(6if7o4udoeQ zP#K7n8?znTQSbMclYd2)VPYdr1>Qy-st2gl&Z7caLItpbar_e)WBc2<9!4#60~PrF zz$d8GzecKK-l8`2v4Z^T#%Cr@;}Vj2zwY4IcMmFBeNc5(AZtwriF4?GOmn;FO8Hvb z9SoEet>f<=6|CP>e>Lr1wbWnGrfV1cWBf+;{1dIxP+C6&s$&OT+0)-rSyBoAZ#q*g z^ew@pN})z|{bup21M8>6A224P{$bL5{oL2W(oobIzT##sn|^1?nsmm-v+ihq##<_S zpX|0{NjtI6iYHTDJ$9@s7AqMzZVx(>Sv_d?rE^ZoO2pzk*JUT-R(x+Nk@S{}Ybyuc zVP`DoT7&L*dMxXDP2r)kW9iY6iS!7sWOH6Fe0J_j_+qG|f5M$~{WUZ0S_qEOY&Ji8 MDf@5Q>#ex;7o{YHj{pDw delta 1193 zcmXZb%}Z2K7{~FWPNq{@sl8Zfw=`d}Yj;L794jg-gp{HruxxP|Cmo!Zm>F#ojM2+K zFa?pzRwdCw+=)@E+7;5WFe0dEAp`|MFW=vt`@o&gedf-&=Q+|W8}^c)!D_sNdVUYr;bUZ=SwOw`HCEyZYTP%hz~*veTF}N;9L5H` zfxGb`)-u0YdaIB`6BKoe~WGS7uBIw z+NG`N^SyxH`%qgmgZTs8JmN+xTSm3?6RP6hsEJG1SPiU0ecz6!(LuHTI=16YY{fZL zhnBG!zoN!hR}~9u!j0sIs_4IN2KYjUXarj@hbm|mRlppEaLIQScaiU*4J!Bqs?{S% zcg-lO&@un}NgN?hA&vHmQ$ad^UNrHkz1dMr4e$3t?N+E=+H3s-6e@Zjm)fnBE3{Jm zgE)U)+ig^L6e^Y`c%cRAoGEHFzbdCN@6_sGD6}ezi>>qyA$Xw!rqip?9&42yT`WexZ4Ujk*-jOLj(uiY|b9exT$Qy&80ID zYsk$+(^kKmyq1V%W7grM^3JHAcP699#*=P5(HTuAk1{$nKIIlBDu)U$D=+!!IFrrS M2jhXlv+BG50pY=e!T, 2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Uscite" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento automaticamente in entrata" @@ -39,7 +44,7 @@ msgstr "Documento in uscita" msgid "Document forcefully checked in" msgstr "Forza documento in entrata" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Documento già uscito" @@ -47,13 +52,11 @@ msgstr "Documento già uscito" msgid "Document status" msgstr "Stato documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utente" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Tempo di uscita" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Scadenza dell'uscita" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Accetta nuove versioni" @@ -94,7 +96,7 @@ msgstr "Uscito" msgid "Checked in/available" msgstr "Check-in / disponibile" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Blocca la nuova versione in caricamento" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "La data e ora di uscita deve essere nel futuro." @@ -131,6 +132,14 @@ msgstr "Documento uscito" msgid "Document checkouts" msgstr "Documenti usciti" +#: models.py:97 +msgid "New version block" +msgstr "Nuovo blocco versione" + +#: models.py:98 +msgid "New version blocks" +msgstr "Nuovi blocchi versione" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documenti" @@ -147,64 +156,62 @@ msgstr "Check out dei documenti" msgid "Check out details view" msgstr "Visualizzazione in dettaglio dell'uscita" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Errore nel cercare il check out del documento; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Il documento\"%s\" è uscito con successo" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documenti estratti" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Ora e data checkout " -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Scadenza checkout " -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Dettaglio del check out per il documento: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Non hai originariamente fatto il checkout di questo documento. Forzare nel documento: %s?" +msgstr "" +"Non hai originariamente fatto il checkout di questo documento. Forzare nel " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Accetti il documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Il documento non è stato fatto uscire" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Errore nel tentare il check out del documento; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Il documento \"%s\" è entrato con successo" @@ -253,11 +260,11 @@ msgstr "Periodo" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Periodo" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo index fdead81dea027dcf0324ce2dc617534af7bec96d..30332d37cc2bc7ee866c8ec553e8cf424acf45da 100644 GIT binary patch delta 307 zcmW;Gze>YU6bA6qw6*`B8B|K8V8lWPxq1_lT7!c_2Zvy#xV2DkC6s8m7m`@&7*~<*3s2XM_-^@*G>*De)TNB!^h#{%=F*#^Vj2Ris&;a0hlEexh5r zE|gG%llepHMe7|i?l7xmn2u|oFm7{RyzH>9KMvwRN!AvL?-~|2ac48jG|Z-JIR_k5 y^hBJnt4PQ=6p4ylqpOB~lqeXBC{WX<%#H2|Il31kl*n*!;Z0YW-n^eZ)&2k`wl{6#{AX-8Yzy+uw{zNzM zf8jl};Nzf|d$#%>cO354m~j0~mx~P{iU<4rP<5juiVbhcRQb#m&ah9^ndAAj`kKHg z1~N(caYvd&%QWuzY`3d)bYa+$lsb*fCEHS?BpCx;f^#?4wMHK)5 diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po index fb37318d1e..ad0c7df333 100644 --- a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -10,20 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-09 16:39+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Checkouts" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatisch in-gechecket" @@ -40,7 +45,7 @@ msgstr "Document uit-gecheckt" msgid "Document forcefully checked in" msgstr "Document geforceerd in-gecheckt" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document reeds uit-gecheckt." @@ -48,13 +53,11 @@ msgstr "Document reeds uit-gecheckt." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Gebruiker" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -63,7 +66,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Nieuwe versies toegestaan?" @@ -95,7 +97,7 @@ msgstr "Uit-checken" msgid "Checked in/available" msgstr "In-gecheckt/beschikbaar" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Document" @@ -120,7 +122,6 @@ msgid "Block new version upload" msgstr "Blokkeer uploaden van een nieuwe versie" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -132,6 +133,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -148,64 +157,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -254,11 +259,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -284,9 +289,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo index e883efc6217833e237ed7ec46681308521d3cdb6..56a3b9f021db9ea809235a20ed704f6b14492499 100644 GIT binary patch delta 582 zcmYMuJxfAS7zgmDQo6nkz0r$-M@Z4=!a28lP0gzjj+N08WQ&!EAh)O#1i=~_f|^`v zh=!mcf&$lu`V4)8#-OpKrT)im2?u`XInUd<^?&;xH+!0aUZS&pqGckwcM&o81qYzt zO*9BqI1U#eN@)WQ!7UhsH7M&Z;0U~fvhUf>zrq;ePdh*3A;O_W4>datD~N{iumk0S zIu!62DzFVz_+*xf42*gct~`s1cMvYQaXf z5^QWluo3bAqJ=M@y`_k@*7{G}>O1G3b7tl@ahrJ92{m6rL>Jve%S5yhA!6_b_QGe_ z2jAc@{D2sxkV(`JBXAs!LOt)mLAVC>UL`m`gL(AV!TBqUqW?6h*JOho{n7iFLzG7GgkS=GL49#g zoTw8D7=~GhH^>U|dAN;!p>@^agmZZ=C07|Hl$BFlWQ8zSSNMAQqiL;*6fsL+mbm, 2016 @@ -9,20 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Blokady" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument został automatycznie odblokowany" @@ -39,7 +46,7 @@ msgstr "Dokument został zablokowany" msgid "Document forcefully checked in" msgstr "Wymuszono odblokowanie dokumentu" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument jest już zablokowany." @@ -47,13 +54,11 @@ msgstr "Dokument jest już zablokowany." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Użytkownik" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -62,7 +67,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -94,7 +98,7 @@ msgstr "Zablokowany" msgid "Checked in/available" msgstr "Odblokowany/dostępny" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Dokument" @@ -104,7 +108,8 @@ msgstr "Data i czas blokady" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." -msgstr "Liczba dni, godzin lub minut w trakcie których dokument będzie zablokowany." +msgstr "" +"Liczba dni, godzin lub minut w trakcie których dokument będzie zablokowany." #: models.py:35 msgid "Check out expiration date and time" @@ -119,7 +124,6 @@ msgid "Block new version upload" msgstr "Blokuj załadowanie nowej wersji" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Wygaśnięcie blokady musi nastąpić w przyszłości." @@ -131,6 +135,14 @@ msgstr "Blokada dokumentu" msgid "Document checkouts" msgstr "Blokady dokumentu" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Odblokuj dokumenty" @@ -147,64 +159,62 @@ msgstr "Zablokuj dokumenty" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Błąd podczas blokady dokumentu: %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" został pomyślnie zablokowany." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Zablokuj dokument: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Dokumenty zablokowane" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Rozpoczęcie blokady" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Wygaśnięcie blokady" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Szczegóły blokady dokumentu: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Ten dokument nie został przez ciebie zablokowany. Czy wymusić odblokowanie dokumentu: %s?" +msgstr "" +"Ten dokument nie został przez ciebie zablokowany. Czy wymusić odblokowanie " +"dokumentu: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Odblokować dokument: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument nie został zablokowany." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Błąd podczas odblokowania dokumentu: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" został pomyślnie odblokowany." @@ -253,11 +263,11 @@ msgstr "Okres" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +293,6 @@ msgstr "Okres" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo index a2431293e10b49e4b68a55b67f5eb9aaee752609..64cc7f02d76ba106e83161d038db9044d77f0e12 100644 GIT binary patch delta 84 zcmZ3)vWR8ENmFxO15;fi3k5?{D-%my0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{Bh!ihYI%GT^U_Nb(}A)DC6lWdqbEONbN~SCBpELN delta 83 zcmZ3)vWR8ENmDajLqlC7V+8{vD^nv~0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14A=i m17lqyLj@y4D+7y(|7s_9Fh+6vB<7`;CZ+>b6ij}==mY@Hvly=c diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po index fa73e45141..8451be6613 100644 --- a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utilizador" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo index 08cb131b3ce702b85cf2ca6d14cd207488e68a68..610f22c0e3b4f606fd33f12274c64bb451969251 100644 GIT binary patch delta 1250 zcmZA0O-K}B9LMp;+;Z2~)Xdddo2<07&E3UK-7d9Bhl-Moq8Gtdn`}vT%(tS8MxLTW zuy!fv;vwh|gk35;6?74agor|^OP8n)N?rT@#u1_ip7}iU%ro=+pa1jBhtOQz_)>-M zzM-^Gw^FC_j5&)80<_GG-c^ixgU=a0QJ^Ha58_>o^yo(`x zj@$7)Rx-a?p`if$1*`nW8(!ie?#~q((~J*MAAF0-z$dK1pU6<-Cq2qYIqt#T zsBtOJ%cw29>D}jWT#-Jep%uJ9rSJ=CrL}CRB5y*a_#kS6qn>Hh#5XXBw@~BWpfWR$ zJ8=b-$(j;lc3?XyuVMI37MGFCyU~KXihZc_;ieXqnYE%xIfw3ks;`N< zTMe%?dnzm1du2mgqeZzz`>(Q*s)+RqhN)VmB32=LZq)ik*=qL;=oi~dRaUfOWkZMb z-=c*nJ6pWYMo)IvEf!ZDSi^x`Z6FzTe>*U>GmH5}zM$1R;PhQJC+zFim_0O{ak8sD zxz7dj@wRXz9*(tJ(RiY@BOGasL<+l3hEw)fMgzm0=@C0&#UfG0wT5F+E4n`si|3a7 z)nzHC*B%;itdujH9?CemxB+yQ2^kOJrAF z6l_rx{Q=QUAwn0u5Y$Bw(M1^qgzN($8Nq?&F zT{nbHTTh$LGiDcl&*z7jFEC~Ye#SLe<1=Ojc3=e_z_oZBm*Ety#*4TKZ(|icL5+Wx z>wm>cW76g?7b|&Cxg`5S6KiIQXig%G0%`ED}FR=vYQSW`jVyrJTrV(x2 zjQv=H=Wrw5!b;{hkGRkTZ%~;npjP?^YtdhnU05@g)9=Amcmf+RiH&#@HNn%|^N*+^ z{zN`yej~Y>MWmP}pH&`aepATBL&`pgVfs~mV_I+kwUB94#y7AU@1Zh$fvUi3Y{muD zxN^!Q>rh+Pnd|qW5*$V?cnZ@h*&QyF*?UxGUr;4oL`_h{#>!gM#O>IPU8r#vP?flh z_4oi)xjC%EU#JCDmu9t5^Mp&Ozdn3~8`_gNZosR#f%kI*pQBd%0rkN=4u-}zpbp=D zRB4A$3mnZkfhzS`9KiEPp}onq}=%f0;x@^}lj~6PpLMK@ns+@}Dv@NtIno6%w z=K2S5{=9#HjjE19Nl^qZl!&%LQK9*DNLZM+a;;XOs#r9()GH-;p#!GO6)LF?Rtrtr z$8MReG=-|dIrC1w`X)S{n2fttV#IP|<59~^Sf>+X!`6)B`%#eDTl_5DVFv9xNXoVQlaY98EaE1T zAuBuL&+{)jgL-7Mx%D-Ov%yA+md7D|L=sX S3HM}o-;C`a^kp8GUHJz<(S{EI diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po index 441b223459..577f04a770 100644 --- a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:36+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Reservas" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento devolvido automaticamente" @@ -39,7 +44,7 @@ msgstr "Documento reservado" msgid "Document forcefully checked in" msgstr "Documento devolvido forçosamente" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Documento já está reservado." @@ -47,13 +52,11 @@ msgstr "Documento já está reservado." msgid "Document status" msgstr "Status do documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Usuário" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Hora da reserva" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Saída da reserva" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Novas versões permitidas?" @@ -94,7 +96,7 @@ msgstr "Reservado" msgid "Checked in/available" msgstr "Devolvido/disponível" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Restringir o carregamento de novas versões" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Data e hora da expiração da reserva deve ser no futuro." @@ -131,6 +132,14 @@ msgstr "Reserva de documentos" msgid "Document checkouts" msgstr "Reservas de documentos" +#: models.py:97 +msgid "New version block" +msgstr "Bloqueio de nova versão" + +#: models.py:98 +msgid "New version blocks" +msgstr "Bloqueios de nova versão" + #: permissions.py:10 msgid "Check in documents" msgstr "Devolver documentos" @@ -147,64 +156,62 @@ msgstr "Reservar documentos" msgid "Check out details view" msgstr "Detalhes da reserva" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Erro tentando reservar documeto; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Documento \"%s\" reservado com êxito." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Reservar o documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documentos reservados" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Data e hora da reserva" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiração da reserva" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Detalhes da reserva para o documento: %s " -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Você não reservou inicialmente este documento. Devolver forçosamente o documento: %s?" +msgstr "" +"Você não reservou inicialmente este documento. Devolver forçosamente o " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Devolver o documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "O documento não foi reservado." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Erro tentando devolver o documento: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documento \"%s\" devolvido com sucesso." @@ -253,11 +260,11 @@ msgstr "Período" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Período" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo index 5104216595cec9f0b953c5dae4f8d1c4a6a52837..b6b42f09c32dcb59e105e6e35da548d109a25991 100644 GIT binary patch delta 68 zcmaDL_&{*OB^F+DT?12HBMSvXQ!5k8$@f{LK_Vu)MurN8W>!X~li682__$=^5cX2C-<>NZ~n>poCyG;%@ol9 delta 68 zcmaDL_&{*OB^F*YT|+}%BVz>vBP&y*$@f{Lfg%RRx<-ZyMut`f7L(aoJ0{O(jpFx7 X%u6p#Oi#5^D9Voy^56V}^#v0Eq74+u diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po index b43cba8af6..7b9da13d90 100644 --- a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document aprobat în mod automat " @@ -38,7 +44,7 @@ msgstr "Documentul aprobat" msgid "Document forcefully checked in" msgstr "Document aprobat forţat" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document deja aprobat." @@ -46,13 +52,11 @@ msgstr "Document deja aprobat." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "utilizator" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -103,7 +106,8 @@ msgstr "" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." -msgstr "Total timp alocat pentru a deține documentul pentru aprobare în minute." +msgstr "" +"Total timp alocat pentru a deține documentul pentru aprobare în minute." #: models.py:35 msgid "Check out expiration date and time" @@ -118,7 +122,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +133,14 @@ msgstr "Document aprobat" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Aprobări documentele" @@ -146,64 +157,60 @@ msgstr "Aprobări documente" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Eroare la încercarea de a aproba documentul ;% s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Documentul \"%s\" a fost aprobat cu succes." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Aprobarea documentului:% s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Verificat detaliile documentului:% s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Documentul nu a fost aprobat." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Eroare la încercarea de aprobare a documentului; % s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documentul \"%s\" aprobat cu succes." @@ -252,11 +259,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +289,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo index 1d7f582765c68771e6a9e7a77546e4052b9eebee..6477791449f46e0bb3ddfbe1d90cdd73ef351162 100644 GIT binary patch delta 1288 zcmZ|O%S%*I9Ki8ojydCNd}NO1<2I#Z=FOSG(VU>tY|(?1=|NbKqYN?>GcZ0{v`{dj zg%EOWQ@fT4WoaOqt!ig-vt>BZA5aj4waUJ~d+#EM4xIU%JNI|qzdPSJ8<@382JBaToR@ zQ>u&TVtzG1Lr(h!Ucq6kB60=K@Vr@IUr8<7mk9?^$9vd#q1KV;xInO2HZiJuz`D!J3fsPKZr8$42JME_Te`y#p7N(t`8;d z4ociSp2RJbaqCMt|3fr-=_LcFPy!!e2d+Eja-OoFDC#(Xl9cx`gm3XIZeurgbME3a z%DC@Pj{G|^r22)D%$^F)pTtytGAfAyD$}M#Hw4qz+;hXA0;YK23=!9^heKMZBN~nv zS$CB;mL5uE#?o3WJsQs>)5ebbQqlQ%YGgbA%Lm5u5?_ll{|#UMZ@7^yd;bRnr?sg7 delta 1154 zcmXZbOKeP09LMpaFP&*=O}(nh)%U~Y&S-}jB&|oHG^sRA7scYLs*&kTGo5yWbb+0X zOeNy6uoSUsY@`Sa2{two3#EueghV1K8|C}EbN|Vi&pmU`J?EbD|KF?4_Zp|)hl;Kl z!lrGcU0P<$Ui@Cb53x{a%x?UM>#?@Tm{l0X5FWw}cnr&N3fJL9tizkQ79XR=zw!HD zvC5cf^N)+w+^8zfKhT0P`bTgjUPj%Y!7{vyJZK)ECVqhdTtGed4NI}1#F!?uu^9)j z7SH1ryn$7$Z|1nr0cYd zRAv#`tNDu@rYYbp2U*{ga1mnU3GAUi9yDe@K140Bgi22X+i$~u+>RG~?_-4iyx*@R z5AF23P~(!Q=WqG{zr=m?7jb%+i`WWdHsfv7f{#!+{fwGu2{ln0`3U0>_Td$*#CNE1 zKTzYUEAr!du#5gV)Vy=pil0#9%PTp5O}L9$qIlN#4(f&8qK$u0Mc71sH2x$W#u?N^ zA5ceJM&1}|La1V`M;-YdOkg)s-(LEZa@C&~_55mJO}=Z`uou<7b*LR^QiT>#Dq3jT zk)na7FQ}NNFF-FIpeeK&PTLFB3h(PhNb8e&uhL1sR~WjZ%C=~v-YY`zLItMkRp=|w zu5|*OsP}bjMTOEwoq3h7zUdxIPo}a~`m~izjEz{?v~?z(JY~%~ML!F32TPw0M(uFe zj_k0UNW3#*I~|S_JlbdXk4z;d66utEz|D@tt%wtj+Rjcp9J9i)cxOkuLj-%>iL5=4 yaZ?jXH=EAHtz;sZ-Zt*062mz+Fpzr|7%J~|Q=^maD05^cXKRAZrMc&!SN{RmD|-+C diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po index 3c8bab177b..d8b4663074 100644 --- a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,20 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-07-19 19:54+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Забронированные документы" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Документ автоматически освобождён" @@ -39,7 +46,7 @@ msgstr "Документ забронирован" msgid "Document forcefully checked in" msgstr "Документ освобождён насильно" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Документ уже забронирован." @@ -47,13 +54,11 @@ msgstr "Документ уже забронирован." msgid "Document status" msgstr "Статус документа" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Пользователь" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Время бронивания" @@ -62,7 +67,6 @@ msgid "Check out expiration" msgstr "Окончание бронирования" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Новые версии разрешены?" @@ -94,7 +98,7 @@ msgstr "Разбронирован" msgid "Checked in/available" msgstr "Освобождён/доступен" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Документ" @@ -119,7 +123,6 @@ msgid "Block new version upload" msgstr "Заблокировать загрузку новых версий" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Время окончания брованирования должно быть в будущем." @@ -131,6 +134,14 @@ msgstr "Бронирование документа" msgid "Document checkouts" msgstr "Забронированные документы" +#: models.py:97 +msgid "New version block" +msgstr "Блокировка добавления новых версий" + +#: models.py:98 +msgid "New version blocks" +msgstr "Блокировки добавления новых версий" + #: permissions.py:10 msgid "Check in documents" msgstr "Освобождение документов" @@ -147,64 +158,60 @@ msgstr "Бронирование документов" msgid "Check out details view" msgstr "Подробности бронирования" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Не удалось забронировать %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" забронирован." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Бронирование документа: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Документы забронированы" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Дата и время бронирования" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Истечение бронирования" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Подробности бронирования %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "Документ был забронирован не вами. Освободить насильно %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Освободить документ: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Документ не был забронирован." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Ошибка освобождения документа %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" освобожден." @@ -253,11 +260,11 @@ msgstr "Интервал" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Интервал" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo index 0546f1fa47fd3c0bc7a8f62d638fc8f7ab8ae665..1707b87c145656ca02f2af05ca20169623a63284 100644 GIT binary patch literal 1313 zcma)*J8#rL5XTJ(1k5{t0P)Zwfs_dC+4l$pM<*om5GQfUDLH5;qK&KEey^K9KynwvtWn#W}IAK z7|IAswThS)J`2NZ|q&@2XhSdeRmFy`Q!d+EgB~8_P{PkGVDUbOGPTBPF+Zhq^PgG)syzUga)zE3OM6 zUEw`p>h9B3XsJw!x4laFmWyRSWQnHDn8_q$TE!k&QR_U`3QSlm6a=!JvNoqp&LWSj zhN{P2UICj}vA3Wy;@oSTDQQ$)+ORY}WmX|IDSPNiPxR JFzXj$)-O~(VqyRQ delta 147 zcmZ3;)yHCSPl#nI0}wC*u?!Ha05LNV>i{tbSOD=Aprj>`2C0F8$$m_}re?Z^hPp<^ z3I;}2rbfC3CI$vv0sgu{sb!hPnfZCTE{P?nRtiQ2hGx13#=1s^3Py%j1{RYqFm+AN aVvgeXNz6+xO-u(WDb9%x_MCi}IS~LYV;v{} diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po index 2a7c4b5920..05c61a83f9 100644 --- a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po @@ -1,58 +1,62 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" +msgstr "Odjave" + +#: apps.py:54 +msgid "Checkedout documents" msgstr "" #: events.py:9 msgid "Document automatically checked in" -msgstr "" +msgstr "Dokument je avtomatsko prijavljen" #: events.py:12 msgid "Document checked in" -msgstr "" +msgstr "Dokument prijavljen" #: events.py:15 msgid "Document checked out" -msgstr "" +msgstr "Dokument prijavljen" #: events.py:19 msgid "Document forcefully checked in" -msgstr "" +msgstr "Dokumentu je vsiljena prijava" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." -msgstr "" +msgstr "Dokument je že odjavljen" #: forms.py:28 msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -75,31 +78,31 @@ msgstr "" #: links.py:35 msgid "Check out document" -msgstr "" +msgstr "Odjavi dokument" #: links.py:41 msgid "Check in document" -msgstr "" +msgstr "Prijavi dokument" #: links.py:48 msgid "Check in/out" -msgstr "" +msgstr "Prijava / Odjava" #: literals.py:12 msgid "Checked out" -msgstr "" +msgstr "Odjavljen" #: literals.py:13 msgid "Checked in/available" -msgstr "" +msgstr "Prijavljen / na voljo" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" -msgstr "" +msgstr "Dokument" #: models.py:29 msgid "Check out date and time" -msgstr "" +msgstr "Oglejte si datum in čas" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +156,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo index 3a10880f306cd53fb5defb64b11eb4a2b0cc607f..80ba6e692a17459f639ebb1f068a03a2c068b1b9 100644 GIT binary patch delta 64 zcmZo*X<(VKh}T@#z*N`BLc!3~%EWTwdTEe=iLQ~Mf}xp}k?F+i-TXd@dFiEz>8Vx< SWts6|ev=a!qbHwXGywoN^b-RB delta 64 zcmZo*X<(VKh}TTl&`{UNSi!)^%G7A$dTF45fw8WUp@Na2m4U^?>)n%!7^C=o67$ka T6Vp?z6v{H=!~7B^F+DT?12HBMSvXQ!5k8$@f{LK_Vu)MurN8W>!X~li68Y`F#@e(n}N5 WQ>_%LGUA>6CU>(&Z~n%5h7kae&JB^F*YT|+}%BVz>vBP&y*$@f{Lfg%RRx<-ZyMut`f7L(aoTPM$9jpFx7 X%u6p#Oi#5^sLF_U_S^iG^(-R*kQx+K diff --git a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po index 4ffd34e056..6b0eaf2c07 100644 --- a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "文档自动签入" @@ -38,7 +43,7 @@ msgstr "文档检出" msgid "Document forcefully checked in" msgstr "文档强制签入" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "文档已经检出" @@ -46,13 +51,11 @@ msgstr "文档已经检出" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "用户" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "文档检出" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "签入文档" @@ -146,64 +155,60 @@ msgstr "检出文档" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "尝试检出文档出错%s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "文档\"%s\"检出成功" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "检出文档: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "文档:%s的检出信息" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "文档未被检出" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "尝试签入文档出错: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "文档\"%s\"签入成功" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py index 1c56cb4553..aee19c5aaa 100644 --- a/mayan/apps/common/apps.py +++ b/mayan/apps/common/apps.py @@ -20,10 +20,10 @@ from .handlers import ( user_locale_profile_session_config, user_locale_profile_create ) from .links import ( - link_about, link_code, link_current_user_details, link_current_user_edit, - link_current_user_locale_profile_edit, link_documentation, link_filters, - link_forum, link_license, link_packages_licenses, link_setup, link_support, - link_tools + link_about, link_check_version, link_code, link_current_user_details, + link_current_user_edit, link_current_user_locale_profile_edit, + link_documentation, link_filters, link_forum, link_license, + link_packages_licenses, link_setup, link_support, link_tools ) from .literals import DELETE_STALE_UPLOADS_INTERVAL from .menus import menu_about, menu_main, menu_tools, menu_user @@ -71,8 +71,8 @@ class MayanAppConfig(apps.AppConfig): class CommonApp(MayanAppConfig): app_url = '' + has_tests = True name = 'common' - test = True verbose_name = _('Common') def ready(self): @@ -123,6 +123,7 @@ class CommonApp(MayanAppConfig): links=( link_about, link_support, link_documentation, link_forum, link_code, link_license, link_packages_licenses, + link_check_version ) ) @@ -148,7 +149,7 @@ class CommonApp(MayanAppConfig): if settings.DEBUG: level = 'DEBUG' else: - level = 'INFO' + level = 'ERROR' loggers = {} for project_app in apps.apps.get_app_configs(): diff --git a/mayan/apps/common/classes.py b/mayan/apps/common/classes.py index 4fb01d844a..03ed9f5331 100644 --- a/mayan/apps/common/classes.py +++ b/mayan/apps/common/classes.py @@ -103,7 +103,7 @@ class ModelAttribute(object): ) return ' '.join( - [ugettext('Available attributes: '), ', '.join(result)] + [ugettext('Available attributes: \n'), ', \n'.join(result)] ) def get_display(self, show_name=False): @@ -208,3 +208,28 @@ class Package(object): self.label = label self.license_text = license_text self.__class__._registry.append(self) + + +class PropertyHelper(object): + """ + Makes adding fields using __class__.add_to_class easier. + Each subclass must implement the `constructor` and the `get_result` + method. + """ + @staticmethod + @property + def constructor(source_object): + return PropertyHelper(source_object) + + def __init__(self, instance): + self.instance = instance + + def __getattr__(self, name): + return self.get_result(name=name) + + def get_result(self, name): + """ + The method that produces the actual result. Must be implemented + by each subclass. + """ + raise NotImplementedError diff --git a/mayan/apps/common/exceptions.py b/mayan/apps/common/exceptions.py new file mode 100644 index 0000000000..54a297ca1f --- /dev/null +++ b/mayan/apps/common/exceptions.py @@ -0,0 +1,16 @@ +from __future__ import unicode_literals + + +class BaseCommonException(Exception): + """ + Base exception for the common app + """ + pass + + +class NotLatestVersion(BaseCommonException): + """ + The installed version is not the latest available version + """ + def __init__(self, upstream_version): + self.upstream_version = upstream_version diff --git a/mayan/apps/common/generics.py b/mayan/apps/common/generics.py index ab67e9cc0c..1ff511c2a9 100644 --- a/mayan/apps/common/generics.py +++ b/mayan/apps/common/generics.py @@ -18,7 +18,14 @@ from django_downloadview import VirtualDownloadView, VirtualFile from pure_pagination.mixins import PaginationMixin from .forms import ChoiceForm -from .mixins import * # NOQA +from .mixins import ( + DeleteExtraDataMixin, ExtraContextMixin, FormExtraKwargsMixin, + MultipleObjectMixin, ObjectActionMixin, + ObjectListPermissionFilterMixin, ObjectNameMixin, + ObjectPermissionCheckMixin, RedirectionMixin, + ViewPermissionCheckMixin +) + from .settings import setting_paginate_by __all__ = ( @@ -182,9 +189,49 @@ class FormView(FormExtraKwargsMixin, ViewPermissionCheckMixin, ExtraContextMixin class MultiFormView(DjangoFormView): + prefix = None prefixes = {} - prefix = None + def _create_form(self, form_name, klass): + form_kwargs = self.get_form_kwargs(form_name) + form_create_method = 'create_%s_form' % form_name + if hasattr(self, form_create_method): + form = getattr(self, form_create_method)(**form_kwargs) + else: + form = klass(**form_kwargs) + return form + + def forms_valid(self, forms): + for form_name, form in forms.items(): + form_valid_method = '%s_form_valid' % form_name + + if hasattr(self, form_valid_method): + return getattr(self, form_valid_method)(form) + + self.all_forms_valid(forms) + + return HttpResponseRedirect(self.get_success_url()) + + def forms_invalid(self, forms): + return self.render_to_response(self.get_context_data(forms=forms)) + + def get(self, request, *args, **kwargs): + form_classes = self.get_form_classes() + forms = self.get_forms(form_classes) + return self.render_to_response(self.get_context_data(forms=forms)) + + def get_context_data(self, **kwargs): + """ + Insert the form into the context dict. + """ + if 'forms' not in kwargs: + kwargs['forms'] = self.get_forms( + form_classes=self.get_form_classes() + ) + return super(FormMixin, self).get_context_data(**kwargs) + + def get_form_classes(self): + return self.form_classes def get_form_kwargs(self, form_name): kwargs = {} @@ -199,25 +246,6 @@ class MultiFormView(DjangoFormView): return kwargs - def _create_form(self, form_name, klass): - form_kwargs = self.get_form_kwargs(form_name) - form_create_method = 'create_%s_form' % form_name - if hasattr(self, form_create_method): - form = getattr(self, form_create_method)(**form_kwargs) - else: - form = klass(**form_kwargs) - return form - - def get_context_data(self, **kwargs): - """ - Insert the form into the context dict. - """ - if 'forms' not in kwargs: - kwargs['forms'] = self.get_forms( - form_classes=self.get_form_classes() - ) - return super(FormMixin, self).get_context_data(**kwargs) - def get_forms(self, form_classes): return dict( [ @@ -237,25 +265,6 @@ class MultiFormView(DjangoFormView): def get_prefix(self, form_name): return self.prefixes.get(form_name, self.prefix) - def get(self, request, *args, **kwargs): - form_classes = self.get_form_classes() - forms = self.get_forms(form_classes) - return self.render_to_response(self.get_context_data(forms=forms)) - - def forms_valid(self, forms): - for form_name, form in forms.items(): - form_valid_method = '%s_form_valid' % form_name - - if hasattr(self, form_valid_method): - return getattr(self, form_valid_method)(form) - - self.all_forms_valid(forms) - - return HttpResponseRedirect(self.get_success_url()) - - def forms_invalid(self, forms): - return self.render_to_response(self.get_context_data(forms=forms)) - def post(self, request, *args, **kwargs): form_classes = self.get_form_classes() forms = self.get_forms(form_classes) @@ -369,7 +378,7 @@ class SingleObjectDeleteView(ObjectNameMixin, DeleteExtraDataMixin, ViewPermissi return result -class SingleObjectDetailView(ViewPermissionCheckMixin, ObjectPermissionCheckMixin, ExtraContextMixin, ModelFormMixin, DetailView): +class SingleObjectDetailView(ViewPermissionCheckMixin, ObjectPermissionCheckMixin, FormExtraKwargsMixin, ExtraContextMixin, ModelFormMixin, DetailView): template_name = 'appearance/generic_form.html' def get_context_data(self, **kwargs): diff --git a/mayan/apps/common/links.py b/mayan/apps/common/links.py index 35c48647e6..e4407c6d4b 100644 --- a/mayan/apps/common/links.py +++ b/mayan/apps/common/links.py @@ -8,6 +8,10 @@ from navigation import Link link_about = Link( icon='fa fa-info', text=_('About this'), view='common:about_view' ) +link_check_version = Link( + icon='fa fa-refresh', text=_('Check for updates'), + view='common:check_version_view' +) link_current_user_details = Link( icon='fa fa-user', text=_('User details'), view='common:current_user_details' diff --git a/mayan/apps/common/literals.py b/mayan/apps/common/literals.py index ca8bee1dcc..af4bd308ad 100644 --- a/mayan/apps/common/literals.py +++ b/mayan/apps/common/literals.py @@ -4,7 +4,8 @@ from django.utils.translation import ugettext_lazy as _ DELETE_STALE_UPLOADS_INTERVAL = 60 * 10 # 10 minutes - +MAYAN_PYPI_NAME = 'mayan-edms' +PYPI_URL = 'https://pypi.python.org/pypi' TIME_DELTA_UNIT_DAYS = 'days' TIME_DELTA_UNIT_HOURS = 'hours' TIME_DELTA_UNIT_MINUTES = 'minutes' diff --git a/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo index 081c594fabc70f1269e48a529bbdfd541bee06fc..2dd2a8762e3420e5fde79bacc11ae7924abfe256 100644 GIT binary patch delta 44 rcmcb?d4qF92otZlu7Rnpk%fYxsg;T4k+Fh-k(H^@=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "الاختيار" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "إضافة" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "إزالة" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "تفاصيل المستخدم" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "License" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Days" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Hours" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutes" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Object" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "لم يتم اختيار اجراء." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "يجب اختيار غرض واحد عالأقل." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "لا شيء" diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo index cca57d9b8577f1daec8d817130058f045f7b0d81..55167efbb706e364c43afc697e8a39059ae36af3 100644 GIT binary patch delta 66 zcmZ3+v5aHGZ$?vdT?12HBMSvXQ!5ioT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRY OI!h~4qs<0P-xvXABN5;L delta 66 zcmZ3+v5aHGZ$?uyT|+}%BVz>vBP&xQT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA UIs;uJ3k3snD`Vr$229@=0b%$N!~g&Q diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po index 16256964c2..ebb1c7eeb7 100644 --- a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Добави" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Премахнете" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Данни за потребител" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Лиценз" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Дни" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Часове" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Минути" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Обект" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Не са избрани действия." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Няма" diff --git a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo index d899ed42235060f842ec867a4d13f73806091b24..df4283b36e99fe3bec75697f3213e3f5b257f4d4 100644 GIT binary patch delta 44 rcmdnVxs!842otZlu7Rnpk%fYxsg;T4k+Fh-k(H^@=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Odabir" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Dodati" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Ukloniti" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Detalji o korisniku" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licence" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dana" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Sati" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuta" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objekat" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nijedna akcija nije odabrana." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Mora biti izabrana barem jedna stanka." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nijedno" diff --git a/mayan/apps/common/locale/da/LC_MESSAGES/django.mo b/mayan/apps/common/locale/da/LC_MESSAGES/django.mo index 2aa007928790b3bd0b4a469095b87659e3551ee9..5d394f13228662aa1397d4b85eea26c4410cb180 100644 GIT binary patch delta 44 rcmZ3)x`=gyAtSH3u7Rnpk%fYxsg;T4WIIM_gove;snO;%MjJ)|;|B?+ delta 44 xcmZ3)x`=gyAtSGuuA!l>k+Fh-k(H^@WIIM_kcfeehlWNHZl1DQpr0W{F*QwpF&Cd3tIz zMtiM^A=+@oj299Uqmhe-#P}}(V!SX>LP+3>3%rm7)Wqn5#(&@6>6z}5Cw=;P&*^*m zzVGwC?c3Yl+g`oCq3M(%9wQ$jo7NaJfw%ABjTmV*#=>;qag1^O3ijcdz;A=k?_h@e zn_7&aX`aS5JdXNG8?#tMp0ApZX>8=iHRNS}=Ivfw#vW{MHD(>|!7%Q_CLF~Gj^QRe zhMHIz)qe@Q@B>u;FK{hhK#lVau4jC6*>4#0J!;0k2L6G1KyNfn7(1{txVCT$*D=&U zPof5T7B#?g*o(6m!;{#JpP)X!gc}*(T&1Cv{e+sp9c;(HQI%-p!~1Y6>V66}q5XIi z58@$w7kR||i29yo+=hRmCborrP-S{h6HZ`N17v9|g(x9fTrV?<9_*%fKc;av&R`Nx z;dcBQvv?adV3PgN1cw6;;276A9KqA5t-gZH$=r%i|NCkD#*LlWL4ExdqGr55a1`lc z#!zSC7-}M~;s!j6Tk!&FA~#S2+(ec77gPm*M}1E;+UU1AO8r&J9&X58s0Rj7mB|G6 zb2z~DGpNJ%MsWWOs{cp08|#5LPy=?ZZ%m{Ywf9NXI0sP+JyNBiy_m!Y@dezBZ=zQ4 zA!AnS;58`dQyZeQz`6VyFFc0;bxlcj94Ed#>0; zYW6DiO7OSfhgPu?8gL(}-#bUZFoqvG8yZ}ZAXDT6B-Qsr71W|0(eGdTr@iOw`Jr+u z_L9S-MQYFV2c-(>CzmF*--?0{8@pxn3v;`}n z1F5}M#K|F2B~+PpiWS}ks>Svz6{r&99zxR`q0E_miH`;}{FTVLy% za4K%WwhGR)Z6+#1=GxKZq}Z;`1zdcS>Uc(Z;thz@a$C!zMJl~lO3m{M=JLGyl21U PnWu{LGj_c%S`7UQtkLcM delta 1380 zcmZA0O-PhM9LMq5OMW52+2syh@yjAY%0cT?$$|Iq?6!5 zTsqXLu%d3k(jn?38bU#J=n@h^Bt#b}i0D$^-?LkXhMng#Gds_`{AZq}hQ&bYLsi~Q zL+T{&BERw&(~mP-c#!Vo8DrtyoXglm{SzLQ~}3rVuNUCR2wM z7|0pMeC9X36x6XF`I#XeWq3YUAICk^uc9VcKuvHDHSi;>#mBk&8nQF<8ny5ZR3tXh zk3Ucw^)hJ<^P5@N?9k=5KHsWv8dyS>p zg@$t;MjdGvYT^;B!o^bJzn8*&8Z_}LYT%cs(7wYOTt|N98xNxAo{uc#oYb!Z6@gk* zdn<;q9d%bmbM3RJ{&T2t7s`mgCVW7Hdxp7=Yp9*PL4|l7cj6}Q#*%Ud#b%tuMbwdb zxnUa5k4;#EYVSt6nB%Cg>?~@WWQqbu=KiUbD~w9}$#rDy!Xh6ccaVc*?UdKtJD|z5 zFpk>&toETI_4jjbqs*F33t5*~Nk@3VE$RFFFXcY_f2}&F0J)N^yW)^-vXU;NcG*r= zIF)qH+Od)%sPHT4c$K_a+^AA)bi=MTg+q5isgd&(h;_ucE>3mJY^5Xu8$|iC*yWsG#QInVJAdC z$8HN*p`#He)Z&ne2cn6jJv<$aC$2=3lhYAvc=F, 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # Tobias Paepke , 2014,2016 @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-31 19:01+0000\n" -"Last-Translator: Tobias Paepke \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,118 +23,152 @@ msgstr "" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Allgemein" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Verfügbare Attribute:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Auswahl" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filter" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Auswahl %s kann nicht übertragen werden" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Hinzufügen" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Entfernen" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s nicht erstellt, Fehler: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s erfolgreich erstellt." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s nicht gelöscht, Fehler: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s erfolgreich gelöscht." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s nicht aktualisiert, Fehler: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s erfolgreich aktualisiert." #: links.py:9 -msgid "About" -msgstr "Über" +msgid "About this" +msgstr "Über Mayan" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Benutzerdetails" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Details bearbeiten" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Lokalisierungsprofil" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Lokalisierungsprofil bearbeiten" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Quelltext" + +#: links.py:35 +msgid "Documentation" +msgstr "Dokumentation" + +#: links.py:39 msgid "Data filters" msgstr "Datenfilter" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Forum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Lizenz" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Andere Paket-Lizenzen" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Einrichtung" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Hilfe" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Werkzeuge" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Tage" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Stunden" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuten" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Über" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operation durchgeführt für %(count)d Objekte" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operation durchgeführt für %(count)d Objekte" + +#: mixins.py:235 msgid "Object" msgstr "Objekt" @@ -178,6 +213,24 @@ msgid "User locale profiles" msgstr "Benutzerlokalisierungsprofile" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Protokollierung für alle Apps automatisch freischalten." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Zeit für die Verzögerung von Hintergrundaufgaben, die für ihre Fortsetzung auf einen Datenbankcommit warten." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Eine Ganzzahl, die die Anzahl der angezeigten Datensätze pro Seite angibt." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Datenbackend, das alle Worker benutzen können, um Dateien zu teilen" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +239,59 @@ msgid "" "temporary files." msgstr "Temporäres Verzeichnis zum systemweiten Speichern von Thumbnails, Vorschauen und temporären Dateien. " -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Datenbackend, das alle Worker benutzen können, um Dateien zu teilen" +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Eine Ganzzahl, die die Anzahl der angezeigten Datensätze pro Seite angibt." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Protokollierung für alle Apps automatisch freischalten." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Zeit für die Verzögerung von Hintergrundaufgaben, die für ihre Fortsetzung auf einen Datenbankcommit warten." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Aktuelle Benutzerdetails" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Aktuelle Benutzerdetails bearbeiten" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Aktuelle Benutzerlokalisierungsdetails" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Aktuelle Benutzerlokalisierungsdetails bearbeiten" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Filterauswahl" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Ergebnis für Filter %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filter nicht gefunden" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Einrichtungsdetails" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Keine Aktion ausgewählt." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Es muss mindestens ein Element ausgewählt werden." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Kein(e)" diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.mo b/mayan/apps/common/locale/en/LC_MESSAGES/django.mo index 6e17d877d88aae96521fe91c78672ecbca5379e2..3e2ab7e3b05280e24b7586da5f90930e38fcc82d 100644 GIT binary patch delta 26 hcmZo>Yi8S!#mH-}YhbEtWT9YaYGq=%xty_w5dc_o27mwn delta 26 hcmZo>Yi8S!#mH->YiOuzWUOFdWMyi!xty_w5dc@Q25kTU diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.po b/mayan/apps/common/locale/en/LC_MESSAGES/django.po index 63e92bcef2..5bfeaa6bed 100644 --- a/mayan/apps/common/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,121 +18,156 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selection" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, fuzzy, python-format msgid "Unable to transfer selection: %s." msgstr "Unable to add %(selection)s to %(right_list_title)s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Add" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Remove" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 #, fuzzy -msgid "About" +msgid "About this" msgstr "about" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 #, fuzzy msgid "User details" msgstr "user details" -#: links.py:16 +#: links.py:20 #, fuzzy msgid "Edit details" msgstr "edit details" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "License" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +#, fuzzy +msgid "About" +msgstr "about" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -177,6 +212,23 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #, fuzzy #| msgid "" #| "Temporary directory used site wide to store thumbnails, previews and " @@ -190,73 +242,65 @@ msgstr "" "temporary files. If none is specified, one will be created using tempfile." "mkdtemp()" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 #, fuzzy msgid "Current user details" msgstr "current user details" -#: views.py:42 +#: views.py:70 #, fuzzy msgid "Edit current user details" msgstr "edit current user details" -#: views.py:62 +#: views.py:90 #, fuzzy msgid "Current user locale profile details" msgstr "current user details" -#: views.py:69 +#: views.py:97 #, fuzzy msgid "Edit current user locale profile details" msgstr "edit current user details" -#: views.py:113 +#: views.py:153 #, fuzzy #| msgid "Selection" msgid "Filter selection" msgstr "Selection" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #, fuzzy #| msgid "Page not found" msgid "Filter not found" msgstr "Page not found" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "No action selected." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Must select at least one item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "None" diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.mo b/mayan/apps/common/locale/es/LC_MESSAGES/django.mo index 95bcacfccc9ebdcbc6fc3ad53e399dd55da854fd..694e01e63e455e56d37acb2d3f7cbe82a5b415b2 100644 GIT binary patch delta 1876 zcma*n-D@0G7{~FmdD%2+vPrvXwQaN$ZSzvQ=_Y2)OJ9v4iW1Yh_9B!Do84)%t-G`C z&JZRCG{(Z$LKm=)^BVT!PodH1YQH3o z(|!cGWG-V1E?_+_;v`-}?ys7=9Bihcqsf>J*o!ooG3>-c_&6TLRy>Q%_!cV0E7*ot zaSL8Y1^5lB|6PpZJyidub;hunR(4UwH=8)|1>=eKRuE*z4nRppDVLoiH zq5^swkD`y$_$xAo86od_&LQl^DO6zdsLT|ws))~VpaI^+ZFn8ui5PPWAK`qO-kRZQ zOyDKlgJ0s4_zOOUU97`#Jcz_#7LiAo4^e@BjxXX(+>gyM@~@dcOFrc*sFZoAK+fX` zzK>d>+sIgE1vRtZkqS(67w`hUi3N->J!QxVJ&y^_FQNkb0yWWFs3oi3;a~>`f1y&< z#S6jGn=z`2{tJq9H&rjA$`e$5lKR{<`@K{W5~e6);(&V#cFuB&*3Q1H;}zY0PUcS8S=T&Zzl#59)9dlHnEEhyh=7xwlZ1Q z%e%oXZTDe*tzB4+Q`K delta 1337 zcmY+@OGs2v9LMqF_!!@#rdir!%$%I^=AF?QV?rpL7KWK9ZL*-3r3;lvYGVxIE)s%E zku4;tg+U8(HepI&5J5sn^q`=GAc!_m5k(Mve=`@M!~LJnxtDX#7Xjd9<0TFEX1prhm**h<_>Pe8Pr0SQ2oB(I{by|SLih+7fX>xrV2~2 z#x;!D%x~IgsAD^FnQp3LJnG&L;1=%Bqb9h9n&2*K;Con!v+n&U?o zU-qJf{ip@qKy73SmGLBQ$5#m&99b$I>ZmlS)DfC6O!$dLB0}sYG!U<)CQ2O_Z7n)T zXmFCX_B-pGwUJ$fGOeN`RCZMK{ry+m-+t|xjzb?`DWMhHgm$K)kFlO;CMpOO{kqDi z3ZGNzS5;fbrs7GH`fzCmQs<^;O6yiNC=J90B1GuCb|we20~yX#&J`!-?aeuGW?;mB z+S%_dcNV>4PCR$W$;=x~I(a1-&ZGQ}NYo02tZ-0}IUotwqSoJ`*f=bdlD NStyxHj+ahm`~&YufNuZ* diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.po b/mayan/apps/common/locale/es/LC_MESSAGES/django.po index 3cdc8e7ca4..be8390468c 100644 --- a/mayan/apps/common/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/es/LC_MESSAGES/django.po @@ -7,13 +7,13 @@ # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:51+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -22,118 +22,152 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Común" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atributos disponibles:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selección" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "No se ha podido transferir la selección: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Agregar" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Eliminar" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s no se pudo crear, error: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s creado con éxito." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s no se pudo borrar, error: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s borrado con éxito." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s no se pudo actualizar, error: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s actualizado con éxito." #: links.py:9 -msgid "About" -msgstr "Acerca de" +msgid "About this" +msgstr "Sobre esto" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "Buscar actualizaciones" + +#: links.py:16 msgid "User details" msgstr "Detalles del usuario" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Editar detalles" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Perfil de localización" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Editar perfil de localización" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Código fuente" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentación" + +#: links.py:39 msgid "Data filters" msgstr "Filtros de datos" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Foro" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licencia" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licencias de otros paquetes" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configuración" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Apoyo" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Herramientas" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Días" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Horas" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutos" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Acerca de" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operación realizada en %(count)d objeto " + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operación realizada en %(count)d objetos" + +#: mixins.py:235 msgid "Object" msgstr "Objeto" @@ -178,6 +212,24 @@ msgid "User locale profiles" msgstr "Perfiles de localización de usuario" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Activar bitácoras automáticamente a todas las aplicaciones." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Tiempo para retrasar las tareas de fondo que dependen de la propagación de información en la base de datos." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Un número entero que especifica cuántos objetos se debe mostrar por página." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Un soporte de almacenamiento que todos los 'workers' puedan utilizar para compartir archivos." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +238,59 @@ msgid "" "temporary files." msgstr "Directorio temporero utilizado en todo el sitio para almacenar imágenes en miniatura, visualizaciones y archivos temporeros." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un soporte de almacenamiento que todos los 'workers' puedan utilizar para compartir archivos." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Un número entero que especifica cuántos objetos se debe mostrar por página." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "Su versión está actualizada." -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Activar bitácoras automáticamente a todas las aplicaciones." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Tiempo para retrasar las tareas de fondo que dependen de la propagación de información en la base de datos." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Detalles del usuario actual" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Editar los detalles del usuario actual" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Detalles del perfil de localización del usuario actual" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Editar los detalles del perfil del usuario local" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Selección de filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Resultados para el filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro no encontrado" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Elementos de configuración" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Ninguna acción seleccionada." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Debe seleccionar al menos un artículo." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Ninguno" diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo index b5a88d03a79221f09b8a905b80770b2f07531948..cf13935055d7b1ee5986edd995efe7f25e70ddd9 100644 GIT binary patch delta 66 zcmeAZ?GxQFgVoer*T7WQ$U?!;)XKzC*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV; O&eF=%X!BXtgDe0`;t|;Z delta 66 zcmeAZ?GxQFgVoeb*U(Vc$XLO^$ja16*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV& U&Oq15Lcze?%Gh}GS=NIr07thGy#N3J diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po index 104af55de1..8eb30a3c0c 100644 --- a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "خصوصیات موجود" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "انتخاب" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "افزودن" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "حذف" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "درباره" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "جزئیات کاربر" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "ویرایش جزئیات" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "پروفایل محلی" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "ویرایش پروفایل محلی" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "لیسانس" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "نصب" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "ابزار" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "روزها" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "ساعات" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "دقایق" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "درباره" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "شیئ" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "پروفایل محلی کاربر" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "محلی که کلیه کاربران جهت به اشتراک گذاری فایل میتوانند استفاه کنند." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "محلی که کلیه کاربران جهت به اشتراک گذاری فایل میتوانند استفاه کنند." - -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "جزئیاتا کاربر فعلی" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "یرایش جزئیات کاربر کنونی" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "شرح پروفایل محلی کاربر فعلی" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "ویرایش شرح پروفایل محلی کاربر فعلی" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "اقلام نصب" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "هیچ عملیاتی action انتخاب نشده است." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "حداقل یک مورد انتخاب شود." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "هیچکدام." diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo index 13d3146c262fb41f96342457100dbf00b12ed0cc..26708e08237a01e72d9eb96a90c220488ff8dfd0 100644 GIT binary patch delta 1451 zcmZA0OGs2v9LMpaX{KpU%^p@qE7NpzoSb}A5TuZ46g??gI62q6WX?4Aj#2~?(aILN zsBqT{(p})9MbSbj3W8|UqD2HjE+Pnmauf9Z&DRDQxpVJ1|MR%FD?e9_epr!r z(@=I06~yZtW4iG20xpz0dB#}08#seCv_D}j7UyT(fqJeN+wltWGf%mws~POT7pV6Z zFEnPAF{36*g`er+Qi?}#6AoZ8UdKY5K*lupaScwQ5}83g_XSttJnFgP0%I28a^#j- zi_5SwFoOAvZ}w8rgI&na9OkkFPX%okH_*O-8sG+MfCs3Kr?4C!1?`u}%*-29;-66~ z@eLQ_57b0+8MKV?O*xfg7{UX175SOBT=e35ti+F~fph6qGcG_SREp}b2FKXG-MF6i ztD@|Ca~Ppr$msRB3tQ2}(JCtUsGPv($h&4ey_2NbiuW z;Q!_lWB8eUTr`2>*np?86UVR&-nZVP|mvRA3DC z-T+!m2JLZdq&3R`CACo_|3RM|qTCA4prXe6RU z1EH0mpUfFh^6LmCT}x;?mH3~}c{_C_R!8U%tLSiU&D8Y${a5s@{#%r__Lw{~GY?~k zP|;zmA({#8r;3)9bDAldxjt1DEx$@`mdrV#TAlfHbWi)FC05bWttOfXE$6oBYkA`f zjymU)iBv3g(Z=1B)8{9sr9CHZJ=b^ah#PmTpRgYHsSKpgpBaj|gI>K&rkr8d8S!jv zC~p0~o%Fkdj@K|v+CR`|hCY%}&{5BArrRedlTa#JnpxY6?b@onZ0YFiizU042*VJTtcye^5kWx;N+M57P*81$ zgrXw4g^&je_7DXHfpiHB>d*@$okA+=pqGlM?{9YYVV?Os&+N=R|L6ZavtQb8wH23| zgEx)RON~(%0%ij^S<8uXIcS!^E537>r2h){;;L_JsB+&C%yE4JIqW_sy=o5oaUS*D z3T`$lT6~Qehh;f!!aR215Jqqc>+k|HmX&ZDUPlEohq~`AZp6>1`&KcGzmUUf)|xe8 zoo@?<7~eW+=*ARsSdLR89`gIgu$BG^)BxvE16)JBcm}uNZNL8rnVCIC1-^((*52bf zTtZFsD@GaL{?RC4lqeL)C?`EIiEVfWHQ)`@Oz)rqnMJ+mDVA8a*BGaNvcB@%G^Xj_ z#V%aLKKz62m?fIxFpXgviu558i#@?Xe1Qis!l)XsfSU0LDzI_P<5mCnm)Jo6BWeQ6 z*o{B%Fvj^Yilf+t(+%Wb1I}_mDW69T@C=)A0X4&S{`K#^E2!swV*+b|fThHtn7!|Tmk=T@V;lwT1Dwq zW>mCiltmRSqyA&GZyah1m1H$~-!g44J*o1&;7o1#VmK7&-S4DQPCAot)4ATX<7QpA ue(0!keC*uB*@@Gqoc@uiv0NhUrnt{_(tQc{KrWLhKd<{6D#w}z1OEY>u4@kf diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po index ff667fccff..0e76f3d31f 100644 --- a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # # Translators: # Translators: +# Christophe CHAUVET , 2016 # Franck Boucher , 2016 # PatrickHetu , 2012 # Pierre Lhoste , 2012 @@ -13,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" "MIME-Version: 1.0\n" @@ -23,118 +24,152 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Commun" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Options disponibles" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Sélection" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtre" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Impossible de transférer la sélection: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Ajouter" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Supprimer" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s n'a pas été créé, erreur: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s, creation réussi." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s non supprimé, erreur: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s, suppression réussie." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s n'a pas été mis à jour, erreur: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s, mise à jour réussie." #: links.py:9 -msgid "About" -msgstr "À propos" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Profil Utilisateur" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Modifier les détails" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Paramètres régionaux du profil" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Éditer les paramètres régionaux du profil" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Filtres de données" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licence" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licences des bibliothèques tierces" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configuration" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Outils" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Jours" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Heures" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutes" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "À propos" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objet" @@ -179,76 +214,85 @@ msgid "User locale profiles" msgstr "Paramètres régionaux des profils utilisateur" #: settings.py:13 -#| msgid "" -#| "ary directory used site wide to store thumbnails, previews and porary es. " -#| "If none is specified, one will be created using pfile.mkdtemp()" -msgid "" -"Temporary directory used site wide to store thumbnails, previews and " -"temporary files." -msgstr "" +msgid "Automatically enable logging to all apps." +msgstr "Activation automatique de la trace pour toutes les applications." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un espace de stockage que tous les agents pourront utiliser pour partager des fichiers." +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Durée pendant laquelle les tâches d'arrière plan sont différées pour les tâches dépendant d'une mise à jour de la base de données." #: settings.py:27 msgid "An integer specifying how many objects should be displayed per page." msgstr "Valeur entière indiquant combien d'objets sont affichés sur chaque page." #: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Activation automatique de la trace pour toutes les applications." +msgid "A storage backend that all workers can use to share files." +msgstr "Un espace de stockage que tous les agents pourront utiliser pour partager des fichiers." -#: settings.py:39 +#: settings.py:38 +#| msgid "" +#| "ary directory used site wide to store thumbnails, previews and porary es. " +#| "If none is specified, one will be created using pfile.mkdtemp()" msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Durée pendant laquelle les tâches d'arrière plan sont différées pour les tâches dépendant d'une mise à jour de la base de données." +"Temporary directory used site wide to store thumbnails, previews and " +"temporary files." +msgstr "Le dossier temporaire est utilisé pour stocker les vignettes, aperçus et fichiers temporaires." -#: views.py:37 +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" + +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" + +#: views.py:65 msgid "Current user details" msgstr "Détails de l'utilisateur courant" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Modifier les détails des utilisateurs actuels" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Détails des paramètres régionaux de l'utilisateur actuel" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Éditer le détail des paramètres régionaux de l'utilisateur actuel" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Sélection du filtre" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Résultats pour le filtre : %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtre non trouvé" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Paramètres de configuration" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Aucune action sélectionnée." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Vous devez sélectionner au moins un élément." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Aucun" diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo index a87109bddc2070b25ee2ab7ced185966fcc77168..185d04c9ca0e08ce5b0f5ed856de45757678da4b 100644 GIT binary patch delta 65 zcmaFI@{VP~S5tFc15;fi3k5?{D-%my0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14Fnv NODj{O&035ui~xFI5r_Z) delta 65 zcmaFI@{VP~S5q@xLqlC7V+8{vD^nv~0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X T16?Bv1p{*{W8=+Qj4q4-b~O=f diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po index 4254ab7cd9..d8c87144a1 100644 --- a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "A felhasználó adatai" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Semmi" diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.mo b/mayan/apps/common/locale/id/LC_MESSAGES/django.mo index 3ec12cb1271f0c657289f487d654c0175ca468d5..2a7206fd85539df788a6c30e7868b16be354b4aa 100644 GIT binary patch delta 66 zcmeyw^@(ePIJ2p_u7Rnpk%fYxsg;SPu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vx Oou!qj(PkfJH6{R7vk>S2 delta 66 zcmeyw^@(ePIJ2pluA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl Uoq?{Ag@S>(m9g<=A7(Ws08)q$%m4rY diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.po b/mayan/apps/common/locale/id/LC_MESSAGES/django.po index c09b1e73fb..f17422a746 100644 --- a/mayan/apps/common/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/id/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atribut yang tersedia" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "tambah" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "hapus" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Tentang" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Profil lengkap pengguna" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Edit" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profil lokl" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "edit profil lokal" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Lisensi" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Tentang" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "tidak ada aksi yang dipilih" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "pilih salah satu item" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "" diff --git a/mayan/apps/common/locale/it/LC_MESSAGES/django.mo b/mayan/apps/common/locale/it/LC_MESSAGES/django.mo index cc57276c96748d2a8afe60a3d7cfe64044ec2d17..d087fcc42474cef0a52c41b9b18559bdee842979 100644 GIT binary patch delta 1757 zcma*nO>C4!9LMol=-almrCsGk5gx6@t*~~xcBR|a7^I?vU`Y!lVkEZP$MrF3XMJ8U z(Zs!YA%yg>F0?8Bp1gzHw85BZT;0fpG}3I0gQdiin5F&!4&Y~r-zLxR;wbmG zw-`gw9K&`ziF&1r6X+rRYvv0ITe$HP@-u&Mc?j=dA9l1Fvk3<=jpNva2eA_m<92)v zHL(EI{!`50MO6E1*oN0p<9vgg8Q**#7mWE8HRHb%@1Z*ALeZqL3wx5fgFC5bQ3Jh< z8t8S@0B_<`SivkV;a0qYdj1`5VSMu=1+DCN)CBHg2mXtSL^}^3#$BlUMbw1$<8eHM zM{pVGVtzxt=MFxO|DYzelYLNR`cMMe#VAi=8?CdL!yL{eeuUbZ z%XkWZKn+-AKYDQtHIY~G2%f+}{2aB_H&GE-?Iiv>bho*ofi@Fgt+0el+Ps8nIEnns z43~a%@i{z;J$M}z+8d~quA(OJ7png~)WlNV+H<0cns9$N@mGUA+>ixSXiG>Rvp>0i z6gANk_y~rmc1ww$-~jdI#II2kx}7}lVAMycXHW|pM7_UMqoBQg1=ZmcZo|_^U$cZ- z$ufF)0cWt6Wh+u1>V*+1f;H4aE};5fLcRYh)WmNhI~~6hOid?L=?St9i_#vlI%$vB z5`PPE(j?cC1{^2rd*=wmTLJOe(cnsXa*?dTwPGcGt_uIt`u?>qyUCorIBE7uW8{5g zhs^Pa|DY5?eR3u8F0#@fS!dx{vJSJ(htkk};`8trWo?)KfOG)0RRogsf-%p4K8LlW z@E4Lw4u{Fwdxd#~tfbKIRiSadX?H3;XQR*w-}Zv~O7pGG30sa9+{JJ<^z34Nr6p6p z+H$7(p!K7L`irf0vg-QrBZtCU)?aYv9lPlCXUjHP3B4;`C_gx;tUl>hfBHqa6aFDbTT*Pp7sJ}mz$Uk-BG8I zA6jo$8Z8#;U#7QqPuV%w53Mt0gIV9Rja2*ih92kL$PKtz^=;J#UT7O*o6@PS^(DX0 zOWpc`&Xr`n8@rov#|_*{8QZ5#V-V{5g3ZLQYUy6Gl0L4p;<3Km)_eu9V?LbTB)sZA6QVi55l zcqlA_f(MHp)RPb|f{0WQK}9`?SVStK2wsGOh=TZk(#37EXFjVJFw0unTJ|=8U4+9mW`*Lk{zRlRh^yuEndPZyo&T`Zr~EUg&N2ds@*qSh(A&7YW>E{$42Cq zX~hND<{8Ec`ZwFCsNn!|m|dLe@ql-o!WCSfKy@&I>fk2o!?&>o?|Royk(rs7sDXb$ zW#T*5;1AS9%jmS3{!I&&y=dbQo<|Pznv-6f#x|TmbzH_*HDf<&KuxF*cH$kDuMaJ* zzg8Qw8ms8F6N6~ue$NY7P^ybm4&hr=hf%&xUuF|(K-;kgUDV7Tqh>yh+A|+f9sEH) zVb<2o&Ab=Yt`FB>KWd*H!$zE}BmYWWksF%XGgQZ~P%pm20M4M+Zq~bB&id$i4U$b0 zKrLCTcfSiYFb7+42-R-Ha}3q*>3Z_72NT>_idT^AnS01#9&&2N7pNCL;bQ!aDQs#m zW*?qK&HN4O{g0@Od_xViiP2LvOHtqJMh$FhfeK4jdZ>YP5GqQS8iWap=piCRkkDH5 zT4@icGYy=jF8x-kkR<*4oqMS>R?|&r6RT(m*OqGf|Nbl9Z~yPE(%(jCy|kGe!X{L- zWSZp$LbFoQe$o=EC?on+RkW{E%H}9-T&f+VwCdh+Vx=mS^@P$KB9y*$#Yjbm&plH4 z+0FR_?s5M`_m@B8-k*P_I8b%aSBTo7kR9%|oNz1>ww(=*Q@wN8-jzI+%B8XyyFZ>! z#;mXtqMc*+I#xIo3vKLnDAj}UT;AR@9?#@PW1C$iSIczSF!nM+!m(z*^N zyz5{(vE^two*E4%vgysdojH0kUi8;Q%8J8vexIAHf8=&I, 2012 # Giovanni Tricarico , 2014 -# Marco Camplese , 2016 +# Marco Camplese , 2016-2017 # Pierpaolo Baldan , 2011-2012,2015 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,118 +23,152 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Comune" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Attributi disponibili:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selezione" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Impossibile trasferire la selezione: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Aggiungi" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Rimuovi" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s non creato, errore: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s creato con successo.." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s non cancellato, errore: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s cancellato con successo.." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s non aggiornato, errore: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s aggiornato con successo." #: links.py:9 -msgid "About" -msgstr "About" +msgid "About this" +msgstr "A questo proposito" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Dettagli utente" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Modifica dettagli" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profilo Locale" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Modifica profilo locale" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Codice sorgente" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentazione" + +#: links.py:39 msgid "Data filters" msgstr "Filtro dati" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Forum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licenza" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licenze altri pacchetti" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configurazione" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Supporto" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Strumenti" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Giorni" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Orario" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuti" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "About" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operazione eseguita su %(count)d oggetti" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operazione eseguita su %(count)d oggetti" + +#: mixins.py:235 msgid "Object" msgstr "Oggetto" @@ -179,6 +213,24 @@ msgid "User locale profiles" msgstr "Profili dell'utente locale" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Abilita automaticamente i log per tutte le app." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Il ritardo per i task in background dipende dalla propagazione del commit su database." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Un intero che specifica quanti oggetti devono essere visualizzati per pagina." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Un backend di memorizzazione che tutti i lavoratori possono utilizzare per condividere i file." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -187,68 +239,59 @@ msgid "" "temporary files." msgstr "Directory temporanea utilizzata in tutto il sito per memorizzare, miniature, anteprime e files temporanei" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un backend di memorizzazione che tutti i lavoratori possono utilizzare per condividere i file." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Un intero che specifica quanti oggetti devono essere visualizzati per pagina." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Abilita automaticamente i log per tutte le app." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Il ritardo per i task in background dipende dalla propagazione del commit su database." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Dettagli dell'attuale utente" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Modificare i dati dell'utente attuale" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Dettagli del profilo dell'utente attuale" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Modificare i dettagli del profilo corrente dell'utente" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Scegli il filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Risultati per il filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro non trovato" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Impostazione elementi" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nessuna azione selezionata" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Devi selezionare un elemento" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nessuno" diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo index 91e85e30b45e781c75e5134d436f5b452690b8e6..c8b3982624fd05442e23dc3e8ac6e63045b8d76d 100644 GIT binary patch literal 4115 zcma);Ux*|}8Ne$Vjjn%kcN&c`#)^8$uGyL0+uY%0j(ynN?rkpI?wxnLIp4Hqx^|{_ zx~qn+>fP)Kq976x@j(PZPG91KK>|X^Q^1G{Vje_6h!4iMAn1b-5kVjPece5?ySJB^ zX1ae})n9$})%Sf>-@JC>&hII%Gu-!c|LP8f&Xmy zz`JU>Ct!#E6!KHg@(@+e!DaY7{0Mvlz8g;Q_%J*UKMfy(?}tyq_rmLtDU^X9gIiGM z|0)!@pTG~n7oo`g7QP4m4)Rm4@;C<7Nv{&FsxC@_zHz6YG zuMidL4Y&dS3-5!UXVT*^gW`{`z|X>)@NW1U_yPDT6uV!CqW|wu<~zYh@#`|Y7hZ!b zS!ECr6`}a^Yf#qn3>5jBP}cp^hChR1--}S}`8gClzlV~ye}a-9|AI2^7)nI%Jy7Cu zKa{vU3T0i3Q1pEPirogXWYvcf*8oM|w_t=nhF^mBv1l3hWk{F$I&8u3Lec*Vcmlox zW&CSU=KD7!OqI=_gzw;fgj;O;1h>p7_8z<*q9JQxXmvfzQ+y_u# z)g|lyc=Il~Drbx4p5+#wh~Fd^_Y_EM# zAhDT!O9AKOSj()oMd6E%J~>^z%!GrQM6l6zRPfN8B3X_SG3@_HHd42kzobL-h3Q+} zHNByAiH-vkwaGHQ>x-c+ShsPy3|2?4!@v|)Z>5zXICe2JYv)aU1q}?*w(9!C= z&vWn8`LZaiW37P!iH*pH!=0J$83vCEFZNAjmQ6Hbabziq2J1+3%iCU1D@jT~Zm0R^ zmp4&g36AZl8ixhd1&pa4&M+-43~8Vxcw4@7$+#nsLA{u=-Y0yCy_byZmv~2AN_*A? zcxaJoEp_51wN{3x>%n+WXV%d6&gwMUysg%~HkH~&#wOC|th!v~wz?b#RTz3h<_bEi zCkyJT&HauAq0C~y)S~euX&cnFiLuvgEJw6?Rx|QV5+xxsGj9@JBqX=(3~IyXBQmhq zBP$A4?|CE2>@$qlyJ=Eq9{s!w%Dn3&_Ok@q?xc1%Xd_8GQ6e*uoErpLGL~Ir_Nv_O z7vgChO&Eqc$rC%0g!fJx%?>hMLzef*H?o4EWD=Q4#?;zwh{HC#C+{|0m8ZzW!nm-7 z^CpoK*R<6pX<9udc_=;lmfW~aUr<*HF9%NRV$ynwoFy4Ldd=*y30Icau1#IFcq_Kn zLO)GfkC*+>+VCAcb>;F#>%1IL$hRcTJ9=UM)aP3BXIcwq^{F$R(~q_0PtVUI*t&}2 zMDK0n9_yT0cx0Yy>Jll`+K}aC2H$t|Ro}G*OTOxZDN>I>otv!E@N+?r`N6I zQbtU|jGi9EIO@#J?e6ZjD^I0c_USero-1l4#au2cYuO|Za}27Iea>ZHT)#9oGqrYc zZDrpFr`q#V=RL=a!>+v%3yk*ZILA4Xx^ucm!UY=_H#aV{&hE=K;c2b7o=-TGI{Iuk zjT75Dx|(b1N>&yoYhCa~&Y9yzRWmFuoYVE|;o!Ek{cc7-Y)N_kmZD%X>&cw1TvUGchj%YF&kDFv<-|nDd;DM#TI>G2@3Q6h=M%bcH zH4-_B7&Erj<2LjL>98yH%cgw}Q!-}6{_m(&o7+iSrlhAD9P|!T4$3rPz+^3jTCU5F zmMl+Qh&IbeEivkd=vWh{(zpPXxkfaS3=|q72+OOsehb9#pIU|qG z-RK<`r#Dj|u93Km8Jscst%XX`6!W}M9RrLi?wv2okSF0tAAc`Y19NJjdDh4PH%X)`3^@=ml z=^cODnnf)-QnHpMo%;5dFI6>5C%#waoHa!IU_bwp#%ZipGvAfJ9Q)y@=aW@Pe61uC zf0ulQ!IHtUWD*;H%~q0Z;^YxrvZh0ca?6)}#}fVj0k+(2X8-^I delta 1170 zcmY+CO-vI(6vqcGHPhO2&jQ_V?4!+ELzj?DW@4b0Dir?w3f9na| zXOJ=IF!Xp6V<*6weK3$eAP08?4((^G8U9HSgJod)!C9~mTmjp_YhVbx1rCDiU;<1SzSr41Oj@z935LN>ASKui*1v!)@V|pm@Mqxv24nF5f)sEB*(hNghT=?t1K_E^ zUjnJH6_DZ=!9G@J%);a#7H)%7$ira6V-SNqg`vt{g749tw;+dKMHb=%upN8@()o|z z5cnCS0(Za&*o<3H;$CnZ90a4t&(2^%1nM=M1dIW z2@L(h7a+BK3#4;DK#H>i(y#gjQYS(PQl~&s7}_`hQp<)x3XlXb*gOm+S_bK05$pjg zAR6Ke?cWpHLqbWZ1Ban>b9z$L2@>iMV$l5?NvVKQ-)lT9dQ2$PZ}9eOYKCbUIZJRuO4rO) zrSQ^Rb%p!Ya(F_$3ddDb%e~G;VTrsn9h)r*S*@rKEn3Vhi<^!uSk`eYk1ct^^$jlw ziI{4)b-q5O#p7CHlIw|dDxv8~U2k8wq+J#@(?cxnydg!JC-k_#PoL)TR63PBrbF82 z3{PrV*RVaykdB+?vo&FvYc^jr3`?4JiO-0}iWe-LT`eQ;MBXW%#%X)CYP^2lmTc<1 zXcrx~Y)DhED~?#@(h+K*Bc|4&UpuCco)g!FTMEkdSgzq(P6=^&#dV6Nuv95BGP>jn zn`N=e=FGgXDd61yyS5|cNYEb3t_kt diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po index c00f23d2ef..f50f3eeb36 100644 --- a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po @@ -5,14 +5,15 @@ # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 # woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-09 15:54+0000\n" -"Last-Translator: Evelijn Saaltink \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,118 +21,152 @@ msgstr "" "Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" -msgstr "" +msgstr "Gemeenschappelijk" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Beschikbare eigenschappen:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selectie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filter" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." -msgstr "" +msgstr "Niet mogelijk om selectie over te dragen: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Voeg toe" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Verwijder" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" -msgstr "" +msgstr "%(object)s niet aangemaakt, foutmelding: %(error)s." -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s succesvol aangemaakt." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." -msgstr "" +msgstr "%(object)s niet verwijderd, foutmelding: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s succesbol verwijderd." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." -msgstr "" +msgstr "%(object)s niet geupdate, foutmelding: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." -msgstr "" +msgstr "%(object)s werden succesvol geupdate." #: links.py:9 -msgid "About" -msgstr "Informatie" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "gebruiker gegevens" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Bewerk details" -#: links.py:19 -msgid "Locale profile" -msgstr "Lokaal profiel" - #: links.py:23 -msgid "Edit locale profile" -msgstr "bewerk lokaal profiel" +msgid "Locale profile" +msgstr "Landsinstellingen" #: links.py:27 -msgid "Data filters" +msgid "Edit locale profile" +msgstr "Wijzig landsinstellingen" + +#: links.py:31 +msgid "Source code" msgstr "" -#: links.py:31 views.py:150 +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 +msgid "Data filters" +msgstr "Gegevensfilters" + +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licentie" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Andere pakketlicensies" -#: links.py:38 +#: links.py:54 msgid "Setup" -msgstr "Setu" +msgstr "Setup" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Gereedschappen" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dagen" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Uren" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuten" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Informatie" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Object" @@ -169,83 +204,92 @@ msgstr "Taal" #: models.py:67 msgid "User locale profile" -msgstr "" +msgstr "Gebruikerslandsinstelling" #: models.py:68 msgid "User locale profiles" -msgstr "" +msgstr "Gebruikerslandinstellingen" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Wachttijd voor achtergrondtaken die afhankelijk zijn van het verbreiden van een database commit." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Een natuurlijk getal om aan te geven hoeveel objecten per pagina weergegeven worden." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Een opslagbackend die alle werkers kunnen gebruiken om bestanden te delen." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files." +msgstr "Globale instelling voor een tijdelijke folder om miniaturen, voorvertoningen en tijdelijke bestanden in op te slaan." + +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "" - -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Gegevens van huidige gebruiker" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Bewerk gegevens van huidige gebruiker" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" -msgstr "" +msgstr "Details landinstellingen huidige gebruiker" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" -msgstr "" +msgstr "Wijzig landsinstellingen van de huidige gebruiker" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" -msgstr "" +msgstr "Filterselectie" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" -msgstr "" +msgstr "Resultaten voor filter: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" -msgstr "" +msgstr "Filter niet gevonden" -#: views.py:177 +#: views.py:217 msgid "Setup items" -msgstr "" +msgstr "Setup items" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Geen acties geselecteerd." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Selecteer minimaal een item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Geen" diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo index 9f9cde7e7ca858813469f6029eaef861d7833213..bd6be8248febdc2ac34228f5324fe79442684ad7 100644 GIT binary patch delta 624 zcmYMwJ4+)`6u|Kllc@2!j zY$alABLudv74Z|;S^5bqc3b}^j;8v}J?Easo#*V$!2MMs8fp@WT0~Ywq?!@wz<-#= zWShtgW-!1-?8WogDt2?O;UGR?C%$19zGD&-?IQh{#vBgD=h=3N>WMW1DG~>$gO6fQ zv5)f^YU68USGmJxtYIrYpf2(l$6v6(`4xw-nOAB5JZjx9)Q5N-(dWQ90y<~`sgXa( z@)E}JL+s&vfm(Qr^Y|C_r3tpv`#Hd)9=8*&XO55S2`;&$ri@EfI81}DTa$rpRJ#Q&h`aiY Ycq!LNXshpmO#JNY(RZ{qok^!Y0B&SdQUCw| delta 534 zcmXZY&ntvM7{Kw_EcOQqDXlOmti!8$=Vj^T#eEJJkQKC^UPfKJZElCW8qUwsjyk8b*0ooQmGcaz(%~n zIlRRHzp)c->fZ%yC*Ht5EMY4iV;i1f16HvcuW=9`qxd7G!umoytyG+aUX+UmBD2^< zJc@GgJkqOL!zSFo1m;m1*^2TN93ei!e!M|B|0P;~MR~|uI{d%zlZ0IKg$$MC8)#B> zq2x7oU=F2l5tnci<)u}W{dYKw4=Crnqcrw|@9AFndC_J;fTc+PQM$9mdW zf807|%$U^binCTYEbbMz%g%g$zu;?YT=p5qPHHpZd)`UnciEfLJEeo&d@0D5gTU3Z r+Gt;w2VFB0SUogUpH2s3GR;cbOuI%`D)qeVF(cHt)Y#g2vN8S#p@>8- diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po index 06ece6c5fb..dd0a4cc1ca 100644 --- a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po @@ -13,128 +13,162 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Ustawienia wspólne" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Dostępne atrybuty:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Zaznaczenie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtr" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Nie można przenieść zaznaczenia: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Dodaj" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Usuń" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Informacje o" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Dane użytkownika" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Edytuj dane użytkownika" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profil regionalny" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Edytuj profil regionalny" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Filtry danych" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licencja" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Pozostałe licencje" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Ustawienia" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Narzędzia" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dni" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Godziny" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuty" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Informacje o" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Obiekt" @@ -179,6 +213,24 @@ msgid "User locale profiles" msgstr "Profile regionalne użytkownika" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Włącz dla wszystkich aplikacji automatyczny zapis zdarzeń." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Czas opóźnienia wykonania zadań zależnych od operacji na bazie danych." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Liczba określająca ile obiektów będzie wyświetlane na stronie." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Backend przechowywania umożliwiający wszystkim użytkownikom udostępnianie plików." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -187,68 +239,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Backend przechowywania umożliwiający wszystkim użytkownikom udostępnianie plików." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Liczba określająca ile obiektów będzie wyświetlane na stronie." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Włącz dla wszystkich aplikacji automatyczny zapis zdarzeń." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Czas opóźnienia wykonania zadań zależnych od operacji na bazie danych." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Dane użytkownika" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Edytuj dane użytkownika" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Profil regionalny użytkownika" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Edytuj profil regionalny użytkownika" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Wybór filtru" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Wyniki dla filtru: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Nie znaleziono filtru" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Ustawienia elementów" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nie wybrano żadnego działania" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Musisz wybrać co najmniej jeden element." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Brak" diff --git a/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo index fc6e2c3ae192da7b49fb5c1de468cc5fbf5d10fb..0ff16fb906725db1277fe62e16e510a30c104d54 100644 GIT binary patch delta 66 zcmZqRY~b7w$z*D-YhbEtWT9YaYGq=nYhYqvz!l)H8S)7@lr|Xhfl4_-3WMBwa OXK7_>w7HMz6C(gFX%SBV delta 66 zcmZqRY~b7w$z*D#YiOuzWUOFdWMyikYhYqvz!l)H8S)7@lr|Xhfl4_-3WMBwX UXP|3jpQX8XMQdN^zF@XJ{p@7jASeP2SZg%_+$n znaa%d@IoYbHx-#Myip`KMVK(_l>-$)oCv#_FvNcsj#5O6-`|_JyYOlcJ@4nd?|YJS zp68tO=H9;!)UR)Ad&dxu(00+-0T?#30|kDEG-*^EaphGW=ZFk95vD7 zsEJOZCOD1v;XKCiE$qi7)cbF-kNM3Hbd=d2s0FOzCR{^RqLY`~aS!Tw8nvKD@i}}F zpT_r*kC@+4-?M^y@gLN}2G|ExWZiudDb9Ktto zA1>i6{)Cz^!+!7;W*nK*JcZBT4C+i=L{;EAssbxr)c+nj|MDP(JE(6D9!F(*5_M?i zkw5b?7iIJsj^PE=_#aV;{DP{?TKGK5OHI^=I%B(0nU93epXj0fD$NuRwBi|52~Qzw zGV`b}tf3C$IlLD?Kz;G$&@VC0{Z$;qTc~jZTUwvbqJCY+Q1iTi3^AoT9hKx&+=FkU zCi)b$fbUTYxPfQ!SM;#Bwe|ihRHd%r1Nbv4f!=McitIwm{cvaw+38>mn7Z~?q5V{8 z6^Cg$a9YTE@NXdqEp|PWv9>{b%Mmcl9mD~y%1)7_rD@t`b|nb?TyixhL+Ui&Z95c+&AFOy{TEBs#+CM)T@$WQTky($-Y>aw z<4Ux*@mchI`=qPX78=Jo+|;6130_$`XIy2$D_U2!2jc}-EBk}o%)R6ld~=86s*O)N z-sqinwMxOW1y}UUbZv3bRs81A#@R^vXd;lJE#zL>Y(!vAvhT`Si+7+7sw>R#IZ*mAR2 Uns@e$EBisZWa~9g^_-9V2axygSpWb4 delta 1380 zcmZA0NoW&M9LMpOXpK$UTB~)d%fzMDwo{X_iICQ!Sd>a#s0vctqNEzs6q6_-#V8(B z@K6{O^rWbuHzD8xdMP3vT=1qIL=+YEA_yX${Qf2*h>!f|^WNmmTmEn6$HLFi(%Xjd z7Yrpy%qE@&jOoLXaa<@@#v5bdRo^jeq5T1uU` zCKxl#n373Q;b;1}OvTN(0QX}Jp2upugv@EK;Y_@VTF4lx-#46szfk>ZLdHzQ$;d4; z3+plJ>tGf0o7Gg*u@Cu~0WNho=(n>tm-b=Q1f!@4uA>INh12o2-+qGZ%)CG?{1Yk@ z-!XzeQ5y|1X(RKS=~T9&jqC9=@-r{F=)pG_#doNQgN&*jhfoWeiW;y5?{R!9Pz(MU zt{h1tvo5Bc#8%vi?RXAL^QqjSvIAeECS1v?UJmQA;_M-;=f?DAZ)Q-o|n1@ZMfxGY+ z?!pYdLM@<&H%vS4#}3?vTHqPfMn}=Y8@`WAR5&tkGA*Q;P+3GMwMwf+EF}_z2Gu}3 z=Dh=2taivzd!Ln#Qw#a~IWMEm9!wjdcS1!OUF_BL{ry*TUjLQ`8alhl#6luQ*o2CX zqJ`)r8VMC;M>|$gCiJPQ=)F=2R`8CKYO|MK-J3%w#VYN@3?feG+*-?ts^)+@G~uIL z2sO9|Lg(Dyp`3ev;z+r#dV8RhwBvExS!TtYRKl@iov~PW(?)wBb2MAX4(IINbTN~% zoLJoJ7hi5UPO3B67Ndmw(}kkFC7;d}4yKF4`INQlU^bVr*5otUV!B{;r`25PU56_7 vI`$49>e!R-;nCc_Bk6q^yBv-rg5`C!(SUor?zy{h(ug~^{%-kO{n@}D)}f9u diff --git a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po index 45463a766a..b8f0a105f9 100644 --- a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po @@ -6,15 +6,16 @@ # Translators: # Aline Freitas , 2016 # Emerson Soares , 2011 +# Jadson Ribeiro , 2017 # Roberto Rosario, 2012 # Rogerio Falcone , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:46+0000\n" -"Last-Translator: Aline Freitas \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,118 +23,152 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Comúm" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atributos disponíveis:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Seleção" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Não foi possível transferir a seleção: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Adicionar" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Remover" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s não criado, erro: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s criado com sucesso." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s não removido, erro: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s removido com sucesso." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s não atualizado, erro: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s atualizado com sucesso." #: links.py:9 -msgid "About" -msgstr "Sobre" +msgid "About this" +msgstr "Sobre isso" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Detalhes do usuário" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Editar Detalhes" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Perfil Idioma" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Editar perfil Idioma" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Código fonte" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentação" + +#: links.py:39 msgid "Data filters" msgstr "Filtro de dados" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Fórum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licença" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licenças de outros pacotes" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configurações" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Suporte" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Ferramentas" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dia" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Hora" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutos" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Sobre" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operação executada em %(count)d objeto" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operação executada em %(count)d objetos" + +#: mixins.py:235 msgid "Object" msgstr "Objeto" @@ -178,6 +213,24 @@ msgid "User locale profiles" msgstr "Perfis de localidade do usuário" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Ativar automaticamente o registro de todos os aplicativos." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Tempo para atrasar as tarefas de fundo que dependem da propagação de informação na base de dados." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Um número inteiro que especifica quantos objetos se deve mostrar por página." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Um suporte de armazenamento que todos os trabalhadores podem usar para compartilhar arquivos." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +239,59 @@ msgid "" "temporary files." msgstr "Pasta temporária utilizada em todo o site para armazenar imagens em miniatura, visualizações e arquivos temporários." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Um suporte de armazenamento que todos os trabalhadores podem usar para compartilhar arquivos." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Um número inteiro que especifica quantos objetos se deve mostrar por página." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Ativar automaticamente o registro de todos os aplicativos." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Tempo para atrasar as tarefas de fundo que dependem da propagação de informação na base de dados." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Detalhes do usuário atual" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Editar detalhes do usuário atual" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Detalhes do perfil de localidade do usuário atual" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Editar detalhes do perfil de localização do usuário atual" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Seleção de filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Resultados para o filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro não encontrado" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Itens da Configuração" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nenhuma ação selecionada." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Deve selecionar pelo menos um item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nenhum" diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo index bb5457a5ae791bcbc8cbae1e3e228e4bd3422308..9ae9e63f40699de1988836dc0434b3b4f093f53c 100644 GIT binary patch delta 44 scmeyw`H6GG9420KT?12HBMSvXQ!5k8$t#(p5h9jWrbe4DGAS|v02+D=c>n+a delta 44 ycmeyw`H6GG941~fT|+}%BVz>vBP&y*$t#(pK_UjaMivSN=2phWn=djcG64V=@e5r5 diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po index b647b83a2b..9dbf22816c 100644 --- a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: ro_RO\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "selecţie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Adaugă" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Şterge" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Despre" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "detalii utilizator" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licenţă" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Zi" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Ore" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minute" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Despre" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Obiect" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nu a fost selectată nici o acţiune." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Trebuie sa selectaţi cel puţin un rând" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nici unul" diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo index 91e509bf60833feaf82ca494ac3528f7b2198a24..8a4d01e50c43747aaa17fd796adbe9113adac7fc 100644 GIT binary patch delta 66 zcmX@Fab9DCG^eS#u7Rnpk%fYxsg;SPu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vx Oou!qj(dGco|6BlAB@xpA delta 66 zcmX@Fab9DCG^eSVuA!l>k+Fh-k(H^Du7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl Uoq?{Ag@S>(m9g>W0M7qh08{!Aw*UYD diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po index 2a696dff02..4ff45ef7dd 100644 --- a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Общий" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Доступные атрибуты:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Выбор" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Фильтр" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Невозможно передать выделение: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Добавить" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Удалить" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s не создан, ошибка: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s успешно создан." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s не удалён, ошибка: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s успешно удалён." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s не обновлён, ошибка: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s успешно обновлён." #: links.py:9 -msgid "About" -msgstr "Инфо" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "сведения о пользователе" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Редактировать сведения" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Профиль локали" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Редактировать локаль" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Фильтры данных" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Лицензия" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Лицензии других пакетов" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Настройки" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Инструменты" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Дней" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Часов" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Минут" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Инфо" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Объект" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "Профили локали пользователей" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Автоматически разрешать всем установленным приложениям делать записи в журнале." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Время задержки фоновых задач зависящих от процесса распространения записанных в БД данных." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Числовое значение указывающее как много объектов может быть отображено на одной странице." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Бекенд хранения, который каждый может использовать для хранения файлов." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Бекенд хранения, который каждый может использовать для хранения файлов." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Числовое значение указывающее как много объектов может быть отображено на одной странице." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Автоматически разрешать всем установленным приложениям делать записи в журнале." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Время задержки фоновых задач зависящих от процесса распространения записанных в БД данных." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Настройки текущего пользователя" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Редактировать настройки текущего пользователя" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Настройки локали текущего пользователя" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Редактировать настройки локали текущего пользователя" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Фильтр по выбранным" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Результаты для фильтра: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Фильтр не найден" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Элементы настроек" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Никаких действий не выбрано." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Необходимо выбрать хотя бы один элемент." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Ни один" diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo index 835e209426fa8ff726c8604d70dc911cbc3bc355..4eb7d47b7c6639d238dc86eca93f910b13312f71 100644 GIT binary patch delta 64 zcmcb{a*bueZc}qz15;fi3k5?{D-%my0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14Fnv MODj{OjUUn&0aAMs0{{R3 delta 64 zcmcb{a*bueZc{T|LqlC7V+8{vD^nv~0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X S16?Bv1p{*{W8;k<(ij0wY!T-G diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po index 7b5b6ab0ab..bea92c9315 100644 --- a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: sl_SI\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 -msgid "User details" +#: links.py:12 views.py:51 +msgid "Check for updates" msgstr "" #: links.py:16 +msgid "User details" +msgstr "" + +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Brez" diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo index a69381cf29d682654bae74b0703360c988070fbf..0c06023076445a0d298921980c029b7c42e56c9d 100644 GIT binary patch delta 66 zcmeC>=;he(lhM>%*T7WQ$U?!;)XKzC*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV; O&eF=%XtN&EeMSIS!4Z=H delta 66 zcmeC>=;he(lhM>n*U(Vc$XLO^$ja16*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV& U&Oq15Lcze?%Gh|b9@BkB092L{cK`qY diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po index b2783432ce..276fbd654a 100644 --- a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Lựa chọn" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Thêm" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Xóa" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Chi tiết người dùng" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Bản quyền" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Đối tượng" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Không thao tác nào được chọn." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Cần chọn ít nhất một phần tử." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "None" diff --git a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo index 65b56fb7378318fd8bb1f792668d76cea5108461..8397ff868c80c1de44ff7277beca451be9702b56 100644 GIT binary patch delta 44 rcmZ3>v6f>)2otZlu7Rnpk%fYxsg;T4v6f>)2otZFuA!l>k+Fh-k(H^@\S+?)/$', javascript_catalog, diff --git a/mayan/apps/common/utils.py b/mayan/apps/common/utils.py index 1f03bc2e23..fb006f6d57 100644 --- a/mayan/apps/common/utils.py +++ b/mayan/apps/common/utils.py @@ -5,17 +5,34 @@ import os import shutil import tempfile import types +import xmlrpclib from django.conf import settings +from django.core.urlresolvers import resolve as django_resolve +from django.urls.base import get_script_prefix from django.utils.datastructures import MultiValueDict from django.utils.http import urlquote as django_urlquote from django.utils.http import urlencode as django_urlencode +import mayan + +from .exceptions import NotLatestVersion +from .literals import MAYAN_PYPI_NAME, PYPI_URL from .settings import setting_temporary_directory logger = logging.getLogger(__name__) +def check_version(): + pypi = xmlrpclib.ServerProxy(PYPI_URL) + versions = pypi.package_releases(MAYAN_PYPI_NAME) + + if versions[0] != mayan.__version__: + raise NotLatestVersion(upstream_version=versions[0]) + else: + return True + + # http://stackoverflow.com/questions/123198/how-do-i-copy-a-file-in-python def copyfile(source, destination, buffer_size=1024 * 1024): """ @@ -93,6 +110,11 @@ def mkstemp(*args, **kwargs): return tempfile.mkstemp(*args, **kwargs) +def resolve(path, urlconf=None): + path = '/{}'.format(path.replace(get_script_prefix(), '', 1)) + return django_resolve(path=path, urlconf=urlconf) + + def return_attrib(obj, attrib, arguments=None): try: if isinstance(attrib, types.FunctionType): diff --git a/mayan/apps/common/validators.py b/mayan/apps/common/validators.py new file mode 100644 index 0000000000..84ff982615 --- /dev/null +++ b/mayan/apps/common/validators.py @@ -0,0 +1,32 @@ +from __future__ import unicode_literals + +import re + +from django.core.validators import RegexValidator +from django.utils import six +from django.utils.functional import SimpleLazyObject +from django.utils.translation import ugettext_lazy as _ + +# These values, if given to validate(), will trigger the self.required check. +EMPTY_VALUES = (None, '', [], (), {}) + + +def _lazy_re_compile(regex, flags=0): + """Lazily compile a regex with flags.""" + def _compile(): + # Compile the regex if it was not passed pre-compiled. + if isinstance(regex, six.string_types): + return re.compile(regex, flags) + else: + assert not flags, 'flags must be empty if regex is passed pre-compiled' + return regex + return SimpleLazyObject(_compile) + + +internal_name_re = _lazy_re_compile(r'^[a-zA-Z0-9_]+\Z') +validate_internal_name = RegexValidator( + internal_name_re, _( + "Enter a valid 'internal name' consisting of letters, numbers, and " + "underscores." + ), 'invalid' +) diff --git a/mayan/apps/common/views.py b/mayan/apps/common/views.py index 5e8f47481d..a05d2a2dba 100644 --- a/mayan/apps/common/views.py +++ b/mayan/apps/common/views.py @@ -10,21 +10,49 @@ from django.template import RequestContext from django.utils import timezone, translation from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _, ugettext -from django.views.generic import TemplateView +from django.views.generic import RedirectView, TemplateView from .classes import Filter +from .exceptions import NotLatestVersion from .forms import ( FilterForm, LicenseForm, LocaleProfileForm, LocaleProfileForm_view, PackagesLicensesForm, UserForm, UserForm_view ) -from .generics import * # NOQA +from .generics import ( # NOQA + AssignRemoveView, ConfirmView, FormView, MultiFormView, + MultipleObjectConfirmActionView, MultipleObjectFormActionView, + SingleObjectCreateView, SingleObjectDeleteView, + SingleObjectDetailView, SingleObjectEditView, SingleObjectListView, + SimpleView +) from .menus import menu_tools, menu_setup +from .utils import check_version class AboutView(TemplateView): template_name = 'appearance/about.html' +class CheckVersionView(SimpleView): + template_name = 'appearance/generic_template.html' + + def get_extra_context(self): + try: + check_version() + except NotLatestVersion as exception: + message = _( + 'The version you are using is outdated. The latest version ' + 'is %s' + ) % exception.upstream_version + else: + message = _('Your version is up-to-date.') + + return { + 'title': _('Check for updates'), + 'content': message + } + + class CurrentUserDetailsView(SingleObjectDetailView): form_class = UserForm_view @@ -100,6 +128,18 @@ class CurrentUserLocaleProfileEditView(SingleObjectEditView): return self.request.user.locale_profile +class FaviconRedirectView(RedirectView): + permanent = True + + def get_redirect_url(self, *args, **kwargs): + """ + Hide the static tag import to avoid errors with static file + processors + """ + from django.contrib.staticfiles.templatetags.staticfiles import static + return static('appearance/images/favicon.ico') + + class FilterSelectView(SimpleView): form_class = FilterForm template_name = 'appearance/generic_form.html' diff --git a/mayan/apps/converter/apps.py b/mayan/apps/converter/apps.py index 40b54d6bc0..a04056c761 100644 --- a/mayan/apps/converter/apps.py +++ b/mayan/apps/converter/apps.py @@ -14,8 +14,8 @@ from .licenses import * # NOQA class ConverterApp(MayanAppConfig): + has_tests = True name = 'converter' - test = True verbose_name = _('Converter') def ready(self): diff --git a/mayan/apps/converter/classes.py b/mayan/apps/converter/classes.py index f19d3b7b6b..9ab180e6fe 100644 --- a/mayan/apps/converter/classes.py +++ b/mayan/apps/converter/classes.py @@ -216,6 +216,10 @@ class ConverterBase(object): class BaseTransformation(object): + """ + Transformation can modify the appearance of the document's page preview. + Some transformation available are: Rotate, zoom, resize and crop. + """ arguments = () name = 'base_transformation' _registry = {} diff --git a/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo index 59215be475107a7892706a16dd001d5cd8a61096..7001557bec166ce900cb3590218a0cd49a7f452e 100644 GIT binary patch delta 64 zcmX@ic9?C0Gb69Lu7Rnpk%fYxsg;T4k+Fh-k(H_OGra)-6O, 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "تغيير حجم" - -#: classes.py:295 -msgid "Rotate" -msgstr "تدوير" - -#: classes.py:313 -msgid "Zoom" -msgstr "التكبير" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "تغيير حجم" + +#: classes.py:363 +msgid "Rotate" +msgstr "تدوير" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "التكبير" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "تحرير" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "اسم" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo index 365ae29165eeb8e37e79c39e6db82ac9b5af9d9a..0d5e7cb300057911a81997a5d556c321979e8f4a 100644 GIT binary patch delta 64 zcmdnXx|el>5F@X-u7Rnpk%fYxsg;T4WO+tukcf${k)eX2nU#_0WOv3I9-qX#^wPxi SR4av~^vQ=9qbF-IO$Gq+N)YM* delta 64 zcmdnXx|el>5F@XduA!l>k+Fh-k(H_OWO+tupooF7u92aFk)f4=*<^Rdn#mU!qj-E0 T^U_Nb(^IV!lF}z@GED&h^S=<@ diff --git a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po index 0f8cf70816..489067b6b0 100644 --- a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pavlin Koldamov , 2012 @@ -9,29 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +42,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +50,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Преоразмеряване" - -#: classes.py:295 -msgid "Rotate" -msgstr "Завъртете" - -#: classes.py:313 -msgid "Zoom" -msgstr "Увеличаване" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Преоразмеряване" + +#: classes.py:363 +msgid "Rotate" +msgstr "Завъртете" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Увеличаване" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Редактиране" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Име" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +139,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +158,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +187,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +212,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +531,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +651,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo index acd84bd0d011bf31da341bf3239f47b17b08eb17..5198675fd57ceee06b7551d5b1d51d8cfefb6a15 100644 GIT binary patch delta 67 zcmdnPwufzlGb69Lu7Rnpk%fYxsg;T47|M3 Vsa6U}#qmy#lX;no&G delta 67 zcmdnPwufzlGb68=uA!l>k+Fh-k(H_O, 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Promjeni veličinu" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotiraj" - -#: classes.py:313 -msgid "Zoom" -msgstr "Uvećaj" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Promjeni veličinu" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotiraj" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Uvećaj" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Urediti" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Ime" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo index e4df92419c7d6e6708704977026a541809728dc4..f23b4ea6c87cb741b38e3d5b63593901b511be73 100644 GIT binary patch delta 61 zcmaFC{DOJHB3^S{15;fi3k5?{D-+9!>!m>gCb~w33WjD@My3<5SMvBI=B1Y=rl(pd Pq$E!EXN;b_ozV~gEi@8! delta 61 zcmaFC{DOJHB3?6HLqlC7V+8{vD^uf%>!pDL2FAKZh6+Z8Rt9DhuUAfvWsKtSNz6+x QO-xUF|9Ki9Xshh55ZGX(ajcKCA#=0r~!9q&y51W)GBpzba=eV{zD>Ett(b6Fh zqSFuw9m43~#fUuSp%Nk_At+V8xda{h{$@8J`Y|(~_ukIDKfm|(PTBYJ^kyjU zz9Jg9tGHu1O10w6Tpq-w9ZD7A<*XxEPF-Uyrm+GSF%MU<0AJx5e2WLLm>=c$Iv(BF zi2L|l#VJUKw{Qp-uo1VAOO@p-Rf1Jmhet7r{U`(7MtN@@Wg_>GOD*wm@F~_~EiW6` zhw`1}n^wxE5Tao=>pbqE{t$QJGM3^hmf^c>{R>u8|A{hzP(Z2YWUmY*W9vIJenfe1 z6Ak>0hp?KLf{d?DQlL$p$9^0@$;cuW;S21;H&}@!G#q^~x{-ArcT<0W z(*F`lhF_vA>;uXKz816pWX#_;10_udxj8fbi?AL0DM=?}*AE#`I+2iUNXVcvpoAPc zS(Idq@%#+Sw*C!SNP`;8tW*w`gd8-9`V30`1hQ8WHQal-$)=xPIb;%&8Ft41_Z*Ri zmF3*^oKRmPKCRB0v#uLAZDTYs>v(f{R|_u29Vg{@8+lu81F0EvMjOrT5o26ij@GWq zHbvY1YwFl;@xs9x?{j`d>5%PCn$EP5G~MfQ+w#8UPnWcXBdy_RyV2a*+0xQ4}-XneY|IwB3X`lX5zZ3)(fOOrv*BI|+I+x~6ot*li`vc;fh2 zD(P($n58k(wq{LBcQWH^J-uEyFtV}`=*X??arC6NWxZ>U+_6b*FuAeGwI|Mm_TCp- zfx+pxwsgX4E&A0ol$15UerAkkKBCTo|EYKQRj)C4D&%)$Iun^?YDe3i4jO*|y708G delta 880 zcmX}qzfTik7{KwjKz~?@Ac7SOa)^mlQ_^0wjZIC6RHo7iL&Bohcr8uZJJVK8SZZQS z7~C#S=;(;ipc9LO4lC6xLDhKgL;H!x5!A z>JtMAxQDm!55}>?)6@76bzDaYutO&s?xG)mViOPXJXTrM@F_|n8=i0RIP)zW#BGeS zzxu{tf`xq~h8p5uuc*Q(%E>NU46zB0n`pSHdF7!PYU1?{FU9 zV+?}?Kga%Rnt_~r9$xfeR=n zpTQx#juNMY9m%l5KsI=U9Nc|hCsEc;b4j@+AbBX>&QTj>#9oR*r~z+PHX8QEgmV*; zX~bI-D72dZRnXlM%Hj#>ye3&vCAWNMQBJ{k*8M;?7kamS&L#hnv*!QdYy`5-VZa{9 zBvPq_p4O6j?rPe(7mO7$iDWvVr!+m4OJ*)7Y2l*LY9|((hSjPYZM&J%7L4{v&1h*i z%#~){)bfq)ygb{u)|x5TR-N6T;S@s4gGIxt-Z!ddPP=Q~F5KLF5z6&A2jPlS?*B~= g6VA&>Y|@Qfv71Dx*_LT(hP7(es-~ruZM&iV0~hshdjJ3c diff --git a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po index 28ef027b85..c33287bf95 100644 --- a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po @@ -1,38 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Tobias Paepke , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 23:01+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Konverter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Reihenfolge" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformation" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumente" @@ -42,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Ausnahme bei der Ermittlung der PDF-Seitenanzahl: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Kein Office-Dateiformat" @@ -51,53 +52,85 @@ msgstr "Kein Office-Dateiformat" msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice nicht installiert oder in Pfad %s nicht gefunden" -#: classes.py:254 -msgid "Resize" -msgstr "Größe ändern" - -#: classes.py:295 -msgid "Rotate" -msgstr "Drehen" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Zuschneiden" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "Drehen" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "Gaußsche Unschärfe" + +#: classes.py:325 +msgid "Mirror" +msgstr "Spiegeln" + +#: classes.py:336 +msgid "Resize" +msgstr "Größe ändern" + +#: classes.py:363 +msgid "Rotate" +msgstr "Drehen" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "Um 90° drehen" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "Um 180° drehen" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "Um 270° drehen" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "Unscharf maskieren" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Neue Transformation erstellen" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Löschen" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Bearbeiten" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformationen" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Reihenfolge in der die Transformationen ausgeführt werden. Ohne Eintrag wird automatisch eine Reihenfolge zugewiesen." +msgstr "" +"Reihenfolge in der die Transformationen ausgeführt werden. Ohne Eintrag wird " +"automatisch eine Reihenfolge zugewiesen." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Name" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Argumemte für die Transformation als YAML dictionary eingeben, z.B: {\"degrees\": 180}" +msgstr "" +"Argumemte für die Transformation als YAML dictionary eingeben, z.B: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +145,6 @@ msgid "Edit transformations" msgstr "Transformationen bearbeiten" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Transformationen anzeigen" @@ -132,22 +164,25 @@ msgstr "Pfad zum Popple Programm pdftoppm" msgid "Enter a valid YAML value." msgstr "Einen gültigen YAML Wert eingeben" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Transformation \"%(transformation)s\" für %(content_object)s wirklich löschen?" +msgstr "" +"Transformation \"%(transformation)s\" für %(content_object)s wirklich " +"löschen?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Transformation erstellen für %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Transformation \"%(transformation)s\" für %(content_object)s bearbeiten" +msgstr "" +"Transformation \"%(transformation)s\" für %(content_object)s bearbeiten" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformationen von %s" @@ -161,9 +196,6 @@ msgstr "Transformationen von %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +221,13 @@ msgstr "Transformationen von %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +540,11 @@ msgstr "Transformationen von %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +660,8 @@ msgstr "Transformationen von %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo index cbfcb93b5e6bb62055d44c7635410339f55cbeae..428677b3f4b0a1a4f67537054856856f865a802a 100644 GIT binary patch delta 26 hcmZoLajaS(%p zP(i1oA~=Z(E)^k@(#1_g5pfX&Cl>_^Ld8w}zRMAiK63ZD-@E(e_ws(1AJNb4G z&dYd~MeXP*v)towSdTW7N>h{xP$SNMv*3bj-9xU zJ@^TA-fwJVeQBk?e24U48V67pTJ-a`Fva+epZ|cgPQKwq{DTuX%c|O`d#LvxV;o=L zVf>D|P6t(~y;vUNBF2TbYzj+w0SE9s9>ia$9qJBOpNr!z#z%eAs2!T|UGVeQP`CEB zpMQk=8CQ@d$;UAJPshA{Gf>;IkAru{n+UaNj~ZVwiUe44h+gv^)1#HOGDeIp)ZVv{t2{V4c)sv9CXoZuXapBe>pqg{d=@)Qdz5i zQx}=cWs8zFOOBH@^Tu4RWV_3Onc(THZ5M3!U0`GEd|}C4vW$`OxG`^KY|C=QPmPXk zNhNC;_hrL)%XHpZFzuqTXgXK2`HcIsq1Ze&98V07jvFJ1i6cojAM6a*GRcWVWi|M> zzAt6kM$R;rOIB{ll$7OI`AdbXCCkY8l@?q#G#5PS6s^mJ%4R59H>qZ=|6PC9Vz(uWCbPqmby3KPo1|PEL{X&VxCa-B(~yIsGts)> z?63|TlmoSnP83lNitlesUd{Ww_h#n(e(yK)*zi)DEmV8<6s?6T$`#U->Oj4Sj&_2j zclv0azr+f>#yaAw2L??nyd!(4O5WO`3SkT| zKlCdV#A9s43v9-Fl=nWd1Z(IdU=+tNfpxg(u5aK7^DTG%7DL2W&kSbp8#6dfy-nQ3 zZoER-_!B$v8_89*lieB`*oKGLj(M!cHrse#2vR);f+aybh z;bbYLmecc}{r#Z1@#1UE?(|OCo8A}u$k%Uw_?FB1j8w|7dSa%PN%z<*{zkpeFw=%P d5HnMm-rT, 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-05-09 01:47+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:57+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -20,19 +20,19 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertidor" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Orden" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformación" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumentos" @@ -51,49 +51,80 @@ msgstr "No es un formato de archivo de la oficina." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice no instalado o no encontrado en: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Cambiar el tamaño" - -#: classes.py:295 -msgid "Rotate" -msgstr "Girar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Ampliar" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Recortar" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "Dar la vuelta" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "Desenfoque gaussiano" + +#: classes.py:325 +msgid "Mirror" +msgstr "Espejo" + +#: classes.py:336 +msgid "Resize" +msgstr "Cambiar el tamaño" + +#: classes.py:363 +msgid "Rotate" +msgstr "Girar" + +#: classes.py:382 +#| msgid "Rotate by n degress." +msgid "Rotate 90 degrees" +msgstr "Girar 90 grados" + +#: classes.py:393 +#| msgid "Rotate by n degress." +msgid "Rotate 180 degrees" +msgstr "Girar 180 grados" + +#: classes.py:404 +#| msgid "Rotate by n degress." +msgid "Rotate 270 degrees" +msgstr "Girar 270 grados" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "Unsharp masking" + +#: classes.py:430 +msgid "Zoom" +msgstr "Ampliar" + +#: links.py:35 msgid "Create new transformation" msgstr "Crear nueva transformación" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Borrar" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformaciones" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "Orden de ejecución de las transformaciones. Si lo deja en blanco, un valor de orden sera asignado automáticamente. " -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nombre" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -132,22 +163,22 @@ msgstr "Ruta al programa pdftoppm de Poppler." msgid "Enter a valid YAML value." msgstr "Entre un valor YAML." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "¿Borrar transformación \"%(transformation)s\" para: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Crear transformación para :%s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Editar transformación \"%(transformation)s\" para: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformaciones para: %s" @@ -161,9 +192,6 @@ msgstr "Transformaciones para: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" diff --git a/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo index 89afae4d8fd6c5b359b7c87ac40b6ec1b23d2c1c..668293dfc8bc98b390c640159f85828cdaf841e4 100644 GIT binary patch delta 65 zcmaFF`G|8v0~4>gu7Rnpk%fYxsg;T47|M3 Tsa6VUiIer1qc=}u_F)77OfC{S delta 65 zcmaFF`G|8v0~4>AuA!l>k+Fh-k(H_O8XHrsg7}JW@ePFg1QO96>3o=kt9x{Mc0mT(McBv z1ra*AI|@#2f?vSJZ{T0_a=5?qTrT%;F9*K+pL$aDMoOeNBVvfituB(o2b{oXoWl>C zM5FERo`vn?5+2|xj^HCw^2)Y`?>LNOJU)&qc!WFX;F}?J$A{Cs+7CgmKJjYhN z!85$WS)6A26jrbkBm5nF@t+&mMZU&CyvG@QK@Go1x0_e`iS`3%VKxQ; delta 399 zcmXZXyGz4R6bA59jj64z1@Vbh;tPc~ArH(DL_{1EiVs>Gx=1W(Qmsk7Nrr-0{2L<9 z4!Rbht4_K&D7d>jicW6&iC*qKzx%=E9?r+e`RL7HtksSY4e>+?B6^4urQtK2hOaOW zzu^qb_x`=xhJDCocmS(#0=__OdPmuSUoZ<-@%a?ogAI5FRrr~p7Ugi6OA>9u9oP*o z;Uv6*J@6i$!bi9O*U^0z9>ack0e>4`|K~Q$Am70;_yp(S8{}XnMTEI&m^uSpTU=Tf z6-87vK~{}LEpqwsU0swlQB?$0F=Ra_V, 2012 @@ -10,29 +10,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertisseur" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordre" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformation" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Arguments" @@ -42,62 +43,94 @@ msgid "Exception determining PDF page count; %s" msgstr "Exception déterminant le nombre de pages PDF : %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Format de fichier non reconnu." #: classes.py:120 #, python-format msgid "LibreOffice not installed or not found at path: %s" -msgstr "LibreOffice n'est pas installé ou n'a pas été trouvé à l'emplacement : %s" +msgstr "" +"LibreOffice n'est pas installé ou n'a pas été trouvé à l'emplacement : %s" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionner" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotation" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Découper" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionner" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotation" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Créer une nouvelle transformation" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Suppression" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Modifier" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformations" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordre dans lequel les transformations seront exécutées. En l'absence de modification, un ordre est automatiquement assigné." +msgstr "" +"Ordre dans lequel les transformations seront exécutées. En l'absence de " +"modification, un ordre est automatiquement assigné." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nom" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Saisir les arguments pour la transformation sous la forme d'un dictionnaire YAML. Par exemple : {\"degrees\": 180}" +msgstr "" +"Saisir les arguments pour la transformation sous la forme d'un dictionnaire " +"YAML. Par exemple : {\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +145,6 @@ msgid "Edit transformations" msgstr "Modifier des transformations" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Afficher les transformations existantes" @@ -132,22 +164,25 @@ msgstr "Chemin pour le programme Popple pdftoppm" msgid "Enter a valid YAML value." msgstr "Saisissez une valeur YAML valide." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Êtes vous certain de vouloir supprimer la transformation \"%(transformation)s\" pour : %(content_object)s ?" +msgstr "" +"Êtes vous certain de vouloir supprimer la transformation \"%(transformation)s" +"\" pour : %(content_object)s ?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Créer une nouvelle transformation pour : %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Modifier la transformation \"%(transformation)s\" pour : %(content_object)s" +msgstr "" +"Modifier la transformation \"%(transformation)s\" pour : %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformations pour : %s" @@ -161,9 +196,6 @@ msgstr "Transformations pour : %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +221,13 @@ msgstr "Transformations pour : %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +540,11 @@ msgstr "Transformations pour : %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +660,8 @@ msgstr "Transformations pour : %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo index 3d323404212f716cb77726a709e98dbdbea38baf..17b689ffad6cd15259879d63b4d86705853994ea 100644 GIT binary patch delta 84 zcmX@fe3E%WtEsuJfvK*Mg@U1}m5HUUfr)_uSAf56P-Hq-dj~Gn= delta 84 zcmX@fe3E%WtEri;p`oskv4Vk-m8r3=fr)_uSAf56P-m67GdT{V-P8KZc767$ka6VrhzGD;`UVblcx;J_GA diff --git a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po index 6fd4505ed4..6f647b718b 100644 --- a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2015-08-20 19:29+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo index 06d2ace2df031a594ecd54cb9f95913254c42beb..d4299869aee584f0f414d7f9f16f6eb87c028a99 100644 GIT binary patch delta 84 zcmX@ie3*GctEsuJfvK*Mg@U1}m5HUUfr)_uSAf56P-m67GdUA2>47^8T667$ka6VrhzGE*kcWmE$I+_M-k diff --git a/mayan/apps/converter/locale/id/LC_MESSAGES/django.po b/mayan/apps/converter/locale/id/LC_MESSAGES/django.po index 1e774225c9..ba8e678612 100644 --- a/mayan/apps/converter/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/id/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2015-08-20 19:29+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo index 0880c9dbf9dab8d7bad7dd9a4c4aa944c29a1854..e082ca177a680e9594289ece443784f3f8414f1b 100644 GIT binary patch delta 364 zcmXZXF-yZh7{>9pS{oZ{2dTkY#4L)SktA)@26sUUf>a!wPAH`y2_|vwC(tE=n~OLK zLN^z`L>EDD(l6j-UHk`g9QV8TxjXLe$9OlMYlY!;L1eKcQWlX1O{9WPSjQJ!!!fSl z1lcM}vm$g^WjMqQT*f%hZ}5QnF3&&Eq@LgjHn^;bmt`5sHj_t!HjZ%ytNQ2~V-Zi0f3r4Pm^v!X?^?EJxqGJL`K@*u zlp0NvmgPF8v*WworcKj3Do(6!q=NWDC1K>7$KiP|N&lg zi%>Tm#L+L{(huO;QE>1d%n|N)|L0ya(SEe&)yn9xLbRq3)rsg`C0c-=a07n9Z8(K3 z*qkH6QtCi_)I)a)kKrbKDCbfyINX^F(+fEyE?aUb+i4WCs@O`>+Nxi2ugicxC3iw&>`b>z2(- z%k9{Cq-y>&YS;UYQN) g9R^YiL&J;ZLH?!;@|JpoQ=;Hb1is70nfhJ*1B#J83;+NC diff --git a/mayan/apps/converter/locale/it/LC_MESSAGES/django.po b/mayan/apps/converter/locale/it/LC_MESSAGES/django.po index 4f6301d247..a6e7272bf9 100644 --- a/mayan/apps/converter/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Marco Camplese , 2016 @@ -10,29 +10,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertitore" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordine" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Trasformazione" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argomenti" @@ -42,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Eccezione che determina il conteggio pagine PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Non è un formato di file office" @@ -51,53 +51,85 @@ msgstr "Non è un formato di file office" msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice non installato o non trovato nel percorso: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Ridimensiona" - -#: classes.py:295 -msgid "Rotate" -msgstr "Ruotare" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Taglia" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Ridimensiona" + +#: classes.py:363 +msgid "Rotate" +msgstr "Ruotare" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Crea nuova trasformazione" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Cancella" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Modifica" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Trasformazioni" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordine delle trasformazioni da eseguire. Se resta invariato verrà assegnato l'ordine automatico." +msgstr "" +"Ordine delle trasformazioni da eseguire. Se resta invariato verrà assegnato " +"l'ordine automatico." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome " -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Scrivi gli argomenti per la trasformazione come dizionario YAML. es: {\"degrees\": 180}" +msgstr "" +"Scrivi gli argomenti per la trasformazione come dizionario YAML. es: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +144,6 @@ msgid "Edit transformations" msgstr "Modifica le trasformazioni" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Visualizza le trasformazioni esistenti" @@ -132,22 +163,24 @@ msgstr "Percorso per il programma Popple" msgid "Enter a valid YAML value." msgstr "Inserisci un valore YAML valido." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Cancellare le trasformazioni \"%(transformation)s\" per: %(content_object)s?" +msgstr "" +"Cancellare le trasformazioni \"%(transformation)s\" per: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Crea una nuove trasformazioni per: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Modifica le trasformazioni \"%(transformation)s\" per: %(content_object)s" +msgstr "" +"Modifica le trasformazioni \"%(transformation)s\" per: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Trasformazione per: %s" @@ -161,9 +194,6 @@ msgstr "Trasformazione per: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +219,13 @@ msgstr "Trasformazione per: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +538,11 @@ msgstr "Trasformazione per: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +658,8 @@ msgstr "Trasformazione per: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo index 1f65b33f348ff8eadd6477588153de65e7bb196f..e27e5c0b1ea17c665e3dc912c932a307e744fb97 100644 GIT binary patch literal 2994 zcmbuAJ!~9B6vrnJzK#GPB!rIu6GIdmvUg`I3FfQ_?AQqwwquz~5H!*3?z{EayR*y8 zoX;_$q5+ALR20+*AwU8NDGd^$AO#Ht5=Cez5e1?^qT&Dc){f6|gb*v={&r_)-n_5* z`^JI2R|T%8@H>Lv!97BZfctL44cF)3J>VA=uYr%^{X6g|_zU_iNw-;C1jY_%rwf_y-6RVm}srgd7|KYk2?au73RAfE@32 z@LBLT@JaCS-Tir|LC(`8_%iqk$bNnR;!k{r+Z6aUcnJI(l;DF{6oO;mBzP69gFk^2 z;GJ-S{h9)~KIcKU7lUhH1|A201p{#3y|4+kK)5L8!27^9$nl3D$NeVAHGdCedmn=c zyR6kiAn*AIejEem3+@P%X6xb@uw}Ui+vkhzA1I%MfVncS{JO6iV<64t{*QyaKVR(c z=CvOW><{+@=a*}U7VGyWC?;*v&B%Bs&gN!~tS2kZT2h{*p`P?s8P~~ero7J0t-naj zX~|=-a;vrcDKEq{rR1r?4)b#8*zn+nBW|d&JRIf5!_UikxI&R1aWC#}!-<(#`||dG ztnX$3rs0B>O0KC?$MW^b`8j^2tDB3CSq$8b85VKW|mBtRsgZE~4Wl zp^8??#M0-o>)_&?4lP~ibaaH$=3Z*!yh>AwCH&-p4$Q?;c^LQ0Wic02Mq&YiV2pErL%l-OujUYUP|x3|5Opc*ucqdKdGefKP?Z6RR>=#2t^3Y;aP_!B-(vGwWiB zoZcX@lzX(hXb-mf;H%s5*;Q@n#3hYmLhIUjuFYVrop>Y9GqGrM?%7~A4lebJ(~|S* z3gVrao`1ErL`80WFz*r_2UFd|1?{{gYl|1!L3x@`%wQTGw&YlI^!cE9Di|A=qo-OY zUkI8fn@vm%mS|0L(Ff+848}&~=;_wjspp!wYIDl@pbRTjo{#HN9^$~~pi@@om|&7F z8Y^g%%35-|>ru|(1wxi>s!Z%gDBqAM>Dnr9i-*)_tQ$l{OO+ePSK?GZ)+E zg7KU4%BqnKW=xdFC_zh(huYT`)2>x%a1Nd7uv<~Sx-(-Fvj2Ey*vO-2yYvVr804zGgiq}NQe}NuM}NY-Aj3zusm)(NKPkA z>`WPSm**MT)tweMMI(JvD`rHo63t&$`r3vn?PkLq4FO|-x%v^EDd%n zQ`uMFpwiS#ZPVYmJc5*yJibkQk0VW4hHz4CHvb){Fh$NLI~kP{+V=`Q30)=&4)pKf h+n_9Sb8nuwDO%MltEe=RhwXMWlM}OM1JVrZ{{TbtVtD`n delta 644 zcmXxh&r2IY6u|M(XcE`PpU_aXbrqopNt?tr&`^p9(o0AM#e)|ebWNk1UD%`^ddW%f z($gS%)q5zELN6Zl>_HKPq9~O969p^yeR1>1+fUvLGxH|~uE&cFK6s;kjlf{m#zh@^8|UX~HV#YAv-8Xs_z(njhrt*)7K{Z+P~+)^4rrZQAdh z$4)hDOqVLU?7mv{D<8~Jbk)3$E%g?(SNft$PTuz1momMCgn PQH#D?@|n*3way*@{hD3y diff --git a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po index 6813ca5a78..42c3bc5e6f 100644 --- a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po @@ -1,108 +1,141 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 # woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-09 16:40+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Converter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Volgorde" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformatie" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumenten" #: backends/python.py:86 backends/python.py:100 #, python-format msgid "Exception determining PDF page count; %s" -msgstr "" +msgstr "Exceptie bij het bepalen van aan aantal bladzijden van de PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." -msgstr "" +msgstr "Geen office bestandsformaat." #: classes.py:120 #, python-format msgid "LibreOffice not installed or not found at path: %s" -msgstr "" +msgstr "LibreOffice niet geënstalleerd of niet gevonden in pad: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Afmeting wijzigen" - -#: classes.py:295 -msgid "Rotate" -msgstr "Roteren" - -#: classes.py:313 -msgid "Zoom" -msgstr "Inzoomen" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Bijsnijden" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" msgstr "" +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Afmeting wijzigen" + +#: classes.py:363 +msgid "Rotate" +msgstr "Roteren" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Inzoomen" + #: links.py:35 +msgid "Create new transformation" +msgstr "Maak een nieuwe transformatie aan" + +#: links.py:39 msgid "Delete" msgstr "Verwijder" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "bewerken" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformaties" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" +"Volgorde waarin de transformaties worden uitgevoerd. Indien ongewijzigd zal " +"automatisch een volgorde toegekend worden." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Naam" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" msgstr "" +"Voer de argumenten voor de transformatie in als een YAML statement, " +"bijvoorbeeld: {\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" -msgstr "" +msgstr "Maak nieuwe transformaties aan" #: permissions.py:13 msgid "Delete transformations" @@ -110,16 +143,15 @@ msgstr "Transformaties verwijderen" #: permissions.py:16 msgid "Edit transformations" -msgstr "" +msgstr "Wijzig transformaties" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Bekijk bestaande transformaties" #: settings.py:10 msgid "Graphics conversion backend to use." -msgstr "" +msgstr "Te gebruiken backend voor grafische conversie." #: settings.py:16 msgid "Path to the libreoffice program." @@ -133,22 +165,23 @@ msgstr "Pad naar het Popple-programma pdftoppm." msgid "Enter a valid YAML value." msgstr "Voer een geldige YAML-waarde in." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" +"Transformatie verwijderen \"%(transformation)s\" voor: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" -msgstr "" +msgstr "Maak een nieuwe transformatie aan voor: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "" +msgstr "Wijzig transformatie \"%(transformation)s\" voor: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformaties voor: %s" @@ -162,9 +195,6 @@ msgstr "Transformaties voor: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +220,13 @@ msgstr "Transformaties voor: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +539,11 @@ msgstr "Transformaties voor: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +659,8 @@ msgstr "Transformaties voor: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo index addab585d1fa7a91014a9a06c034a6654d11b5c7..787a365aaa633c4f8ba3a339400e0e7144a9eb24 100644 GIT binary patch delta 553 zcmYMtO-lkn7zgmtO4E|S)LxJzvH zui!GghcoaIPQe#=3}4|q{DFufL4+N_B^ZJwxCyJU2s>~Ge)~w1#BhoD3CTkao!}Of z;T?27?7<3rgADGXxd8>7gDr>=>A(Pd82JRlsCzI9KSupNbfJ!rZqR)?8Q7O(RZb8vIF9^FP6)j=dx~Q3!M$gU5vQ;yoEv##^{pGosEeNAh z7nQO`t9o1VmYQdJ-4eQ#H?136qegX5+B|iL2hN1Y4bB+R4J_Y+X;^|4n1GKyG9WP&p9pf$>7Opn zLx#Qx?GFxN9o|C@f8ZwE!7vE(5D}@s0IbclU>N-nM&ZLOe}VXKvP{N{b7%8`w8Xh2 zrzn$^gVacOuV17kmXc&nWv;OF9>eh$gw>HsrqC@-bPQ9WW#g(-YtphXt2d%)^sHus zW_roqzy7%15)Ca`HCoxxv-@%s@l=e0(Cb}MuPL;x`HNcD6q=MX%$B84y*+6yHFb!g xJyGMjs&aZn8O1otSyq*4EH)`K>b_mZ?U-daqy7FQx9_lByy18wkGc2V`3KXnS``2Q diff --git a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po index 0395e60203..3f4e255046 100644 --- a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # mic , 2012,2015 @@ -10,29 +10,32 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Konwerter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Kolejność" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformacja" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumenty" @@ -42,7 +45,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Wyjątek określający liczbę stron PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Format niezgodny z formatem plików LibreOffice." @@ -51,53 +53,85 @@ msgstr "Format niezgodny z formatem plików LibreOffice." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice nie został zainstalowany lub nie znaleziono ścieżki: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Zmiana rozmiaru" - -#: classes.py:295 -msgid "Rotate" -msgstr "Obrócenie" - -#: classes.py:313 -msgid "Zoom" -msgstr "Powiększenie" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Przycięcie" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Zmiana rozmiaru" + +#: classes.py:363 +msgid "Rotate" +msgstr "Obrócenie" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Powiększenie" + +#: links.py:35 msgid "Create new transformation" msgstr "Utwórz nową transformację" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Usuń" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Edytuj" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformacje" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Kolejność wykonywania transformacji. Jeśli nie zostanie zmieniona, przyjmie wartość automatyczną." +msgstr "" +"Kolejność wykonywania transformacji. Jeśli nie zostanie zmieniona, przyjmie " +"wartość automatyczną." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nazwa" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Wprowadź argumenty dla transformacji w postaci słownika YAML np.: {\"degrees\": 180}" +msgstr "" +"Wprowadź argumenty dla transformacji w postaci słownika YAML np.: {\"degrees" +"\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +146,6 @@ msgid "Edit transformations" msgstr "Edytuj transformacje" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Przeglądaj istniejące transformacje" @@ -132,22 +165,22 @@ msgstr "Ścieżka do programu pdftoppm z pakietu Poppler." msgid "Enter a valid YAML value." msgstr "Wprowadź poprawną wartość YAML." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Usunąć transformację \"%(transformation)s\" dla: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Utwórz nową transformację dla: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Edycja transformacji \"%(transformation)s\" dla: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformacje dla: %s" @@ -161,9 +194,6 @@ msgstr "Transformacje dla: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +219,13 @@ msgstr "Transformacje dla: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +538,11 @@ msgstr "Transformacje dla: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +658,8 @@ msgstr "Transformacje dla: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo index 78311170ab59b676c772feb95bfe631144f42a4d..1e2f5bd8ca3ff6d60d9e9ce8b3423724da8dd833 100644 GIT binary patch delta 86 zcmey!`jK@*6r-uRu7Rnpk%fYxsg;SPu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl nor$iIp@N~Am67S>e#TlJpTxZM(!_M2bV12vZl>tT#Y}Yo4qg~{ delta 85 zcmey!`jK@*6r-t`uA!l>k+Fh-k(H^ju7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%6I^ nu7R7|M3KqUo}3z-@K>&F-N diff --git a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po index 6d9478b3c6..cb430bd8c2 100644 --- a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,29 +11,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -43,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -52,49 +52,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionar" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rodar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionar" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rodar" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Eliminar" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -113,7 +141,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -133,22 +160,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -162,9 +189,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +214,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +533,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +653,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo index f53f134c0e3f14adc0e363706d2cb0648545baa2..9773aad27f09f3741ff28d5d2936d1f8ef151e23 100644 GIT binary patch delta 367 zcmXBPF-yZh7{>9p5|g$PDxy}6LqP3PqD^dK4NfAu6ot}79ORTzgpx>_j?&dp2)OCu z<{&~H1!up2qk}m38JzqV5AJ?<569j6K9+CF&$GGVeNJRf7b%L!iy>0LH(bJZT)}T# z#(bWMYb->vj{6wk0$w3c$t~{T9hUJ6ZT!V!wD_cfgMtiYgUu7c4t}CGzCbk&+Bk`a z*u^$h@fBC`2Te4m{u{8c#JPgg7~movUSl`Yf z-P$CnJDzL1LFoC_8l%`${nTkED(d%C8YiLMiqASp8e?B27jgEXpO=~{>JC)56WW*Q P>251)7$>6#!_fW!5hgUm delta 393 zcmXBPy-Pw-7{~EPG2cRru@H0`xQD$9yibjLG}T00|T hedccVUW2t>CUg?7Xs2, 2016 @@ -11,29 +11,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 22:48+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Conversor" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordem" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformação" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumentos" @@ -43,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Exceção ao determinar o número de páginas do PDF; %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Não é um formato de arquivo de escritório." @@ -52,53 +52,85 @@ msgstr "Não é um formato de arquivo de escritório." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice não instalado ou não encontrado no caminho: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionar" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotacionar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Ampliar" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Recortar" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionar" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotacionar" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Ampliar" + +#: links.py:35 msgid "Create new transformation" msgstr "Criar nova transformação" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Excluir" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformações" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordem de execução das transformações. Se deixar em branco, um valor automático vai ser atribuído." +msgstr "" +"Ordem de execução das transformações. Se deixar em branco, um valor " +"automático vai ser atribuído." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Entre com os argumentos da transformação como um dicionário YAML. ie: {\"degrees\": 180}" +msgstr "" +"Entre com os argumentos da transformação como um dicionário YAML. ie: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -113,7 +145,6 @@ msgid "Edit transformations" msgstr "Editar transformações" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Visualizar transformações existentes" @@ -133,22 +164,22 @@ msgstr "Caminho para o programa pdftoppm de Popple." msgid "Enter a valid YAML value." msgstr "Entre com um valor YAML válido." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Excluir transformaçãa \"%(transformation)s\" para: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Criar nova transformação para: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Editar transformação \"%(transformation)s\" para: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformações para: %s" @@ -162,9 +193,6 @@ msgstr "Transformações para: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +218,13 @@ msgstr "Transformações para: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +537,11 @@ msgstr "Transformações para: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +657,8 @@ msgstr "Transformações para: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo index 213bccd870cf167a8b9eebd85064c729e300a287..5f46cbcf0a01b9617604ddb17dd94fb468bf84d9 100644 GIT binary patch delta 89 zcmZ3@wwi526r-uRu7Rnpk%fYxsg;SPu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vl qor$iIp@N~Am67S>e#Q=dpTxZM(!_M2bWwhMkpE;crs&CyOsfDax*0tH delta 89 zcmZ3@wwi526r-t`uA!l>k+Fh-k(H^ju7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%6HZ qP)^s-T*1K7%EWkbKV!#ab*3nOpTxZM(!_M2lA`?hApgk?OsfGTZW%!U diff --git a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po index 165cc3859d..4dedf7b9f6 100644 --- a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionarea" - -#: classes.py:295 -msgid "Rotate" -msgstr "Roti" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionarea" + +#: classes.py:363 +msgid "Rotate" +msgstr "Roti" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Șterge" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editează" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nume" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo index 00b91fb8083318ee47a4c5f7af5486eed372c4a6..9c4ba437055347e853bdc9c53e37ab32e3c09e6c 100644 GIT binary patch delta 364 zcmXZXze>YU6vy$?Dv9=wV9^TILYzd(l_n-tGbw@&7DX*Cx};ExAPFSt(xu?w;3AmW z!8Z^q2tI*>eTTk;yWh~>;e5{Ta^c+bQyo>`mokHutjMw^QW6n0H*p^u`rASf}@K8*l&n z9gFlY&SGIk=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Конвертер" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Порядок" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Преобразование" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Аргументы" @@ -41,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Ошибка при определении числа страниц PDF; %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Не является файлом офисного формата." @@ -50,53 +52,85 @@ msgstr "Не является файлом офисного формата." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice не установлен, или не найден по пути: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Изменение размера" - -#: classes.py:295 -msgid "Rotate" -msgstr "Вращать" - -#: classes.py:313 -msgid "Zoom" -msgstr "Увеличить" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Кадрировать" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Изменение размера" + +#: classes.py:363 +msgid "Rotate" +msgstr "Вращать" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Увеличить" + +#: links.py:35 msgid "Create new transformation" msgstr "Создать новое преобразование" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Удалить" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Редактировать" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Преобразования" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Порядок выполнения преобразований. Если оставить неизменным, будет установлен флаг автоматического выставления порядка." +msgstr "" +"Порядок выполнения преобразований. Если оставить неизменным, будет " +"установлен флаг автоматического выставления порядка." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Имя" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Введите аргументы для преобразования в формате YAML-словаря, например: {\"degrees\": 180}" +msgstr "" +"Введите аргументы для преобразования в формате YAML-словаря, например: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -111,7 +145,6 @@ msgid "Edit transformations" msgstr "Изменить преобразования" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Просмотр существующих преобразований" @@ -131,22 +164,24 @@ msgstr "Путь до программы Popple pdftoppm." msgid "Enter a valid YAML value." msgstr "Введите допустимое YAML-значение." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Удалить преобразование \"%(transformation)s\" для: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Создать новое преобразование для: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Изменить преобразование \"%(transformation)s\" for: %(content_object)sjavascript:;" +msgstr "" +"Изменить преобразование \"%(transformation)s\" for: " +"%(content_object)sjavascript:;" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Преобразования для: %s" @@ -160,9 +195,6 @@ msgstr "Преобразования для: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +220,13 @@ msgstr "Преобразования для: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +539,11 @@ msgstr "Преобразования для: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +659,8 @@ msgstr "Преобразования для: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo index f3668dcd27b9bd2e9062288c5f50817835b74239..54a8f802867d198138600bee798403a86fbd230e 100644 GIT binary patch delta 64 zcmZ3_vYutaB3^S{15;fi3k5?{D-+9!>!m>gCb~w33WjD@My3<5ck%lq=B1Y=rl(pd S6z9YTdrnSZjGla&F$Dll)f0vQ delta 64 zcmZ3_vYutaB3?6HLqlC7V+8{vD^uf%>!pDL2FAKZh6+Z8Rt9DhuXjx@WQ^kXNz6+x TO-xU`R!U6;g?R4WA|14E!X p6I~-i1w%6{Bh!g*y7_$)^U_Nb(}A*OnekzMlgk*RCqHB~001V>8RGx| delta 87 zcmbQpGLdD%c2hH5LqlC7V+8{vD^p`#0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14A=i q17lqyLj@y4D+9BMZ@MS9Ge+_IB<7`;CZ+>blx4<;`AvSnXb1oz)fw6V diff --git a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po index 261c26b825..f97a203fc4 100644 --- a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "Sửa" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Tên" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo index 74768e857932ac01e98253c7edeb289a92df46ec..4119fbb561ff57fa9e2849e951fbe457ffe0ca2c 100644 GIT binary patch delta 67 zcmZ3-x{h^&9wV>0u7Rnpk%fYxsg;T4WNSugkcf${k)eX2nU#_0k+Fh-k(H_OWNSugpooF7u92aFk)f4=+2mx#*2zB@qxgLi W^U_Nb(^IV!sxso8{U!%8#R32{w diff --git a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po index 9288501a04..4766272838 100644 --- a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,29 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +42,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +50,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "调整大小" - -#: classes.py:295 -msgid "Rotate" -msgstr "旋转" - -#: classes.py:313 -msgid "Zoom" -msgstr "缩放" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "调整大小" + +#: classes.py:363 +msgid "Rotate" +msgstr "旋转" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "缩放" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "名称" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +139,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +158,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +187,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +212,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +531,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +651,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/models.py b/mayan/apps/converter/models.py index 817ee605ee..32faf5ac45 100644 --- a/mayan/apps/converter/models.py +++ b/mayan/apps/converter/models.py @@ -21,8 +21,14 @@ class Transformation(models.Model): """ Model that stores the transformation and transformation arguments for a given object + Fields: + * order - Order of a Transformation - In case there are multiple + transformations for an object, this field list the order at which + they will be execute. + * arguments - Arguments of a Transformation - An optional field to hold a + transformation argument. Example: if a page is rotated with the Rotation + transformation, this field will show by how many degrees it was rotated. """ - content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') diff --git a/mayan/apps/django_gpg/api_views.py b/mayan/apps/django_gpg/api_views.py new file mode 100644 index 0000000000..bb8762f0a0 --- /dev/null +++ b/mayan/apps/django_gpg/api_views.py @@ -0,0 +1,59 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import generics + +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Key +from .permissions import ( + permission_key_delete, permission_key_upload, permission_key_view +) +from .serializers import KeySerializer + + +class APIKeyListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_key_view,), + 'POST': (permission_key_upload,) + } + permission_classes = (MayanPermission,) + queryset = Key.objects.all() + serializer_class = KeySerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the keys. + """ + return super(APIKeyListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Upload a new key. + """ + return super(APIKeyListView, self).post(*args, **kwargs) + + +class APIKeyView(generics.RetrieveDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_key_delete,), + 'GET': (permission_key_view,), + } + queryset = Key.objects.all() + serializer_class = KeySerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected key. + """ + + return super(APIKeyView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected key. + """ + + return super(APIKeyView, self).get(*args, **kwargs) diff --git a/mayan/apps/django_gpg/apps.py b/mayan/apps/django_gpg/apps.py index b9e5883a73..14de67f9ad 100644 --- a/mayan/apps/django_gpg/apps.py +++ b/mayan/apps/django_gpg/apps.py @@ -9,6 +9,7 @@ from common import ( MayanAppConfig, menu_facet, menu_object, menu_setup, menu_sidebar ) from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .classes import KeyStub from .links import ( @@ -25,13 +26,14 @@ from .permissions import ( class DjangoGPGApp(MayanAppConfig): app_url = 'gpg' + has_tests = True name = 'django_gpg' - test = True verbose_name = _('Django GPG') def ready(self): super(DjangoGPGApp, self).ready() + APIEndPoint(app=self, version_string='1') Key = self.get_model('Key') ModelPermission.register( diff --git a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo index b7c47be34f700722deb75e2ed0bd4c81bd74e444..273cade153565e625f42d7270b7b4c8086cc0d53 100644 GIT binary patch delta 47 zcmew^@LgcTUKU<+T?12HBMSvXQ!5k8$){Kr^7tg?rI#kAr&=i_7ER7#joy5Tbtw}7 Dde#sJ delta 47 zcmew^@LgcTUKU<6T|+}%BVz>vBP&zm$){KrPOe~$;_*q$OD|1KPqk7=EZTgLbr}-? DdG-(j diff --git a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po index 98a7589b80..b2eab01cb9 100644 --- a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "لا شيء" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "Key management" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +153,27 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed with a valid signature." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +194,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +202,6 @@ msgid "View keys" msgstr "View keys" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +214,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +229,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +238,6 @@ msgstr "Import key" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +281,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo index 2e72b8837e59764a133025492f1b77d349e6edb9..b0a36a1b61612ee73668a0ebb73ac6f364684819 100644 GIT binary patch delta 47 zcmaDS@=j#K4HjN=T?12HBMSvXQ!5k8$xm69@c1O=rI#kAr&=i_rBCi)jo$o$wT=Y< Dfe{cx delta 47 zcmaDS@=j#K4HjNAT|+}%BVz>vBP&zm$xm69OrFLX#p9EhmtLBfo@%9#l)m{rYds49 Df!`25 diff --git a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po index 6f19291860..c8e63853d1 100644 --- a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pavlin Koldamov , 2012 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Ключ ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "Няма" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Управление на ключове" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "Документът е подписан и подписа е валид msgid "Document is signed with a valid signature." msgstr "Документът е подписан с валиден подпис." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Виж ключове" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Подписи" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Внасяне на ключ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo index b683257435e00354369b41b49e9c605248c87cc1..96164b698f720f656baaa4a6e6e551321018e52a 100644 GIT binary patch delta 50 zcmdlcxJ_`wUKU<+T?12HBMSvXQ!5k8$){NM@%tp^rI#kAr&=i_6~{X{PHtz7-u#L6 G2onI7kr3wq delta 50 zcmdlcxJ_`wUKU<6T|+}%BVz>vBP&zm$){NMO`gFT#qX1tmtLBfo@%9#R2=W*xcMXN GQ6>PGH4x, 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID ključa" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nijedno" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "Upravljanje ključevima" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +153,27 @@ msgstr "Dokument je potpisan, a potpis je dobar." msgid "Document is signed with a valid signature." msgstr "Dokument je potpisan sa važećim potpisom." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +194,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,26 +202,25 @@ msgid "View keys" msgstr "Pogledaj ključeve" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Home direktorij se koristi za pohranu ključeva, kao i konfiguracijskih datoteka." +msgstr "" +"Home direktorij se koristi za pohranu ključeva, kao i konfiguracijskih " +"datoteka." #: settings.py:21 msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +231,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +240,6 @@ msgstr "Importuj ključ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +283,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo index 85609690ba21cda64a18a6e750e52980161b594f..8afb7522eda9dec60414b6fa475998aed1be3bab 100644 GIT binary patch delta 44 zcmZ3%vVvv8WnOb#15;fi3k5?{D-+9!4;J$HB<7`;CZ?xaDWoJ$ZeWa_{DRQ|06*#u A;s5{u delta 44 zcmZ3%vVvv8WnME~LqlC7V+8{vD^uf%4;D`DV~pbQNz6+xO-xUvBP&zm$@4jnPcGw%;`d3+OD|1KPqk7=NsV`L-F%+w GE-L_yBoK)J diff --git a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po index fbff8df6cd..3f26c361b1 100644 --- a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mathias Behrle , 2014 @@ -12,45 +12,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-20 21:54+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Schlüssel-ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Benutzer-ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Typ" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Erstellungsdatum" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Ablaufdatum" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Ohne Ablaufdatum" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Länge" @@ -58,11 +59,11 @@ msgstr "Länge" msgid "None" msgstr "Keine" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Fingerabdruck" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Verfahren" @@ -72,7 +73,9 @@ msgstr "Begriff" #: forms.py:48 msgid "Name, e-mail, key ID or key fingerprint to look for." -msgstr "Name, E-Mail, Schlüssel-ID oder Fingerabdruck des Schlüssels, der gesucht wird" +msgstr "" +"Name, E-Mail, Schlüssel-ID oder Fingerabdruck des Schlüssels, der gesucht " +"wird" #: links.py:13 msgid "Delete" @@ -99,7 +102,6 @@ msgid "Key management" msgstr "Schlüssel-Management" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Schlüssel hochladen" @@ -145,7 +147,9 @@ msgstr "Signaturfehler" #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Das Dokument ist signiert, aber kein öffentlicher Schlüssel zur Überprüfung verfügbar." +msgstr "" +"Das Dokument ist signiert, aber kein öffentlicher Schlüssel zur Überprüfung " +"verfügbar." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -155,28 +159,27 @@ msgstr "Dokument ist signiert mit gültiger Unterschrift." msgid "Document is signed with a valid signature." msgstr "Das Dokument ist mit einer gültigen Signatur signiert." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "ASCII Version des Schlüssels." -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Schlüssel-Daten" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Schlüssel" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Schlüssel" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Ungültige Schlüssel-Daten" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Schlüssel existiert bereits." @@ -197,7 +200,6 @@ msgid "Use keys to sign content" msgstr "Schlüssel benutzen um Inhalt zu signieren" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Schlüssel hochladen" @@ -206,7 +208,6 @@ msgid "View keys" msgstr "Schlüssel anzeigen" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Unterschriften" @@ -219,13 +220,11 @@ msgid "Path to the GPG binary." msgstr "Pfad zum Programm GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Server, der nach unbekannten Schlüsseln durchsucht wird." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Schlüssel löschen: %s" @@ -236,7 +235,6 @@ msgstr "Details für Schlüssel %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Schlüssel-ID %s importieren?" @@ -246,7 +244,6 @@ msgstr "Schlüssel importieren" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Schlüssel-ID %(key_id)s konnte nicht importiert werden: %(error)s" @@ -290,12 +287,12 @@ msgstr "Neuen Schlüssel hochladen" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo index a5966431a4adc7bd66be6bfc95daa1c7877608c7..5ec5b3d032ab6e0b537f9e0fa3486f8b31f47449 100644 GIT binary patch delta 26 hcmey*_n&Wr2Me#cu7Rnpk%fYxsg;T4=1>+bW&mzn2I>F+ delta 26 hcmey*_n&Wr2Me#6uA!l>k+Fh-k(H_O=1>+bW&mxV2G{@q diff --git a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po index f78132148e..78dcfd7bde 100644 --- a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,38 +18,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 #, fuzzy msgid "Creation date" msgstr "creation date" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 #, fuzzy msgid "Expiration date" msgstr "expiration date" -#: apps.py:83 +#: apps.py:57 #, fuzzy msgid "No expiration" msgstr "expiration date" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 #, fuzzy msgid "Length" msgstr "length" @@ -58,11 +58,11 @@ msgstr "length" msgid "None" msgstr "" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -160,29 +160,29 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed with a valid signature." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 +#: models.py:61 #, fuzzy #| msgid "Key ID" msgid "Key" msgstr "Key ID" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" diff --git a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo index e67ba4fdd0c6a19a3dd46eddcf73910049696e3c..cf69afa5bf44b5d6cce736f35ba8460f1f55645f 100644 GIT binary patch delta 47 zcmbQMFjry2Bu-v)T?12HBMSvXQ!5k8$@4iE@%SX>rI#kAr&=kb7EgBIir&0}tCST0 DR7?)G delta 47 zcmbQMFjry2Bu-v4T|+}%BVz>vBP&zm$@4iEP4?r8;_*q$OD|1KPqk7=E#ADGtBe%@ DQFjip diff --git a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po index 5affd12616..d7a82c1a86 100644 --- a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-09 01:46+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Identificador de clave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "ID de usuario" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Fecha de creación" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Fecha de expiración" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "No expira" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Largo" @@ -57,11 +58,11 @@ msgstr "Largo" msgid "None" msgstr "Ninguno" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Huella" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritmo" @@ -71,7 +72,9 @@ msgstr "Término" #: forms.py:48 msgid "Name, e-mail, key ID or key fingerprint to look for." -msgstr "Nombre, dirección de correo electrónico, identificador de clave o huella digital de clave a buscar." +msgstr "" +"Nombre, dirección de correo electrónico, identificador de clave o huella " +"digital de clave a buscar." #: links.py:13 msgid "Delete" @@ -98,7 +101,6 @@ msgid "Key management" msgstr "Gestión de claves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Subir llave" @@ -144,7 +146,9 @@ msgstr "Error de firma." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "El documento ha sido firmado pero no hay clave pública disponible para verificación." +msgstr "" +"El documento ha sido firmado pero no hay clave pública disponible para " +"verificación." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -154,28 +158,27 @@ msgstr "El documento ha sido firmado y la firma está en buen estado." msgid "Document is signed with a valid signature." msgstr "El documento ha sido firmado y la firma ha sido validada." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versión ASCII de la llave" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Datos de llave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Llave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Llaves" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Datos de llave invalidos" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Llave ya existe." @@ -196,7 +199,6 @@ msgid "Use keys to sign content" msgstr "Usar llaves para firmar contenido" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Subir llaves" @@ -205,26 +207,25 @@ msgid "View keys" msgstr "Ver claves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Firma" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Directorio de inicio utilizado para almacenar las claves, así como los archivos de configuración." +msgstr "" +"Directorio de inicio utilizado para almacenar las claves, así como los " +"archivos de configuración." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Ruta al binario GPG." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Servidor usado para buscar llaves." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Borrar llave: %s" @@ -235,7 +236,6 @@ msgstr "Detalles para llave: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "¿Importar llave: %s?" @@ -245,7 +245,6 @@ msgstr "Importar clave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "No se pudo importar la llave: %(key_id)s; %(error)s " @@ -289,12 +288,12 @@ msgstr "Subir una nueva llave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo index 7fc8f54dcba3f6328ea86ec0d16b532137acdd2e..e0ab462a3550936bf726113fcec7e79b2a7e8501 100644 GIT binary patch delta 47 zcmX>ueq4NmARDi_u7Rnpk%fYxsg;T4WI47)JU)qe>7|M3sa6VUiIexUMQ>JTU%&zY DKQ9gd delta 47 zcmX>ueq4NmARDiluA!l>k+Fh-k(H_OWI47)lh3k6@%SX>rI#kAr&=kbC2m$@U&sOg DLfsAf diff --git a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po index 42bb14f760..62f0d1b806 100644 --- a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "شناسه کلید" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "نوع" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "تاریخ ایجاد" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "تاریخ انقضا" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "طول" @@ -54,11 +55,11 @@ msgstr "طول" msgid "None" msgstr "هیچکدام." -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "مدیریت کلید" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "سند امضا شده است و امضا مورد تایید میباش msgid "Document is signed with a valid signature." msgstr "سند با امضای مورد تایید امضا شده است." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "دیدن کلیدها" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "امضاها" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "محل کتایخانه باینری GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "وارد کردن کلید" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo index f38174f28ca8437709eef66618796cc226a01b3a..01326613857ddb98d7a9b41b513192d32fc660d2 100644 GIT binary patch delta 47 zcmX@Da9Ux*Bu-v)T?12HBMSvXQ!5k8$@4k)^Y|p@rI#kAr&=kb6-|!iir##btBn-^ DXzmYs delta 47 zcmX@Da9Ux*Bu-v4T|+}%BVz>vBP&zm$@4k)PtN9w;_*q$OD|1KPqk7=E82X7tDO}9 DXOa(f diff --git a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po index 801ff61f5b..c81b613f7a 100644 --- a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Bruno CAPELETO , 2016 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-23 20:02+0000\n" "Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID de la clé" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Id Utilisateur" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Type" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Date de création" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Date d'expiration" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Pas d'expiration" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Durée" @@ -57,11 +58,11 @@ msgstr "Durée" msgid "None" msgstr "Aucun" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Emprunte" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algorithme" @@ -98,7 +99,6 @@ msgid "Key management" msgstr "Gestion des clés" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Uploader la clé" @@ -144,7 +144,9 @@ msgstr "Erreur de signature." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Ce document est signé mais aucune clé publique n'est disponible pour vérifier la signature." +msgstr "" +"Ce document est signé mais aucune clé publique n'est disponible pour " +"vérifier la signature." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -154,28 +156,27 @@ msgstr "Le document est signé et la signature est bonne." msgid "Document is signed with a valid signature." msgstr "Le document est signé avec une signature valide." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Version ASCII de la clef" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Contenu de la clef" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Clé" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Clés" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Contenu de clef incorrecte" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Clé déjà existante" @@ -196,7 +197,6 @@ msgid "Use keys to sign content" msgstr "Utiliser des clefs pour signer le document" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Uploader les clés" @@ -205,26 +205,25 @@ msgid "View keys" msgstr "Afficher les clés" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Signatures" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Répertoire principal utilisé pour stocker les clés, ainsi que les fichiers de configuration" +msgstr "" +"Répertoire principal utilisé pour stocker les clés, ainsi que les fichiers " +"de configuration" #: settings.py:21 msgid "Path to the GPG binary." msgstr "Chemin du binaire GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Serveur de clefs à contacter" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Effacer la clé: %s" @@ -235,7 +234,6 @@ msgstr "Détails de la clé: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importer l'identifiant de clé : %s ?" @@ -245,7 +243,6 @@ msgstr "Importer la clé" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Impossible d'importer la clé : %(key_id)s; %(error)s" @@ -289,12 +286,12 @@ msgstr "Uploader une nouvelle clé" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo index 62a8456e056bbdffc8f8a191b785b68361b07332..c8426a2ed43c1d7eca16ead469df8af5a78c2214 100644 GIT binary patch delta 44 zcmcc3a+_tsCth=115;fi3k5?{D-+9!|CjLiB<7`;CZ?xaDP)vRUc?wZnTsh909X?a A_W%F@ delta 44 zcmcc3a+_tsCtfpMLqlC7V+8{vD^uf%|CdbOz!=5jlbDxYnwXwyrI1lNnUg6909nQk A@&Et; diff --git a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po index 3c9bd2d917..7b8d03db6a 100644 --- a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "None" msgstr "Semmi" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo index 2d4027bc1846c24ab3147772fd57120ce6833bfa..437bee518371eed1bff3b46a57eff103e11e84f3 100644 GIT binary patch delta 44 zcmeBV>13I(kJnt+z*N`BLc!3~%EWTw>7_hAiFxUziRr0U3YjUB^BJQjUuQG|05De$ ARsaA1 delta 44 zcmeBV>13I(kJn7s&`{UNSi!)^%G7w`>7|ov8KZc767$ka6Vp?z6f#pLUt=@|057u+ AQ2+n{ diff --git a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po index c586ee243c..ee220e7865 100644 --- a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "None" msgstr "" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo index 9ad67ff2edae7686f4807440aa90465311d1dadf..82c48281a0e3b25fd1ed5cf7dc97750017ea5e37 100644 GIT binary patch delta 47 zcmZouXj9lQiIdk{*T7WQ$U?!;)XKzi@_f$yJU)qe>7|M3sa6V^C6i;hqBkGqa%2Sn DPt6Xn delta 45 zcmZouXj9lQiIdk%*U(Vc$XLO^$ja1s@_f$yle4*^xO@`x(n}N5Q>_#>AL4Rh1pqLX B4a@)l diff --git a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po index 895fcb7777..5183ba1c9e 100644 --- a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Marco Camplese , 2016 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 10:33+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "chiave ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "User ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data di creazione" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data scadenza" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Nessuna scadenza" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Lunghezza" @@ -56,11 +57,11 @@ msgstr "Lunghezza" msgid "None" msgstr "Nessuna " -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Impronta" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritmo" @@ -97,7 +98,6 @@ msgid "Key management" msgstr "Gestione delle chiavi" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Carica chiave" @@ -143,7 +143,9 @@ msgstr "Errore di firma" #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Il documento è stato firmato, ma la chiave pubblica non è disponibile per la verifica" +msgstr "" +"Il documento è stato firmato, ma la chiave pubblica non è disponibile per la " +"verifica" #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +155,27 @@ msgstr "Documento firmato e firma è buona." msgid "Document is signed with a valid signature." msgstr "Il documento è firmato con una firma valida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versione ASCII blindata della chiave" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Dati chiave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Chiave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Chiavi" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Dati chiave non valida" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "La chiave esiste già." @@ -195,7 +196,6 @@ msgid "Use keys to sign content" msgstr "Usa la chiave per formare i contenuti" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Carica chiavi" @@ -204,26 +204,25 @@ msgid "View keys" msgstr "Vista delle chiavi" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Firme" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Home directory utilizzata per memorizzare le chiavi così come i file di configurazione." +msgstr "" +"Home directory utilizzata per memorizzare le chiavi così come i file di " +"configurazione." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Percorso per il programma GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Keyserver utilizzato per richiedere le chiavi." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Cancellare la chiave: %s" @@ -234,7 +233,6 @@ msgstr "Dettagli della chiave: %s." #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importare ID chiave: %s?" @@ -244,7 +242,6 @@ msgstr "Importa chiave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Impossibile importare la chiave: %(key_id)s; %(error)s" @@ -288,12 +285,12 @@ msgstr "Carica nuova chiave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo index ed2c5476c6f74ec5ca298346db1f26daff8feb93..b67cbedc00c20f58aa071f457b697736f0324ac9 100644 GIT binary patch delta 50 zcmdlWv_WV?J1eibu7Rnpk%fYxsg;T4_&8a^n4bCMU8*Z$878 G!UOk+Fh-k(H_OY(CAF G$^-y}%MbGa diff --git a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po index b82110c77d..9d8273fce1 100644 --- a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Sleutel-ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Gebruikers-ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Type" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Aanmaakdatum" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Verloopdatu" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Geen verloop" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Lengte" @@ -55,11 +56,11 @@ msgstr "Lengte" msgid "None" msgstr "Geen" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Vingerafdru" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritme" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Sleutelbeheer" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Upload sleutel" @@ -152,28 +152,27 @@ msgstr "Document is getekend, en handtekening is goed." msgid "Document is signed with a valid signature." msgstr "Document is getekend met een geldige handtekening." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Sleutel" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Sleutels" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Ongeldige sleutelgegevens" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Sleutel bestaat al." @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Bekijk sleutels" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Handtekeningen" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Importeer sleutel" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo index 8ebc1319ea92f9e245ba46acbb73d0edba837eca..6558d65ca5153f3e5ea20d8f440faddbecac6082 100644 GIT binary patch delta 47 zcmX>ta$01=H&$MAT?12HBMSvXQ!5k8$;@mEd3+M{(n}N5Q>_#Vawacki{8x5?!XKH DVG9mM delta 47 zcmX>ta$01=H&$LVT|+}%BVz>vBP&zm$;@mECvRkn;_*q$OD|1KPqk7g$l1)r?#K)P DV)+h1 diff --git a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po index 3103cad4c9..1ca5ace4ec 100644 --- a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -10,45 +10,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Typ" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data utworzenia" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data wygaśnięcia" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Długość" @@ -56,11 +58,11 @@ msgstr "Długość" msgid "None" msgstr "Brak" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -97,7 +99,6 @@ msgid "Key management" msgstr "Zarządzanie kluczami" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -143,7 +144,9 @@ msgstr "Błąd podpisu." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Dokument został podpisany, ale klucz publiczny nie jest dostępny do weryfikacji." +msgstr "" +"Dokument został podpisany, ale klucz publiczny nie jest dostępny do " +"weryfikacji." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +156,27 @@ msgstr "Dokument został podpisany, a podpis jest dobry." msgid "Document is signed with a valid signature." msgstr "Dokument podpisany za pomocą ważnego podpisu." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -195,7 +197,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -204,26 +205,24 @@ msgid "View keys" msgstr "View keys" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Katalog domowy używany do przechowywania kluczy oraz plików konfiguracyjnych." +msgstr "" +"Katalog domowy używany do przechowywania kluczy oraz plików konfiguracyjnych." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Ścieżka do GPG binary." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -234,7 +233,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -244,7 +242,6 @@ msgstr "Importuj klucz" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -288,12 +285,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo index 29851cc43c847d2cb9603326b0b2a826132f1994..15880382e73d67f0b407558a16b0d1ae8ab351c6 100644 GIT binary patch delta 47 zcmeAW>JZxSpM}?4*T7WQ$U?!;)XKziG7sxg9-qX#^wPxiR4avolF1ubqc=;ieP99r DO!^L= delta 46 zcmeAW>JZxSpM}><*U(Vc$XLO^$ja1sG7sz0$@^HNxP21y(n}N5Q>_#VHjA-+Vgdj_ CHV!2K diff --git a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po index b65ad439e1..8e63ba3ed4 100644 --- a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Roberto Rosario, 2012 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID da chave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -56,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nenhum" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -97,7 +98,6 @@ msgid "Key management" msgstr "Gestão de chaves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -143,7 +143,9 @@ msgstr "Erro de assinatura." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "O documento está assinado, mas não está disponível uma chave pública para verificação." +msgstr "" +"O documento está assinado, mas não está disponível uma chave pública para " +"verificação." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +155,27 @@ msgstr "O documento está assinado e a assinatura é válida." msgid "Document is signed with a valid signature." msgstr "O documento está assinado com uma assinatura válida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -195,7 +196,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -204,7 +204,6 @@ msgid "View keys" msgstr "Ver as chaves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Assinaturas" @@ -217,13 +216,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -234,7 +231,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -244,7 +240,6 @@ msgstr "Importar chave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -288,12 +283,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo index 05c09456f1dc5e7f4192a8f452601015773131c3..66a93ced083469ca2b5780f297a2941c0cf96e42 100644 GIT binary patch delta 50 zcmbQKFjHZ}Bu-v)T?12HBMSvXQ!5k8$@4i+^ZO*`rI#kAr&=i#l*Bs)P0r+s-h742 Gl@$Pn(+~at delta 50 zcmbQKFjHZ}Bu-v4T|+}%BVz>vBP&zm$@4i+Pp;yM;`d3+OD|1KPqk7gD2aCp+I*SI GjTHcfXAk@U diff --git a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po index e3482eec1f..1285e760e7 100644 --- a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID da chave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "ID de usuário" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data de criação" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data de expiração" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Sem expiração" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Largura" @@ -57,11 +58,11 @@ msgstr "Largura" msgid "None" msgstr "Nenhum" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Impressão digital" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algorítimo" @@ -98,7 +99,6 @@ msgid "Key management" msgstr "Gerenciar chaves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Envio da chave" @@ -154,28 +154,27 @@ msgstr "Documento assinado e a assinatura está em bom estado." msgid "Document is signed with a valid signature." msgstr "Documento assinado com assinatura válida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versão ASCII da chave." -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Dados da chave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Chave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Chaves" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Dados da chave inválidos" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "A chave já existe." @@ -196,7 +195,6 @@ msgid "Use keys to sign content" msgstr "Usar chaves para assinar conteúdo" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Enviar chaves" @@ -205,26 +203,25 @@ msgid "View keys" msgstr "Ver as chaves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Assinaturas" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Diretório inicial usado para armazenar as chaves, assim como os arquivos de configuração." +msgstr "" +"Diretório inicial usado para armazenar as chaves, assim como os arquivos de " +"configuração." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Caminho para o binário GPG." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Servidor usado para procurar chaves." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Apagar chave: %s" @@ -235,7 +232,6 @@ msgstr "Detalhes para chave: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importar ID da chave: %s?" @@ -245,7 +241,6 @@ msgstr "Importar chave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Não foi possível importar chave: %(key_id)s; %(error)s" @@ -289,12 +284,12 @@ msgstr "Carregar nova chave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo index 4c3443d54b2a9365fac1f4cece36fc091f2daedb..98f2b17dc5c90742e1a865d0fda6c37d8e8753a0 100644 GIT binary patch delta 50 zcmbOtG(~8`PZnNtT?12HBMSvXQ!5k8$!x3}__$=^5cX2CvRnq-mJj( Gg$V$DD-Xv2 delta 50 zcmbOtG(~8`PZnM?T|+}%BVz>vBP&zm$!x3}CLd#s;`d3+OD|1KPqk7g%8w87-z?Ae Gl?ecX2M@&n diff --git a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po index d05753ffc8..2a91cbb95a 100644 --- a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID cheie" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tip" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nici unul" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "gestionare chei" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -142,7 +143,9 @@ msgstr "Eroare semnătură." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Documentul este semnat, dar nici o cheie publică nu este disponibilă pentru verificare." +msgstr "" +"Documentul este semnat, dar nici o cheie publică nu este disponibilă pentru " +"verificare." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -152,28 +155,27 @@ msgstr "Documentul este semnat, iar semnătura este bună." msgid "Document is signed with a valid signature." msgstr "Documentul este semnat cu o semnătură validă." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +196,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,26 +204,25 @@ msgid "View keys" msgstr "Vizualiza cheile" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Cale director utilizată pentru a stoca cheile, precum și fișiere de configurare." +msgstr "" +"Cale director utilizată pentru a stoca cheile, precum și fișiere de " +"configurare." #: settings.py:21 msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +233,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +242,6 @@ msgstr "Import cheie" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +285,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo index bb93c5c08b3cd7f3a2937bfd705989c63982116b..9a3075e51e414bce56ef3830ecfc0c7098d63416 100644 GIT binary patch delta 47 zcmbQHHcf3q04J}xu7Rnpk%fYxsg;T47|M3sa6U_rIUYhMsH5!+R6a{ DNA?cx delta 47 zcmbQHHcf3q04J}RuA!l>k+Fh-k(H_O_$=N;fBPZQ}p{ DIZ+Mj diff --git a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po index 6a3dccca02..e068a77401 100644 --- a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,45 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-19 20:20+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID ключа" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Идентификатор пользователя" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Тип" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Дата создания" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Дата окончания" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Не устаревает" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Длина" @@ -55,11 +58,11 @@ msgstr "Длина" msgid "None" msgstr "Ни один" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Отпечаток" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Алгоритм" @@ -96,7 +99,6 @@ msgid "Key management" msgstr "Управление ключами" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Загрузить ключ" @@ -152,28 +154,27 @@ msgstr "Документ подписан и подпись верна." msgid "Document is signed with a valid signature." msgstr "Документ подписан допустимой подписью." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Содержимое ключа" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Ключ" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Ключи" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Неверные данные ключа" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Ключ уже существует." @@ -194,7 +195,6 @@ msgid "Use keys to sign content" msgstr "Использовать ключи для подписи контента" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Загрузить ключи" @@ -203,26 +203,25 @@ msgid "View keys" msgstr "Просмотр ключей" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Подписи" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Домашний каталог, используемый для хранения ключей, а также файлов конфигурации." +msgstr "" +"Домашний каталог, используемый для хранения ключей, а также файлов " +"конфигурации." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Путь к GPG исходникам." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Сервер ключей используемый для запроса ключей." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Удалить ключ: %s" @@ -233,7 +232,6 @@ msgstr "Подробности для ключа: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Получить ключ ID: %s?" @@ -243,7 +241,6 @@ msgstr "Получить ключ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Невозможно импортировать ключ %(key_id)s; %(error)s" @@ -287,12 +284,12 @@ msgstr "Загрузить новый ключ" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo index b95d50b1db4509f326d1e59984bc52d02598d85e..29861aa88c5dd040ed408f8e982ac025b05d44c9 100644 GIT binary patch delta 47 zcmeyu@`Yu>WnOb#15;fi3k5?{D-+9!4>s}pB<7`;CZ?xaDHP|#2YXJQ$QV8O4`T%Y DjAju4 delta 47 zcmeyu@`Yu>WnME~LqlC7V+8{vD^uf%4>nC+#2CfzlbDxYnwXwyrBIv`AM82#H)ACL Djq(uw diff --git a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po index e4137c2a43..b57b56e8ee 100644 --- a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po @@ -1,52 +1,54 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +56,11 @@ msgstr "" msgid "None" msgstr "Brez" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +97,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +152,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +201,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +237,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo index 98e29e896c7f2b993c59e0eaa1d89b2911ecfbfc..19e0d0124c1fcb6fc27e329f3d571e3de6e4e93e 100644 GIT binary patch delta 50 zcmdlWut8wM5*A)_T?12HBMSvXQ!5k8$s1WV^ZO*`rI#kAr&=kLWyXj3O-^Qw-h7TV Gi3tFUCJ-F} delta 50 zcmdlWut8wM5*A)FT|+}%BVz>vBP&zm$s1WVPcC7N;`d3+OD|1KPqk7g%Zv~6+kBQa GnF#=i-VhrA diff --git a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po index 3a37ebc8ec..4fcf662615 100644 --- a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "None" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Quản lý khóa" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed, and signature is good." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Xem các khóa" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Import key" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo index fb3f37df1cef08b9236806739d6a468206b9f531..4ab874039562bfaa6e5968b4b5ba27238bf8b3af 100644 GIT binary patch delta 50 zcmeyy|BZjcUKU<+T?12HBMSvXQ!5k8$){M>^7|y_rI#kAr&=jgWyCxCO)g`N-u#eN GlnDTvBP&zm$){M>PHtz7;`d3+OD|1KPqk90%7}ON+x&o4 Gj0pg%;}Dtv diff --git a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po index c163015017..632987651a 100644 --- a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "密钥ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "无" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "密钥管理" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "文档已签名,并且是有效的。" msgid "Document is signed with a valid signature." msgstr "文档使用有效签名进行签名" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "查看密钥" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "导入密钥" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/models.py b/mayan/apps/django_gpg/models.py index feccaecc75..ebffe2c084 100644 --- a/mayan/apps/django_gpg/models.py +++ b/mayan/apps/django_gpg/models.py @@ -23,6 +23,11 @@ logger = logging.getLogger(__name__) @python_2_unicode_compatible class Key(models.Model): + """ + Fields: + * key_type - Will show private or public, the only two types of keys in + a public key infrastructure, the kind used in Mayan. + """ key_data = models.TextField( help_text=_('ASCII armored version of the key.'), verbose_name=_('Key data') diff --git a/mayan/apps/django_gpg/serializers.py b/mayan/apps/django_gpg/serializers.py new file mode 100644 index 0000000000..df3c965690 --- /dev/null +++ b/mayan/apps/django_gpg/serializers.py @@ -0,0 +1,17 @@ +from __future__ import unicode_literals + +from rest_framework import serializers + +from .models import Key + + +class KeySerializer(serializers.ModelSerializer): + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:key-detail'}, + } + fields = ( + 'algorithm', 'creation_date', 'expiration_date', 'fingerprint', + 'id', 'key_data', 'key_type', 'length', 'url', 'user_id' + ) + model = Key diff --git a/mayan/apps/django_gpg/tests/test_api.py b/mayan/apps/django_gpg/tests/test_api.py new file mode 100644 index 0000000000..605f973911 --- /dev/null +++ b/mayan/apps/django_gpg/tests/test_api.py @@ -0,0 +1,59 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Key + +from .literals import TEST_KEY_DATA, TEST_KEY_FINGERPRINT + + +@override_settings(OCR_AUTO_OCR=False) +class KeyAPITestCase(BaseAPITestCase): + def setUp(self): + super(KeyAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def _create_key(self): + return Key.objects.create(key_data=TEST_KEY_DATA) + + def test_key_create_view(self): + response = self.client.post( + reverse('rest_api:key-list'), { + 'key_data': TEST_KEY_DATA + } + ) + self.assertEqual(response.data['fingerprint'], TEST_KEY_FINGERPRINT) + + key = Key.objects.first() + self.assertEqual(Key.objects.count(), 1) + self.assertEqual(key.fingerprint, TEST_KEY_FINGERPRINT) + + def test_key_delete_view(self): + key = self._create_key() + + self.client.delete(reverse('rest_api:key-detail', args=(key.pk,))) + + self.assertEqual(Key.objects.count(), 0) + + def test_key_detail_view(self): + key = self._create_key() + + response = self.client.get( + reverse('rest_api:key-detail', args=(key.pk,)) + ) + + self.assertEqual(response.data['fingerprint'], key.fingerprint) diff --git a/mayan/apps/django_gpg/urls.py b/mayan/apps/django_gpg/urls.py index eaaf3fa762..ac21c86d2d 100644 --- a/mayan/apps/django_gpg/urls.py +++ b/mayan/apps/django_gpg/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APIKeyListView, APIKeyView from .views import ( KeyDeleteView, KeyDetailView, KeyDownloadView, KeyQueryView, KeyQueryResultView, KeyReceive, KeyUploadView, PrivateKeyListView, @@ -38,3 +39,11 @@ urlpatterns = [ r'^receive/(?P.+)/$', KeyReceive.as_view(), name='key_receive' ), ] + +api_urls = [ + url( + r'^keys/(?P[0-9]+)/$', APIKeyView.as_view(), + name='key-detail' + ), + url(r'^keys/$', APIKeyListView.as_view(), name='key-list'), +] diff --git a/mayan/apps/document_comments/api_views.py b/mayan/apps/document_comments/api_views.py new file mode 100644 index 0000000000..2ce872e2db --- /dev/null +++ b/mayan/apps/document_comments/api_views.py @@ -0,0 +1,120 @@ +from __future__ import absolute_import, unicode_literals + +from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document +from permissions import Permission + +from .permissions import ( + permission_comment_create, permission_comment_delete, + permission_comment_view +) +from .serializers import CommentSerializer, WritableCommentSerializer + + +class APICommentListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the document comments. + """ + return super(APICommentListView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_comment_view + else: + permission_required = permission_comment_create + + document = get_object_or_404(Document, pk=self.kwargs['document_pk']) + + try: + Permission.check_permissions( + self.request.user, (permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + + return document + + def get_queryset(self): + return self.get_document().comments.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return CommentSerializer + else: + return WritableCommentSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Create a new document comment. + """ + return super(APICommentListView, self).post(*args, **kwargs) + + +class APICommentView(generics.RetrieveDestroyAPIView): + lookup_url_kwarg = 'comment_pk' + serializer_class = CommentSerializer + + def delete(self, request, *args, **kwargs): + """ + Delete the selected document comment. + """ + + return super(APICommentView, self).delete(request, *args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected document comment. + """ + + return super(APICommentView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_comment_view + else: + permission_required = permission_comment_delete + + document = get_object_or_404(Document, pk=self.kwargs['document_pk']) + + try: + Permission.check_permissions( + self.request.user, (permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + + return document + + def get_queryset(self): + return self.get_document().comments.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } diff --git a/mayan/apps/document_comments/apps.py b/mayan/apps/document_comments/apps.py index c4d5f3dfd4..d79f3bd7b3 100644 --- a/mayan/apps/document_comments/apps.py +++ b/mayan/apps/document_comments/apps.py @@ -5,7 +5,9 @@ from django.utils.translation import ugettext_lazy as _ from acls import ModelPermission from common import MayanAppConfig, menu_facet, menu_object, menu_sidebar +from documents.search import document_page_search, document_search from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_comment_add, link_comment_delete, link_comments_for_document @@ -19,12 +21,15 @@ from .permissions import ( class DocumentCommentsApp(MayanAppConfig): app_namespace = 'comments' app_url = 'comments' + has_tests = True name = 'document_comments' verbose_name = _('Document comments') def ready(self): super(DocumentCommentsApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) @@ -45,6 +50,15 @@ class DocumentCommentsApp(MayanAppConfig): ) SourceColumn(source=Comment, label=_('Comment'), attribute='comment') + document_page_search.add_model_field( + field='document_version__document__comments__comment', + label=_('Comments') + ) + document_search.add_model_field( + field='comments__comment', + label=_('Comments') + ) + menu_sidebar.bind_links( links=(link_comment_add,), sources=( diff --git a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo index b0a550b9352474d96a24039551d33b91ad60612a..6222aa9c1a8cf5f39e6e007ba42360c5ee747299 100644 GIT binary patch delta 47 zcmaFN{+NBkG)7)?T?12HBMSvXQ!5k8$%`2m^7tg?rI#kAr&=i_7EN|$ir&1M$$}98 DVz&;r delta 47 zcmaFN{+NBkG)7)CT|+}%BVz>vBP&zm$%`2mP7Y*>;_*q$OD|1KPqk7=EZV$^$&wKO DU$qXh diff --git a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po index d250379d6b..c32908fd04 100644 --- a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Date" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "مستخدم" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "تعليق" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "التعليقات" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "التعليقات" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "حذف التعليقات" msgid "View comments" msgstr "عرض التعليقات" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "إضافة تعليق على الوثيقة: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo index 64018411385737c1341685bda0ab5cfe72f6df2a..93320d50b820b1a9c3f4e9a53c588bda0a83c971 100644 GIT binary patch delta 47 zcmaFH{)~OYG)7)?T?12HBMSvXQ!5k8$%`46@c1O=rI#kAr&=i_rB8Nair&1A$$}98 DW6=)0 delta 47 zcmaFH{)~OYG)7)CT|+}%BVz>vBP&zm$%`46Ob%g+;_*q$OD|1KPqk7=O5ePe$&wKO DVIB^* diff --git a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po index b4568c327e..f82e271be4 100644 --- a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Дата" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Потребител" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Коментар" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Коментари" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Коментари" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Изтриване на коментари" msgid "View comments" msgstr "Преглед на коментари" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Добавяне на коментар към документ: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo index f0fbd24ea119e75fb4a7647fe15de44e155b3de5..1f1054f17477675f17102144f85667f70502200f 100644 GIT binary patch delta 49 zcmdnTzK?ywG)7)?T?12HBMSvXQ!5k8$%`5H@%tp^rI#kAr&=i_6~{X{PEKHoo_w0= FGXQsQ5J&(3 delta 49 zcmdnTzK?ywG)7)CT|+}%BVz>vBP&zm$%`5HO)g}L;`d3+OD|1KPqk7=Dvoz@oP3Ju F3jlU?5Jmt1 diff --git a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po index b6db8b2ba5..e294bad9b6 100644 --- a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Korisnik" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentari" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentari" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "Obriši komentare" msgid "View comments" msgstr "Pregledaj komentare" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodaj komentar za dokument: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo index 578fd9045b321e182b7b582a271c772815907700..4906b79a3cd0ab32be4ca4c8f22050c4e93cd66f 100644 GIT binary patch delta 46 zcmcb_c8P7nG)7)?T?12HBMSvXQ!5k8$%`2m^7tg?rI#kAr&=kbBu;i_ik`fhX*mE* CA`a64 delta 46 zcmcb_c8P7nG)7)CT|+}%BVz>vBP&zm$%`2mP7Y*>;_*q$OD|1KPqk7=Nu0cjX$1gE CT@KCw diff --git a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po index d30bef8e52..4be0c530d6 100644 --- a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Dato" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Bruger" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Kommentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Kommentarer" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Kommentarer" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Slet kommentarer" msgid "View comments" msgstr "Se kommentarer" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Tilføj kommentar til dokument: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo index 85da4060f8e287df422a20ac4febf71e9b725de1..f987a875bde26da725f8883f48829de2ddcd1cbd 100644 GIT binary patch delta 50 zcmbQmJ&St-2Q#m^u7Rnpk%fYxsg;T4WKre={62|!>7|M3sa6UpsqrqZldmvGZ?k+Fh-k(H_OWKre=lb, 2015 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Kommentare" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Benutzer" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Kommentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Kommentare" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Kommentar erstellt" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Kommentar gelöscht" @@ -55,10 +57,6 @@ msgstr "Kommentar hinzufügen" msgid "Delete" msgstr "Löschen" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Kommentare" - #: models.py:23 msgid "Document" msgstr "Dokument" @@ -79,18 +77,17 @@ msgstr "Kommentare löschen" msgid "View comments" msgstr "Kommentare ansehen" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Kommentar zu Dokument %s hinzufügen" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Kommentar %s löschen?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Kommentare für Dokument: %s" diff --git a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo index e8cf79ce35286d17c90875f01e76a19c21046357..76b0457828d0d50a8790c45fe1e353b764a02540 100644 GIT binary patch delta 26 hcmaFP`kZxx4k+Fh-k(H_O=19gqMgV9f2KoR1 diff --git a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po index 0add17e181..d0296a481e 100644 --- a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2013-11-20 11:56+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,26 +18,30 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 +#: apps.py:26 #, fuzzy #| msgid "Delete comments" msgid "Document comments" msgstr "Delete comments" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 #, fuzzy msgid "Comment" msgstr "Comments" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comments" + #: events.py:9 #, fuzzy #| msgid "Delete comments" @@ -60,10 +64,6 @@ msgstr "add comment" msgid "Delete" msgstr "delete" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comments" - #: models.py:23 #, fuzzy msgid "Document" @@ -85,18 +85,18 @@ msgstr "Delete comments" msgid "View comments" msgstr "View comments" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Add comment to document: %s" -#: views.py:90 +#: views.py:79 #, fuzzy, python-format #| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Delete comments" -#: views.py:122 +#: views.py:106 #, fuzzy, python-format msgid "Comments for document: %s" msgstr "Add comment to document: %s" diff --git a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo index 37abc63a33bc2a72a2a3ad3c1643fca073f86031..31b572099e4be42a0dce960bcbf25fd21920c057 100644 GIT binary patch delta 47 zcmbQoJ&$_>2Q#m^u7Rnpk%fYxsg;T4WKrftJU)qe>7|M3sa6W9#gn%&M{ky6X2Q#mkuA!l>k+Fh-k(H_OWKrftlaDY*@%SX>rI#kAr&=kb7H^hiX=DTd DE5{8_ diff --git a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po index 3fb8867504..e89c770a7b 100644 --- a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Roberto Rosario, 2015 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Comentarios de documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Fecha" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Usuario" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentario" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentarios" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Comentario de documento creado" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Comentario de documento borrado" @@ -55,10 +57,6 @@ msgstr "Añadir comentario" msgid "Delete" msgstr "Borrar" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentarios" - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Eliminar comentarios" msgid "View comments" msgstr "Ver comentarios" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Añadir comentario al documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "¿Borrar comentario: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Comentarios para el documento: %s" diff --git a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo index 08241c25486a5c423d6f2aedc12a2d5900141513..0aa1f7c64db0c3464392a46d90186a6cd4dea05d 100644 GIT binary patch delta 47 zcmbQsIhS*T2NSQku7Rnpk%fYxsg;T47|M3sa6VUiIcxEMQ@H{wr2zY DIx`LU delta 47 zcmbQsIhS*T2NSQEuA!l>k+Fh-k(H_O_%z5;w;(J1_zO DD~t^E diff --git a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po index a5777a047c..64797198b6 100644 --- a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "تاریخ" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "کاربر" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "شرح" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "توضیحات" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "اضافه کردن توضیحات" msgid "Delete" msgstr "حذف" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "توضیحات" - #: models.py:23 msgid "Document" msgstr "سند" @@ -78,18 +76,17 @@ msgstr "حذف توضیحات" msgid "View comments" msgstr "بازبینی توضیحات" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "اضافه کردن توضیحات به سند: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "توضیحات سند %s" diff --git a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo index d741a32707a456641be412af7b8766340560fd6e..d53c60780ad0211365b806ee6159c9676421e719 100644 GIT binary patch delta 47 zcmeyt{eyc02Q#m^u7Rnpk%fYxsg;T4WKrfLJU)qe>7|M3sa6VUMU!tZM{jmu*}(_^ DPG}CM delta 47 zcmeyt{eyc02Q#mkuA!l>k+Fh-k(H_OWKrfLlbrI#kAr&=kb6>YX>*~th1 DQt%F; diff --git a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po index 08e93aff2c..dcb6591df4 100644 --- a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Thierry Schott , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Commentaires du document" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Date" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utilisateur" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commentaire" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commentaires" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Commentaire de document créé" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Commentaire de document supprimé" @@ -55,10 +57,6 @@ msgstr "Ajouter un commentaire" msgid "Delete" msgstr "Suppression" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commentaires" - #: models.py:23 msgid "Document" msgstr "Document" @@ -79,18 +77,17 @@ msgstr "Supprimer des commentaires" msgid "View comments" msgstr "Afficher les commentaires" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Ajouter un commentaire au document : %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Supprimer le commentaire : %s ?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Commentaires pour le document : %s" diff --git a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo index c7ea56a6c9b7caf0320f18126605ffba9aa98cfe..88723d8033b1834d3becfe901a84ab77ab5297e8 100644 GIT binary patch delta 46 zcmcc4cAafQB_pr7u7Rnpk%fYxsg;T47|M3sa6UZrIR(8q9;#eItBno Czz(SZ delta 46 zcmcc4cAafQB_pqyuA!l>k+Fh-k(H_O_#-N+(ZXIt~Cs CNe-j{ diff --git a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po index 4301236550..5269ffe71a 100644 --- a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Felhasználó" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Megjegyzés" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Megjegyzések" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Megjegyzések" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "hozzászólás törlése" msgid "View comments" msgstr "hozzászólás megtekintése" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Megjegyzés fűzése a %s dokumentumhoz." -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo index 55189323d8516f3ec28e5e9b90d64572e732ba1f..270b9ed13b024f9598140c4a29568352be05155b 100644 GIT binary patch delta 46 zcmX@Xc7km~B_pr7u7Rnpk%fYxsg;T47|M3sa6V^DU-FBq9;#c+6DkY C`wngZ delta 46 zcmX@Xc7km~B_pqyuA!l>k+Fh-k(H_O_#-QzlPj+719c C(GF<< diff --git a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po index 6f563c7f4a..6b52a26ff9 100644 --- a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Pengguna" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentar-komentar" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentar-komentar" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Hapus komentar-komentar" msgid "View comments" msgstr "Lihat komentar-komentar" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Menambah komentar ke dokumen: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo index f14546d0d4bbd7e1f774bd5dfec5dd8dda5b57de..797884faf4819154a878101a0878b662351ea785 100644 GIT binary patch delta 47 zcmbQwJ)e662Q#m^u7Rnpk%fYxsg;T4WKrh*JU)qe>7|M3sa6V^C6g~RM{l-fNnr#4 DElLfR delta 45 zcmbQwJ)e662Q#mkuA!l>k+Fh-k(H_OWKrh*lOHliarq?XrI#kAr&=j&wqQwT1OOEX B46*, 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 09:51+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Commenti documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utente" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commento" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commenti " + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Commento documento creato" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Commento documento cancellato" @@ -55,10 +57,6 @@ msgstr "Aggiungi commento" msgid "Delete" msgstr "Cancella" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commenti " - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Cancella commenti" msgid "View comments" msgstr "Visualizza commenti" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Aggiungi un comento al documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Cancellare il commento: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Commenti al documento: %s" diff --git a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo index a9d56e03edc74afee9c5f0c5f9606b7f7324f155..6d7550e31b4ff09b98b173404e221abcc8cf4d34 100644 GIT binary patch delta 50 zcmaFE`G#{t6%((yu7Rnpk%fYxsg;T47|M3sa6VkIq`lzlS7!JH}7ZG GWds0|%n#!L delta 50 zcmaFE`G#{t6%((SuA!l>k+Fh-k(H_O_&8a^n4bHt%EB GV*~(^un*w? diff --git a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po index 8faa889e6c..9898ec7c5c 100644 --- a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-10-28 12:44+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Documentopmerkingen" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Gebruiker" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commentaar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commentaar" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -55,10 +57,6 @@ msgstr "Voeg opmerking toe" msgid "Delete" msgstr "Verwijder" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commentaar" - #: models.py:23 msgid "Document" msgstr "Document" @@ -79,18 +77,17 @@ msgstr "Verwijderen van commentaar" msgid "View comments" msgstr "Bekijk commentaar" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Opmerking toevoegen aan document: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Verwijder opmerking: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Opmerkingen voor document: %s" diff --git a/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo index 8b127d81dd3fae0794f867ac487ba5dc3b07525d..7f61224d41250fc95d662e9841a770a95a7a3c24 100644 GIT binary patch delta 47 zcmey${grzI2Q#m^u7Rnpk%fYxsg;T4WKre=JU)qe>7|M3sa6UFIg_t2M{l-a*~th1 DO#BX+ delta 47 zcmey${grzI2Q#mkuA!l>k+Fh-k(H_OWKre=lOHih@%SX>rI#kAr&=i#, 2016 @@ -9,41 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Komentarze dokumentu" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Użytkownik" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentarz" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentarze" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Dokument został skomentowany" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Komentarz do dokumentu został usunięty" @@ -55,10 +58,6 @@ msgstr "Dodaj komentarz" msgid "Delete" msgstr "Usuń" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentarze" - #: models.py:23 msgid "Document" msgstr "Dokument" @@ -79,18 +78,17 @@ msgstr "Usuwaj komentarze" msgid "View comments" msgstr "Przeglądaj komentarze" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodanie komentarza do dokumentu: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Usunąć komentarz: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Komentarze do dokumentu: %s" diff --git a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo index e6415211864e33a4fb80f833de588746b4c9f29c..3bd15c0167435dd824a98e98a76ce7f26656a875 100644 GIT binary patch delta 46 zcmeBT?_%GumXX(7*T7WQ$U?!;)XKzi@-D`uJU)qe>7|M3sa6UFC6nWrq9-3?IsyPZ Crw-`= delta 45 zcmeBT?_%GumXX&?*U(Vc$XLO^$ja1s@-D`ulXIA&xP21y(n}N5Q>_#VCLdus1^_G` B4sQSe diff --git a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po index 71167c7c84..789e80e123 100644 --- a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utilizador" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentário" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentários" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentários" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Excluir comentários" msgid "View comments" msgstr "Ver comentários" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adicionar comentário ao documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo index f5d30f8963db9a204b24a07e3ee653ad5b739195..6fa5262fcb4d27260c32f4eff2693fce1aeaae56 100644 GIT binary patch delta 50 zcmcb}eUW7|M3sa6UFCGk!{lkYP}Z}wto GX9NIkBo9FV delta 50 zcmcb}eUWk+Fh-k(H_OWKrhRlRq#=@%tp^rI#kAr&=i#l*Bs)ZT4j8 GU<3ejs1H8? diff --git a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po index 23ae98d96a..16a42fbccc 100644 --- a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 22:54+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Comentários de documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Usuário" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentário" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentários" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Comentário de documento criado" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Comentário de documento apagado" @@ -55,10 +57,6 @@ msgstr "Adicionar comentário" msgid "Delete" msgstr "Excluir" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentários" - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Excluir comentários" msgid "View comments" msgstr "Ver comentários" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adicionar comentário ao documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Apagar comentário: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Comentário para documento: %s" diff --git a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo index b00cd1e8b82505d3c8ba9ac49c85dfab69a0df90..8d08a9e8834e0f13e9a787537e86c1752dfb5400 100644 GIT binary patch delta 49 zcmdnVzLR~!T1H-TT?12HBMSvXQ!5k8$-5Xg@cSg@rI#kAr&=i#<;Ms4PtIhDo_vMr FDFA$&5R3o- delta 49 zcmdnVzLR~!T1H+oT|+}%BVz>vBP&zm$-5XgOs-;z;`d3+OD|1KPqk7g%8w87pM06= F8322V5Q+c* diff --git a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po index 56513d1ea0..3d475cecdd 100644 --- a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-17 09:39+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "utilizator" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentariu" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentarii" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentarii" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "Ștergeți comentarii" msgid "View comments" msgstr "Vezi comentariile" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adaugă comentariu la document:% s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo index b7711739079d0290be88b9cdb78a30847a77e410..37c7a67fdd8d03dad73cb6cdfd6b1c055b048ea6 100644 GIT binary patch delta 47 zcmcb>cY$vM2Q#m^u7Rnpk%fYxsg;T4WKrh1JU)qe>7|M3sa6U_rIR-@M{ky7F=qw< DJ7W!Z delta 47 zcmcb>cY$vM2Q#mkuA!l>k+Fh-k(H_OWKrh1llL=6@%SX>rI#kAr&=i#m2Q?`v0w%O DJ+uvS diff --git a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po index 383a39376d..39e6874af7 100644 --- a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,41 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-14 01:35+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Комментарии документа" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Дата" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Пользователь" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Комментарий" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Комментарии" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Комментарий документа создан" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Комментарий документа удалён" @@ -55,10 +59,6 @@ msgstr "Добавить комментарий" msgid "Delete" msgstr "Удалить" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Комментарии" - #: models.py:23 msgid "Document" msgstr "Документ" @@ -79,18 +79,17 @@ msgstr "Удалить комментарии" msgid "View comments" msgstr "Просмотр комментариев" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Добавить комментарий на документ: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Удалить комментарий: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Комментарии для документа: %s" diff --git a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo index 32a7002e5bb03a1f3fbcfce924080397c8fd0576..c45d13e748cd918184a5fb1e92bbf391a7fa8948 100644 GIT binary patch delta 299 zcmcb^_K&Upo)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~};>f%qg4vjg!{AO@*@3&g@e{0)ft zftZUCA}$4_d4YUoAbkah4S^VBE*mpMUKvPp0r@&WTAYEwj=>zr02$;DRges%1%dn= zAPv+D1}s356^Pk@7-Tt63JlmMu8rkz$xklLP0cHr%*hzdYp!cxs%vDSU}$P(VmY~x zQ5qy-qHAQVU}$D#Vmx^!V;8?qVqSV_VtT5TLUB%fu;*kYrs&DNOnaqW^0UDPF$CnN S=cHySWaop7O)SbvWdHyu!7cUx delta 265 zcmeyzc89J0o)F7a1|VPuVi_O~0b*_-?g3&D*a5`SK)e%(L29l7F$WOe1!7?!eg?$+ zK>Q1cd4ZUVk%8d~5K90t$h@~q5cOQlKsg{^7)Xl)X*nPb)UU^224n~V1-yVXP!AZe z07+ILW&>i7r9deNn7B7~vNB^7ubHl)p{|j!f`O5hsqy44Mrojkfw8WUp@Na2m4W5t zO^jWWeVC&7eG>E1OB2&mtrUuL;)6XWFJ;;%6p){ulbWTFou8YUSCUwimC67BazZEX diff --git a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po index 9f8c03b55d..8d1970e3c7 100644 --- a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentarji" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,13 +57,9 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentarji" - #: models.py:23 msgid "Document" -msgstr "" +msgstr "Dokument" #: models.py:33 msgid "Date time submitted" @@ -78,18 +77,17 @@ msgstr "Izbriši komentarje" msgid "View comments" msgstr "Poglej komentarje" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodaj komentar datotekei: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo index 8d4550d6def1d8eb892ab166ae0d16129c3e9914..3f99f7af7ccd1d2f306b741b89854f3d1bfc3b36 100644 GIT binary patch delta 49 zcmey!_K|JFG)7)?T?12HBMSvXQ!5k8$%`2`^ZO*`rI#kAr&=kLWyXj3O%7#>o_v65 FBLIpw5Oe?l delta 49 zcmey!_K|JFG)7)CT|+}%BVz>vBP&zm$%`2`PflZs;`d3+OD|1KPqk7g%Zv~6o4lWC F699+d5OM$j diff --git a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po index 79b52a7022..b391404ed4 100644 --- a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Ngày" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Người dùng" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Chú thích" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Chú thích" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Chú thích" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Xóa chú thích" msgid "View comments" msgstr "Xem chú thích" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Thêm chú thích cho tài liệu: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo index a59929dd9a33d673c2175365ce2835853ed7cac4..9b10404d5876363b6e0bb76dec34e7a22a0bf415 100644 GIT binary patch delta 49 zcmdnXwwGX delta 49 zcmdnXwwGvBP&zm$%`4+PEKHo;`d3+OD|1KPqk90%7}ONo4k{$ F1psoZ54r#V diff --git a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po index 447c47680c..5151d44697 100644 --- a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "日期" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "用户" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "评论" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "评论" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "评论" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "删除评论" msgid "View comments" msgstr "查看评论" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "添加评论到文档:%s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/serializers.py b/mayan/apps/document_comments/serializers.py new file mode 100644 index 0000000000..4090cdadfd --- /dev/null +++ b/mayan/apps/document_comments/serializers.py @@ -0,0 +1,71 @@ +from __future__ import unicode_literals + +from rest_framework import serializers +from rest_framework.reverse import reverse + +from documents.serializers import DocumentSerializer +from user_management.serializers import UserSerializer + +from .models import Comment + + +class CommentSerializer(serializers.HyperlinkedModelSerializer): + document = DocumentSerializer(read_only=True) + document_comments_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'document', 'document_comments_url', 'id', + 'submit_date', 'url', 'user' + ) + model = Comment + + def get_document_comments_url(self, instance): + return reverse( + 'rest_api:comment-list', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:comment-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableCommentSerializer(serializers.ModelSerializer): + document = DocumentSerializer(read_only=True) + document_comments_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'document', 'document_comments_url', 'id', + 'submit_date', 'url', 'user' + ) + model = Comment + read_only_fields = ('document',) + + def create(self, validated_data): + validated_data['document'] = self.context['document'] + validated_data['user'] = self.context['request'].user + return super(WritableCommentSerializer, self).create(validated_data) + + def get_document_comments_url(self, instance): + return reverse( + 'rest_api:comment-list', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:comment-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) diff --git a/mayan/apps/document_comments/tests/__init__.py b/mayan/apps/document_comments/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/document_comments/tests/literals.py b/mayan/apps/document_comments/tests/literals.py new file mode 100644 index 0000000000..489cba38be --- /dev/null +++ b/mayan/apps/document_comments/tests/literals.py @@ -0,0 +1,3 @@ +from __future__ import unicode_literals + +TEST_COMMENT_TEXT = 'test comment text' diff --git a/mayan/apps/document_comments/tests/test_api.py b/mayan/apps/document_comments/tests/test_api.py new file mode 100644 index 0000000000..72dd645028 --- /dev/null +++ b/mayan/apps/document_comments/tests/test_api.py @@ -0,0 +1,97 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Comment + +from .literals import TEST_COMMENT_TEXT + + +@override_settings(OCR_AUTO_OCR=False) +class CommentAPITestCase(APITestCase): + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + + def _create_comment(self): + return self.document.comments.create( + comment=TEST_COMMENT_TEXT, user=self.admin_user + ) + + def test_comment_create_view(self): + response = self.client.post( + reverse( + 'rest_api:comment-list', args=(self.document.pk,) + ), { + 'comment': TEST_COMMENT_TEXT + } + ) + + self.assertEqual(response.status_code, 201) + comment = Comment.objects.first() + self.assertEqual(Comment.objects.count(), 1) + self.assertEqual(response.data['id'], comment.pk) + + def test_comment_delete_view(self): + comment = self._create_comment() + + self.client.delete( + reverse( + 'rest_api:comment-detail', args=(self.document.pk, comment.pk,) + ) + ) + + self.assertEqual(Comment.objects.count(), 0) + + def test_comment_detail_view(self): + comment = self._create_comment() + + response = self.client.get( + reverse( + 'rest_api:comment-detail', args=(self.document.pk, comment.pk,) + ) + ) + + self.assertEqual(response.data['comment'], comment.comment) + + def test_comment_list_view(self): + comment = self._create_comment() + + response = self.client.get( + reverse('rest_api:comment-list', args=(self.document.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['comment'], comment.comment + ) diff --git a/mayan/apps/document_comments/urls.py b/mayan/apps/document_comments/urls.py index ddb4659ef2..b46f295399 100644 --- a/mayan/apps/document_comments/urls.py +++ b/mayan/apps/document_comments/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APICommentListView, APICommentView from .views import ( DocumentCommentCreateView, DocumentCommentDeleteView, DocumentCommentListView @@ -21,3 +22,14 @@ urlpatterns = [ DocumentCommentListView.as_view(), name='comments_for_document' ), ] + +api_urls = [ + url( + r'^document/(?P[0-9]+)/comments/$', + APICommentListView.as_view(), name='comment-list' + ), + url( + r'^document/(?P[0-9]+)/comments/(?P[0-9]+)/$', + APICommentView.as_view(), name='comment-detail' + ), +] diff --git a/mayan/apps/document_indexing/api_views.py b/mayan/apps/document_indexing/api_views.py index 02126ccd5d..9ff6774804 100644 --- a/mayan/apps/document_indexing/api_views.py +++ b/mayan/apps/document_indexing/api_views.py @@ -175,4 +175,4 @@ class APIDocumentIndexListView(generics.ListAPIView): obj=document ) - return document.node_instances.all() + return document.index_instance_nodes.all() diff --git a/mayan/apps/document_indexing/apps.py b/mayan/apps/document_indexing/apps.py index 2e95e0c807..278e6dd403 100644 --- a/mayan/apps/document_indexing/apps.py +++ b/mayan/apps/document_indexing/apps.py @@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals from kombu import Exchange, Queue from django.apps import apps -from django.db.models.signals import post_save, post_delete +from django.db.models.signals import post_delete, pre_delete from django.utils.translation import ugettext_lazy as _ from acls import ModelPermission @@ -21,9 +21,8 @@ from navigation import SourceColumn from rest_api.classes import APIEndPoint from .handlers import ( - document_created_index_update, create_default_document_index, - document_index_delete, document_metadata_index_update, - document_metadata_index_post_delete + create_default_document_index, handler_delete_empty, + handler_index_document, handler_remove_document ) from .links import ( link_document_index_list, link_index_main_menu, link_index_setup, @@ -44,8 +43,8 @@ from .widgets import get_instance_link, index_instance_item_link, node_level class DocumentIndexingApp(MayanAppConfig): app_namespace = 'indexing' app_url = 'indexing' + has_tests = True name = 'document_indexing' - test = True verbose_name = _('Document indexing') def ready(self): @@ -59,10 +58,6 @@ class DocumentIndexingApp(MayanAppConfig): app_label='documents', model_name='DocumentType' ) - DocumentMetadata = apps.get_model( - app_label='metadata', model_name='DocumentMetadata' - ) - DocumentIndexInstanceNode = self.get_model('DocumentIndexInstanceNode') Index = self.get_model('Index') @@ -145,13 +140,16 @@ class DocumentIndexingApp(MayanAppConfig): app.conf.CELERY_ROUTES.update( { - 'document_indexing.tasks.task_delete_empty_index_nodes': { + 'document_indexing.tasks.task_delete_empty': { + 'queue': 'indexing' + }, + 'document_indexing.tasks.task_remove_document': { 'queue': 'indexing' }, 'document_indexing.tasks.task_index_document': { 'queue': 'indexing' }, - 'document_indexing.tasks.task_do_rebuild_all_indexes': { + 'document_indexing.tasks.task_rebuild_index': { 'queue': 'tools' }, } @@ -185,24 +183,18 @@ class DocumentIndexingApp(MayanAppConfig): menu_tools.bind_links(links=(link_rebuild_index_instances,)) post_delete.connect( - document_index_delete, dispatch_uid='document_index_delete', + handler_delete_empty, dispatch_uid='handler_delete_empty', sender=Document ) - post_delete.connect( - document_metadata_index_post_delete, - dispatch_uid='document_metadata_index_post_delete', - sender=DocumentMetadata + pre_delete.connect( + handler_remove_document, dispatch_uid='handler_remove_document', + sender=Document ) post_document_created.connect( - document_created_index_update, - dispatch_uid='document_created_index_update', sender=Document + handler_index_document, + dispatch_uid='handler_index_document', sender=Document ) post_initial_document_type.connect( create_default_document_index, dispatch_uid='create_default_document_index', sender=DocumentType ) - post_save.connect( - document_metadata_index_update, - dispatch_uid='document_metadata_index_update', - sender=DocumentMetadata - ) diff --git a/mayan/apps/document_indexing/forms.py b/mayan/apps/document_indexing/forms.py index aa8acf3ade..8bdf0dd1b7 100644 --- a/mayan/apps/document_indexing/forms.py +++ b/mayan/apps/document_indexing/forms.py @@ -1,11 +1,20 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django import forms +from django.utils.translation import ugettext_lazy as _ from common.classes import ModelAttribute from documents.models import Document -from .models import IndexTemplateNode +from .models import Index, IndexTemplateNode + + +class IndexListForm(forms.Form): + indexes = forms.ModelMultipleChoiceField( + help_text=_('Indexes to be queued for rebuilding.'), + label=_('Indexes'), queryset=Index.objects.filter(enabled=True), + required=False, widget=forms.widgets.CheckboxSelectMultiple() + ) class IndexTemplateNodeForm(forms.ModelForm): @@ -19,7 +28,9 @@ class IndexTemplateNodeForm(forms.ModelForm): self.fields['expression'].help_text = ' '.join( [ unicode(self.fields['expression'].help_text), - ModelAttribute.help_text_for(Document, type_names=['indexing']) + ModelAttribute.help_text_for( + Document, type_names=['indexing'] + ).replace('\n', '
            ') ] ) diff --git a/mayan/apps/document_indexing/handlers.py b/mayan/apps/document_indexing/handlers.py index 175fbfcd39..d0e185cf64 100644 --- a/mayan/apps/document_indexing/handlers.py +++ b/mayan/apps/document_indexing/handlers.py @@ -3,7 +3,9 @@ from __future__ import unicode_literals from django.apps import apps from django.utils.translation import ugettext_lazy as _ -from .tasks import task_delete_empty_index_nodes, task_index_document +from .tasks import ( + task_delete_empty, task_index_document, task_remove_document +) def create_default_document_index(sender, **kwargs): @@ -31,23 +33,17 @@ def create_default_document_index(sender, **kwargs): ) -def document_created_index_update(sender, **kwargs): +def handler_delete_empty(sender, **kwargs): + task_delete_empty.apply_async() + + +def handler_index_document(sender, **kwargs): task_index_document.apply_async( kwargs=dict(document_id=kwargs['instance'].pk) ) -def document_index_delete(sender, **kwargs): - task_delete_empty_index_nodes.apply_async() - - -def document_metadata_index_update(sender, **kwargs): - task_index_document.apply_async( - kwargs=dict(document_id=kwargs['instance'].document.pk) - ) - - -def document_metadata_index_post_delete(sender, **kwargs): - task_index_document.apply_async( - kwargs=dict(document_id=kwargs['instance'].document.pk) +def handler_remove_document(sender, **kwargs): + task_remove_document.apply_async( + kwargs=dict(document_id=kwargs['instance'].pk) ) diff --git a/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo index ee0bee68944ea82f04630cfe105619f0100081b1..021f1e0ea5bffa7edf000859d72845882cb164aa 100644 GIT binary patch delta 494 zcmX}oJ4nM&6vpwJM~&9lsvt&m=;mTDsSTze`^WA>r?{lr^Ve?E;L-YiFNsrP~8b8ztF5@XK z;R9}?qboIz$0++RFv1S@;X9i6g(IjNO6AZ&3n#Hxsg{~%Asa( z1gY>+f}EoSc|{4b+VdMEK?!n%GVmI+c!%=6r@!ZKXfa=XvLJ~vh}DlaN)QL-xsP%% zLUMGAi~S6cGje08JT1fIoRs{lgS1@ezXn)v7iH6?Y-GN&+E-dfOK+{Q^v2iK@e=jR!|EoTPv;npBQ}t4>|K2cEg-+=OOadbM)LFK2=mdJwjLMQF^|Kg*wM2 zyud~L#4LItrJ`8HLA=8hzG6E@9i_rJjsrM>5%jPXSFug0BelUs{umU`T^16l9Cl(E zJv>GUbklhMgmS{VN!A, 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: admin.py:24 msgid "None" msgstr "لا شيء" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexes" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Deletes and creates from scratch all the document indexes." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,97 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Causes this index to be visible and updated when document data changes." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Causes this index to be visible and updated when document data changes." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Check this option to have this node act as a container for documents and not as a parent for further nodes." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "قيمة" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "الوثائق" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +220,74 @@ msgstr "View document indexes" msgid "Rebuild document indexes" msgstr "Rebuild document indexes" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "On large databases this operation may take some time to execute." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +349,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +390,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo index 82a948632ab239d407fef580d478cd3b3f0e53bc..b8308ffee6dc0fb579b6e91a7b02529b592e2a72 100644 GIT binary patch delta 365 zcmX@leT%dHo)F7a1|Z-9Vi_RL0b*Vt-UGxS@BxV3f%qd3TLG~pBLf2`kS+nzEI_&r zNb>>dW+2TDq$dGs4j?@XD!&*=vjX`mfOJ0)uLI(>K)xL_&{awJGS6A%Nf0DBNf zF)%nMmKLWLE0knp7As^Ami5XILYKx{|Bc0olkDQJ)`IomNoSGhn+0}6r)x^-ANClVXwHVC9h1_}zA z2pzPs5Cs*IadP+!@mWe53MA%=G!*nm{0C|B_Atz8?zcPp=FRTU+>b){S2_DuAPUIK zNR2EZzavc)Q$nnOCC~xyfjRIEm<9L1Iq*Gr0UUrc;Fsz7G1$QV8+Z=PrG?nV`XcyI zh_2{m{tmqbw=x7r;3e<`G{%3XJe}6_a4`esK_9#d7QqOFZxZnSA7~Tjk>=7Em0ZGH zG>@Dy&o(bl;`Q%IW3^2ia;v52fz+}oJ>`*JcRlJnQd?5Hoi=UCr=;aWMP6r9k#^0m zL+XiI+tzBq|B$*{zh+e`R<%ZU)v4Dkd&#!*w^yw@>apv=!MY)}a;R!optG&&b+VV8 zTFqZf@AzT*{_IWJZf(mJB+b@-DKkoSd+{?4iT63;uN?59*?i(Y56$8Li!r{C;ursF z5l=WkQ$K#mVZ2LdiTE=IiJCZqa-0~U62fKx_4A|{5f9L4hTv?-eF(0AllT>8n, 2012 @@ -9,67 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Няма" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Индекси" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +93,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Изтриване и създаване от нулата на всички индекси за документа." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +101,96 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Предизвиква този индекс да бъдат видим и актуализиран, когато данните в " +"документа се променят." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Предизвиква този индекс да бъдат видим и актуализиран, когато данните в документа се променят." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Стойност" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Документи" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +218,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "При големи бази данни тази операция може да отнеме известно време за изпълнение." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +347,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +388,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo index 04b1e5f48383cb37f0caf0d031292d260cbd23f4..b54c86ed5cff0d61f5c11ee886a479fab1244f87 100644 GIT binary patch delta 493 zcmX}oJxjw-6oBE|HZ@v5QUx`rU>9*QG>t8`0SBw-B2)xLup$*gTZ9T$9W8=_&Ot|U z5I3hf)YX6BA8>ap1s4%~PtYDXd2a4U&OLdFUm1;$5$#qH!{ikCNRE?pAs)mvuHg-? z;yWIq8CGf%FH!bCpo=Z+!wzcrgQFOZC^dv8>NtzNN;OoHfo#m8iHjJ;ZIpvW{G#YF z?(kk^aSPwjL$gPzX*|aXyvHQIqFm$?rC{f8{Tt;XV@&GQS2GL-n6QEgxcpd+jeZDU~PJ5)q3@)X04P?JU8LksqVgO<3@GV}!UA%}Hs@%j;)P|m*7Jk8``2`%H zzG)vN-eVt$wWIwfoMOL@dSDOFVjpemO^qP^bZ?HD-O%$ILx*&KOqbdK7jqJWtg;NR zz@#5Nj&sKgq+a(1^x8D2XZkl+Q{PjS>AEc2M$O5BO>EW1E|z4`k0n}h4V(B;T|)a> z5*s*)qtHp>>lBH5<>s4-yU`i<-u2(fkB#MvB`Flkw@aO$UQVAB^2K{nxLYpW>g;=K zosa3~*+;fsYucJCOEsRmKe72YJ<~Jw*h, 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: admin.py:24 msgid "None" msgstr "Nijedno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indeksi" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Briše i nanovo kreira indekse svih dokumenata." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Uzrokuje da će ovaj indeks biti vidljiv i update-ovan kad se promjene podaci " +"dokumenta." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Uzrokuje da će ovaj nod biti vidljiv i update-ovan kad se promjene podaci " +"dokumenta." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Označite ovu opciju da ovaj nod služi kao kontejner za dokumente a ne kao " +"parent za buduće nodove." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Uzrokuje da će ovaj indeks biti vidljiv i update-ovan kad se promjene podaci dokumenta." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Uzrokuje da će ovaj nod biti vidljiv i update-ovan kad se promjene podaci dokumenta." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Označite ovu opciju da ovaj nod služi kao kontejner za dokumente a ne kao parent za buduće nodove." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Vrijednost" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenti" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +223,74 @@ msgstr "Pregledaj indekse dokumenata" msgid "Rebuild document indexes" msgstr " Obnovi indekse dokumenata" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Na velikim bazama podataka ove operacije mogu potrajati neko vrijeme." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo index 1aff61ff6c8b2c5765a1d4b4eb8aabc281f3f222..0accd566f1eece96307c8cff35548235000c2014 100644 GIT binary patch delta 195 zcmcc4x`(Cyo)F7a1|VPoVi_Q|0b*7ljsap2C;(zkAT9)AJ|M0JVvyP{AnsvgVCVm*%GCl@v30=B1=goGvi&g%7W}u7Rnp wk%fYxsg;T4WJgA6gove;vC-sA#!4Qa#Ju#<#Pn1vg_Oj}4;iB;douX|0K(ZHGXMYp delta 356 zcmYk$u}Z^G6b9g=riw*GoE;ACx7;LFB~z7-mKI01qdCUVG?C;+?4+ZDC?(Vf5X4t- zaO*?3IlK7^{?S1XeD`1edpK{-d-LjJ-I-aKCTu_tmLP$8ZeSU1VHGNH;0e0$0(Z7$ zeIi>>Hhz28$a?1kat}E}qGl~XJ@pRE;!mkD9dC9ADJ7goLLnPI=0XZGXK_K=r}N%d$StsHO~l^mfGa`k2R_lNUmDomFD-IUXaQwk+b<=bNK^RDXa8VKyii^mom`wzNRDugz zyqXpT1w{l_i(Djuix_MbSP?{EZXzOyR?(`#zQ20aWA6LBd*6NcoOkY;x>F!mGQo^Vm339Q1)SSjkkD)i$v)csD^epKKgw?Bbe_$I0ncTovG!yvvwLf8+~ zIxDC+CHY8v+n@`qK?M%Fwz~G9-t3U;0BTE)qY_NI43IPLvg*AP!XrhgHY`Bt*iLUB~!1Zu0!Vi8WE-t;z>;{$BOGzM@P zn=yl$ANEs!?QIvU$$r$rCpjsha~Q%Yq-ypQN#35L0>4Bh_60X#1~o6p>M3l-L41Ll z*FX?eAd2K*UB%R&XY3#Y%4iTZaTFDJ9QoNaC++c^+n>j^^xt6wzamAnI$l%bO{hxr zpc3vw1s*_^eh`(w`7thd*2Yl_TtiK~gVlH+^-;|ue+*khE%*_e@f+&7YO+?zx1he2 zUblY$*7fK6u|KpaQFy@lt2P1UlT%UE>0XfA;f{2poEVC0zs)NT140J;H>PdBkwK+ zwURFp7sLTsRESSi6oEK!2}Od60|aq_Uf=-gflG_piUTbts-lYj3o9(|{$|E+=e?QP zY_@h&dFIQ`?e z1W)5!yn%e>9=ApK0NX^W@*9n224>C_$>1{7LcYKi7~*_9iSzI>YWxjci4So$zQh>* z8~y%2YW%`kBCXhl49O6V;||O?=GCVql?bbsIn7-LXZ-i#mOa$Jpl*o0pPOPJ@P*Cm8aaapg*x4 zV+6CSl0X(Iy{L&dq84@lKSm!l?hJm9mvBF>BZmlcwas2jUq5SV1F`I~K3e)8f`1NE`@;+H{?lDM7b`dGsD;s;*4u^s5 zkli*Hx~05vN+siZdB*+h#Fq{6x}G(OuC7EXZIY=>Pdbt8P9__6?M&>phg_d|6N64* zGbWYnA}*Ootu@KsOuD;vcFxgSD!#9AyW&I2Kbmc8so6JD~ diff --git a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po index 26cf2c0e75..5433d8d322 100644 --- a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 @@ -13,67 +13,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Keine" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Dokumententypen" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Dokumentenindices" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Bezeichner" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Abkürzung" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Elemente" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Stufe" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Dokument verknüpft" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Knotenpunkt" -#: handlers.py:18 -msgid "Creation date" -msgstr "Erstellungsdatum" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Erstellungsdatum" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Index erstellen" @@ -93,7 +97,7 @@ msgstr "Baumvorlage" msgid "Deletes and creates from scratch all the document indexes." msgstr "Löscht und erstellt alle Dokumentenindices neu" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Indices wiederaufbauen" @@ -101,96 +105,106 @@ msgstr "Indices wiederaufbauen" msgid "New child node" msgstr "Neuer Unterknoten" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "Interner Name um diesen Index zu identifizieren" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert " +"werden." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Index" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Index-Instanzen" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-" +"Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Indexierungsausdruck" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert " +"werden." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Wählen Sie diese Option, wenn Dokumente in diesem Knoten dargestellt werden " +"sollen (und dieser Knoten nicht als Eltern-Knoten für weitere Kind-" +"Knotenpunkte fungieren soll)." + +#: models.py:173 +msgid "Link documents" +msgstr "Dokumente verknüpfen" + +#: models.py:178 +msgid "Root" +msgstr "Wurzel" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Fehler bei der Indexierung von Dokument %(document)s; Ausdruck: %(expression)s; %(exception)s" +msgstr "" +"Fehler bei der Indexierung von Dokument %(document)s; Ausdruck: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Interner Name um diesen Index zu identifizieren" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert werden." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Index" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Index-Instanzen" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Indexierungsausdruck" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert werden." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Wählen Sie diese Option, wenn Dokumente in diesem Knoten dargestellt werden sollen (und dieser Knoten nicht als Eltern-Knoten für weitere Kind-Knotenpunkte fungieren soll)." - -#: models.py:134 -msgid "Link documents" -msgstr "Dokumente verknüpfen" - -#: models.py:139 -msgid "Root" -msgstr "Wurzel" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Index Knotenvorlage" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Index Knotenvorlagen" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Index Knotenpunkt" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Wert" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumente" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Indexknotenpunkt" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Indexknotenpunkte" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Indexknotenpunkt" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Indexknotenpunkte" @@ -218,77 +232,74 @@ msgstr "Dokumentenindices anzeigen" msgid "Rebuild document indexes" msgstr "Dokumentenindices neu aufbauen" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Index %s löschen?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Index %s bearbeiten" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Verknüpfte Dokumententypen" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Mit Index %s verknüpfte Dokumententypen" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Baumvorlagen für Index %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Unterknotenpunkt von %s erstellen" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Indexvorlagen-Knotenpunkt %s löschen?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Indexvorlagen-Knotenpunkt %s bearbeiten" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigation: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Inhalt von Index %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Knotenpunkte der Indices, die Dokumente enthalten: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Alle Indices neu aufbauen?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Indexwiederaufbau erfolgreich eingereiht" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -350,9 +361,11 @@ msgstr "Indexwiederaufbau erfolgreich eingereiht" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -389,11 +402,11 @@ msgstr "Indexwiederaufbau erfolgreich eingereiht" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo index 097ad6810ad481aceef42e42badaa236a29eac93..ed06b7fb82468125064cbaa0f2deaee9405ede98 100644 GIT binary patch delta 303 zcmX@iyOF2?%;E-bT1f})W{W?C11phX9=-|K5k+U zTlk90Shs~(z-^4wtM4 zE86YIGu1uO@>pf+P^CJR*=d~0MK)-sFDCz1M6A6;a6^)|Qr X?s~)b8$nZgLAcf&hR(bFALn|%jQ&u4 diff --git a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po index 8a2bde3c51..91b34678d6 100644 --- a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -22,7 +22,7 @@ msgstr "" msgid "None" msgstr "" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 #, fuzzy msgid "Document types" msgstr "document types" @@ -33,49 +33,53 @@ msgstr "document types" msgid "Document indexing" msgstr "document indexes" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 #, fuzzy msgid "Enabled" msgstr "enabled" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 #, fuzzy msgid "Items" msgstr "items" -#: apps.py:144 +#: apps.py:104 #, fuzzy msgid "Level" msgstr "level" -#: apps.py:152 +#: apps.py:112 #, fuzzy msgid "Has document links?" msgstr "has document links?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" + +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 +msgid "Indexes" +msgstr "Indexes" + +#: handlers.py:20 #, fuzzy msgid "Creation date" msgstr "create index" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 -msgid "Indexes" -msgstr "Indexes" - -#: links.py:31 views.py:36 +#: links.py:31 views.py:34 #, fuzzy msgid "Create index" msgstr "create index" @@ -98,7 +102,7 @@ msgstr "tree template" msgid "Deletes and creates from scratch all the document indexes." msgstr "Deletes and creates from scratch all the document indexes." -#: links.py:57 +#: links.py:57 views.py:319 #, fuzzy msgid "Rebuild indexes" msgstr "rebuild indexes" @@ -108,7 +112,65 @@ msgstr "rebuild indexes" msgid "New child node" msgstr "new child node" -#: managers.py:56 +#: models.py:37 +#, fuzzy +#| msgid "Internal name used to reference this index." +msgid "This values will be used by other apps to reference this index." +msgstr "Internal name used to reference this index." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Causes this index to be visible and updated when document data changes." + +#: models.py:117 models.py:149 +#, fuzzy +msgid "Index" +msgstr "Indexes" + +#: models.py:136 +#, fuzzy +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +#, fuzzy +msgid "Index instances" +msgstr "index instance" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +#, fuzzy +msgid "Indexing expression" +msgstr "indexing expression" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +#, fuzzy +msgid "Link documents" +msgstr "link documents" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, fuzzy, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " @@ -116,105 +178,47 @@ msgid "" msgstr "" "Error updating document index, expression: %(expression)s; %(exception)s" -#: models.py:29 -#, fuzzy -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Internal name used to reference this index." - -#: models.py:35 -msgid "Causes this index to be visible and updated when document data changes." -msgstr "" -"Causes this index to be visible and updated when document data changes." - -#: models.py:82 models.py:109 -#, fuzzy -msgid "Index" -msgstr "Indexes" - -#: models.py:101 -#, fuzzy -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -#, fuzzy -msgid "Index instances" -msgstr "index instance" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -#, fuzzy -msgid "Indexing expression" -msgstr "indexing expression" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not " -"as a parent for further nodes." -msgstr "" -"Check this option to have this node act as a container for documents and not " -"as a parent for further nodes." - -#: models.py:134 -#, fuzzy -msgid "Link documents" -msgstr "link documents" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 #, fuzzy msgid "Index node template" msgstr "index template node" -#: models.py:145 +#: models.py:262 #, fuzzy msgid "Indexes node template" msgstr "indexes template nodes" -#: models.py:153 +#: models.py:270 #, fuzzy msgid "Index template node" msgstr "index template node" -#: models.py:156 +#: models.py:273 #, fuzzy msgid "Value" msgstr "value" -#: models.py:159 +#: models.py:277 #, fuzzy msgid "Documents" msgstr "documents" -#: models.py:204 +#: models.py:363 #, fuzzy msgid "Index node instance" msgstr "index instance" -#: models.py:205 +#: models.py:364 #, fuzzy msgid "Indexes node instances" msgstr "index instance" -#: models.py:213 +#: models.py:372 #, fuzzy msgid "Document index node instance" msgstr "index instance" -#: models.py:214 +#: models.py:373 #, fuzzy msgid "Document indexes node instances" msgstr "index instance" @@ -243,81 +247,79 @@ msgstr "View document indexes" msgid "Rebuild document indexes" msgstr "Rebuild document indexes" -#: views.py:51 +#: views.py:49 #, fuzzy, python-format #| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Delete document indexes" -#: views.py:64 +#: views.py:62 #, fuzzy, python-format msgid "Edit index: %s" msgstr "edit index: %s" -#: views.py:81 +#: views.py:79 #, fuzzy msgid "Available document types" msgstr "document types" -#: views.py:83 +#: views.py:81 #, fuzzy msgid "Document types linked" msgstr "document types" -#: views.py:106 +#: views.py:96 #, fuzzy, python-format msgid "Document types linked to index: %s" msgstr "document types for index: %s" -#: views.py:145 +#: views.py:135 #, fuzzy, python-format msgid "Tree template nodes for index: %s" msgstr "tree template nodes for index: %s" -#: views.py:172 +#: views.py:157 #, fuzzy, python-format msgid "Create child node of: %s" msgstr "create child node" -#: views.py:196 +#: views.py:181 #, fuzzy, python-format msgid "Delete the index template node: %s?" msgstr "edit index template node: %s" -#: views.py:218 +#: views.py:203 #, fuzzy, python-format msgid "Edit the index template node: %s?" msgstr "edit index template node: %s" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, fuzzy, python-format msgid "Contents for index: %s" msgstr "contents for index: %s" -#: views.py:331 +#: views.py:309 #, fuzzy, python-format msgid "Indexes nodes containing document: %s" msgstr "indexes containing: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "On large databases this operation may take some time to execute." - -#: views.py:342 -#, fuzzy -msgid "Rebuild all indexes?" -msgstr "rebuild indexes" - -#: views.py:351 +#: views.py:328 #, fuzzy msgid "Index rebuild queued successfully." msgstr "Index rebuild completed successfully." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#, fuzzy +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #, fuzzy #~ msgid "Index list" #~ msgstr "index list" diff --git a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo index 75df19f1e7d7162fa8cc4f00dc165a53b62cdc24..d28594952bff8af06ec74dabfb2589b5d2e7bcab 100644 GIT binary patch delta 1622 zcmY+^TS!zv9LModce8ZO)GW)&)5WyB9YpC(Ja1}nmdH4Z6_}RVx6*b;7*O--9 zg>)G|p25wykM+%S8dVy=ENsR!pdM_&a@>Tv-|sqvS~%%mUqelN2XzuzRDiFs9zWt5 zoKs>9OPMCrd|l{eeX~mq-0OM(6~LgY<2sJo;d$3fsMK6R1$x`$#` z{v;|<>vdsTkp^i@6>uD=BY#f<58*F7f(Lne0w16j>?Atvv>!Eb7|Ep>!%Do0WYbK$ z{r9k$>seIp6>R`&$~k}C7@(sC)3^j@P!qkv75EM{?kBPtvvxs#fp%1Gdr{*DQR7BY z_g>n2o;!vIPLy+quj}8m;V;M zFPw5N&wu)L#OtX_VUye0=_>S+Dve6bI%>7Pk1iUGRQCsuR=y~&%B5Z~73FIqRqu(u z=S|dw*?RBF!d5F9i`bSEO(a9nux9gD@SxP3I`j6|I1aBJq_yy0xBq_m){r=`u`($QT4A$?KW?{9Y^z3kb~?983H=bkgk zh4z`Y{G;YM=L};L@d@#^%9!0aRl^sft=5<&*p5TE4Zp^p@EG35k8tzc%Dg=o<98aD z;di(Ie?vazGGB}F8m=-XZ%Q02;=~Iaz<1b$8|N9*fZI{m_v1>;;0O3C&cO@O^>Nhv z>$n2%ARjZ$*C~9BJ25xkm=;~fTGlrYIna%du@PTI6aI~CVKpth4t3*p)PoP9cK!`2 z!4tR!3&^eJ25SB!QY7;raw_sEHn6^#)&c$#Ik&E|vqh0haVytb@k2a}YDo^2@EKGk zE=FF$E&RTMD*ZI7A~UE&mef}gUXJ;n>31Iotz4L-ar^Ko9>M|cK7qfZ7F-l{h)$`~0CBDUvG2Tf1b>mL9u^bbq8%`q0nhDecZ=!Z^ z8#VtKYTgWL-l~PhoW)KY##^YDubCG~t?ES9G;!1h22n5j!6xdjiDR7Dfag%Z@1lD6 z5|!8+RE3&Y{R`|yie?jX9>ABV zoeuKmXyFmm1HMP~?mVjW<9HA!kdKKmsS7P?-Y(Sr`;ZQo%ifQwniifN?7vcy)wq#R z_WvKsRzu~|=pZOYxtw|@R5gu0LhnLMKNzZ(63|#fSVD=ZdfKqwhtKu*udG#ajZH)~ zp;Bp=v!jQD&j{LD?)U6@m0V*f(N;d9HIYJYx50QNi-x|5w;t?5|x>T`bHyUR~&_bN24=ZOX}xxHjp8&JibY0~>zp1vWG4W}VQ> z_%`i~+0Z%W+8~p5ZRqJMW8LF!A{V-yX4pNF^HNFcq*B)NlbjE>6wlVhsusjMy1P4i zdTm$FK!0!HYW=d<`!n%@zT&<5Q#Hkj#`c;*ZOf1OLElzZPnJ{31eSx5tmCtG+A00T zib3d9(n@%xqHjlYE>l7$n{=|QK2o~LT+dC9GS#>4QRU}k15%v4HS8ubeh_AJUY6vO VJUvB}{`8Yxf_%+T@k~oY)qh+d$l3q^ diff --git a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po index ebe1770c8d..75b73250ae 100644 --- a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po @@ -6,13 +6,13 @@ # Translators: # jmcainzos , 2014 # Lory977 , 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-23 06:46+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:56+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -25,7 +25,7 @@ msgstr "" msgid "None" msgstr "Ninguno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipos de documento" @@ -34,44 +34,48 @@ msgstr "Tipos de documento" msgid "Document indexing" msgstr "Indexación de documentos" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etiqueta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Identificador" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Habilitado" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Elementos" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Nível" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "El documento tiene enlaces?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nodo" -#: handlers.py:18 -msgid "Creation date" -msgstr "Fecha de creación" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "Los índices a someter para reconstrucción." -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Fecha de creación" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Crear índice" @@ -91,7 +95,7 @@ msgstr "árbol de plantilla" msgid "Deletes and creates from scratch all the document indexes." msgstr "Borra y crea desde cero todos los índices de documentos." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "reconstruir índices" @@ -99,98 +103,98 @@ msgstr "reconstruir índices" msgid "New child node" msgstr "nuevo nodo secundario" -#: managers.py:56 +#: models.py:37 +#| msgid "Internal name used to reference this index." +msgid "This values will be used by other apps to reference this index." +msgstr "Estos valores serán utilizados por otras aplicaciones para hacer referencia a este índice." + +#: models.py:43 +msgid "" +"Causes this index to be visible and updated when document data changes." +msgstr "Hace que este índice sea visible y actualizado cuando los datos de documentos cambien." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "índice" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instancias de índices" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " + +#: models.py:157 +msgid "Indexing expression" +msgstr "expresión de indexación" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Hace que este nodo sea visible y actualizado cuando los datos de los documentos son cambiados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not" +" as a parent for further nodes." +msgstr "Marque esta opción para que el nodo actúe como un contenedor de documentos y no como un padre para otros nodos secundarios." + +#: models.py:173 +msgid "Link documents" +msgstr "enlace de documentos" + +#: models.py:178 +msgid "Root" +msgstr "raíz" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "Error indexando documento: %(document)s; expresión: %(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Estos valores serán utilizados por otras aplicaciones para hacer referencia a este índice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Hace que este índice sea visible y actualizado cuando los datos de documentos cambien." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "índice" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instancias de índices" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " - -#: models.py:118 -msgid "Indexing expression" -msgstr "expresión de indexación" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Hace que este nodo sea visible y actualizado cuando los datos de los documentos son cambiados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Marque esta opción para que el nodo actúe como un contenedor de documentos y no como un padre para otros nodos secundarios." - -#: models.py:134 -msgid "Link documents" -msgstr "enlace de documentos" - -#: models.py:139 -msgid "Root" -msgstr "raíz" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "nodo de plantilla de indice" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "nodos de plantillas de índices" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "nodo de plantilla de indice" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documentos" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "índice de nodo de instancia" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "nodos de instancias de indices" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" -msgstr "" +msgstr "Instancia del nodo del índice de documentos" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" -msgstr "" +msgstr "Instancias de nodos de índices de documentos" #: permissions.py:7 msgid "Indexing" @@ -216,77 +220,75 @@ msgstr "Ver los índices de documentos" msgid "Rebuild document indexes" msgstr "Generar índices de documentos" -#: views.py:51 +#: views.py:49 #, python-format #| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "¿Borrar el indice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Editar índice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipos de documentos enlazados " -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipos de documentos enlazados al índice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "nodos de la plantilla del árbol del índice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Crear nodo hijo de: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "¿Borrar el nodo de plantilla de indice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "¿Editar el nodo de plantilla de indice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navegación: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "contenido del indice: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Nodos de indices que contienen el documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "En bases de datos de gran tamaño esta operación puede tardar algún tiempo en ejecutarse." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "¿Reconstruir todos los índices?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Reconstrucción de Índices en espera de forma exitosa." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" diff --git a/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo index 7b6a192551409473c5a57b47194679eac3c97323..aae5112ec254423a07a70bbb549d0f34111727c8 100644 GIT binary patch delta 923 zcmYMyKWI}?6vy!sU;m_S(qc>1Hle)QR@*dBO-+e;ptz_M6f&qqBuEsSK~OtXu}ct| zZcex2)I}VeM2Lf{ixEUb1Q-8chl)c%L0lBY@2`E}B{!dYZgS5(@4mb2H-~DUdRy)q zEug3AOEI&_eZd3@wjJ6r$#5BFng&cs`0(PTs_(cL|6py9 z!5Fiu{3u?+5@zuUYT+8{1UAse->AEi=CO2Fim3P|D$fe4kOz^^QFq`g`lw{eJKW9r zYmj9^Pf$QT;Sp3}r=$66$j5H*HI8*0!bcd#SEyI=4)rSE;{<*~qz+?XbHZ%W<-Czt;LdoHv5dRz6@oqdLgAZDoA~rGx;E>7W&a@y5D$!E^QY zm&rnKU^!1tmoN3 DDv(^^ delta 1116 zcmXZaUq}=|9Ki9h(>%?8S!t%osQvTL9p|4k4(D!FM>~B6ZyR*NUo!O<*F+KbtKXp=3 z{6q;6OHrx?|8Ah7{PZYw2!CM*Hm54phu5$GzhM@7(v&L3Jj})#+=xLe#5N3K7v|ty z%us4rJ)}Vn^%S?^ygOhS)9J6^G5m;IFhEwCsvRZKVU+t_t|2U^f8FgrLdmm$vfxFO zc~;QN{OUUmN$>|HaVDe1Jl6u0iAr3nQ5GC@J%FwB+i^RNVlF;#pU=7`QFdkl%kVX( zF~9mkLss+y$JqW}M-}HZc2gfF;38t|N-{5B4 z$vKfiHKH6@8`bb08b@gCz)L7Azk}U4g*BMQvgO4(l$~fnjh!g}ObF$lx#{+oQSy97 zS;%kKLSB}Cp&2zE&td;1ahMz8Rg^CnN7<3vC<}Y+-d{v6wL}%d_qZ3^nXME<$mXdS z$`MVX9PNFq#95SiY?OcGQ?B)OLshnPRUN*Z2qo&`gPk)=;=&P;u)z#}jU2tE$mE|p#I{{zaejR8E);CxU z-XZIy_e55w(cd#@^q4_?)<|y62&WAv>^becvg2#9)r1{)ZfG0qgfyn@d3$a(q2-}7 zrtKHbs57z_SmOuLg*0Dzf)r0pF7dZ&ik2}civ~_eP;Aw%j@vOQn`D^ zaP?AZDSuqX9KsI;+_=IXW2&(k_u(Gw#|)mqx40R173RksMj!377{Du7inGYi%yX;4 zd)Q#ign3S76CKN#z!lU&;_Hp6$077%3O8UHHGURDcpr-~hi+W7&zDf+f8rJ_C^Cks zX~HRN#X;sb52#dV08#iDQ-yl54$CltdfsatL`{6cw$rG=qt?BsFFR-*Ms3Ma)B;ns|Ee{Eee~Zzr9Owsz(>?PtEdHf zyyX8H`yHU7l;2_FPU8zahHbo^!Rx3OYFM4NqzyIk0B*xk)E1?Yk25z>8JfcgzQh{* zf%~zPm$%}PGV&j$GERq5cN-OG0d+`n*o@1l!2XT-R0dFA)QFYXkBT#b+KMTh!D&2> zA%X^R5|x2@WG&{dpZsgW$J~_CSJqD$r@dm^o#pw!1E^Cyj2eFtTW}i5s(FN3_%qvn zkJ|gs$hkIOk)Qd+O$#WR;6&&Ps!%J7SUXTDilZ_!iVASaJ|D*++LQMABDT~1h8hVvIO>jqSrsD2L_vH6JDJ+pX3{?PtwbCBrC?7@H_9=wPL5ph7tX_@Q_J%LOwzuLi}4!H z#D~bAddh1)KF21dO6o0@20ErqQ!0y%D1jWrr5Iuzj^Hf3jWYisF2@P1#!r~Q&++*G zDD&q|S85qHAzi8yFXA5TW`8wFrCuhm3WrhcC_mhawb+F+ek8Vtvhl^ZeH&%rM<|&X zM+xvXuE0N$E!4c4@;XaV_Q{CsuQtUUIh2h%WB11npq$K$J%!t7pToI0hH^!dC;@*! zng4IBnxRyVb`{E1bfRRW7fTXJNJSz(i@#PVbp_=L8kv0pv)G5X@E1%FrOf{g<%({h zZ2SyY;Y*Y&`wuz1s%20zwh-6h7F>vSE&1O?1ysE*-P)cCoM{7VKF%_*l|qeQ*|C8gVA4`Byw zKW^VgS@;>sSN=!b{~p)UuH=Iu`znPJct_msMhW;Z^4+U^i3-0_LrAvNd6W}eMhWa@ z>>b=k`*)O-%OuH|M#P1SN*c{WDd6S>As)Z{-zC55~B_8Gyqr!~5fa2wjF%feeI63`Ent)t7THdh_k z>*#{z4H})d0;}Khjjw~_wy)iy@vOjh9X)KF(SbE&wC@fZ9oX`6wK;7D!oaLoJ*Gdj z3wdo73fgw^^!vHd!!^l@wvDOg=2S~Yr(3dZnN+$pov!KLo9ZzqZJ%{hJFLKDbxXRL zdFfP3hfcR=Gp*6}8E2y9$wSF5%NY!pZ, 2012 @@ -11,67 +11,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: admin.py:24 msgid "None" msgstr "Aucun" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Types de document" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indexation de document" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Libellé" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Jeton" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Activé" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Éléments" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Niveau" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Est lié à d'autres documents ?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Noeud" -#: handlers.py:18 -msgid "Creation date" -msgstr "Date de création" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexes" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Date de création" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Créer un index" @@ -89,9 +93,10 @@ msgstr "Modèle d'arborescence" #: links.py:54 msgid "Deletes and creates from scratch all the document indexes." -msgstr "Supprimer et reconstruire les indexes des documents en partant de zéro." +msgstr "" +"Supprimer et reconstruire les indexes des documents en partant de zéro." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Reconstruire les index" @@ -99,96 +104,106 @@ msgstr "Reconstruire les index" msgid "New child node" msgstr "Nouveau noeud enfant" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Ces valeurs seront utilisées par d'autres applications pour référencer cet " +"indexe." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Permet à cet index d'être à la fois visible et mis à jour quand le contenu " +"d'un document est modifié." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Index" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instance d'indexe" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Saisissez un modèle à restituer. Utiliser le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Expression d'indexation" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Permet à ce noeud d'être visible et mis à jour quand le contenu d'un " +"document est modifié." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Cochez cette option pour permettre à ce noeud d'être un conteneur de " +"documents et pas seulement un noeud parent d'autres noeuds enfants." + +#: models.py:173 +msgid "Link documents" +msgstr "Lier les documents" + +#: models.py:178 +msgid "Root" +msgstr "Racine" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Erreur lors de l'indexation du document: %(document)s; expression: %(expression)s; %(exception)s" +msgstr "" +"Erreur lors de l'indexation du document: %(document)s; expression: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Ces valeurs seront utilisées par d'autres applications pour référencer cet indexe." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Permet à cet index d'être à la fois visible et mis à jour quand le contenu d'un document est modifié." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Index" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instance d'indexe" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Saisissez un modèle à restituer. Utiliser le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Expression d'indexation" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Permet à ce noeud d'être visible et mis à jour quand le contenu d'un document est modifié." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Cochez cette option pour permettre à ce noeud d'être un conteneur de documents et pas seulement un noeud parent d'autres noeuds enfants." - -#: models.py:134 -msgid "Link documents" -msgstr "Lier les documents" - -#: models.py:139 -msgid "Root" -msgstr "Racine" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Noeud de modèle d'index" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Noeud de modèle d'index" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Noeud de modèle d'index" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valeur" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documents" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Noeud d'instance d'index" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Noeud d'instances d'indexes" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Instance de noeud d'indexe de document" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Instances de noeuds d'indexe de document" @@ -216,77 +231,74 @@ msgstr "Afficher les indexes des documents" msgid "Rebuild document indexes" msgstr "Reconstruire les indexes des documents" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Supprimer l'indexe : %s ?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Modifier l'index: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Types de document liés" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Types de documents liés à l'indexe : %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Noeuds de modèles arborescentes pour l'index: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Créer un noeud enfant pour: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Supprimer le noeud du modèle d'indexe: %s ?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Modifier le noeud du modèle d'index: %s" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigation: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Contenu de l'index:%s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Noeuds d'indexe contenant le document : %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Sur de grosses bases de données, cette opération peut prendre un certain temps." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Reconstruire tous les indexes ?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "La ré-indexation en attente a été faite avec succès." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +360,11 @@ msgstr "La ré-indexation en attente a été faite avec succès." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +401,11 @@ msgstr "La ré-indexation en attente a été faite avec succès." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo index 605e626c6db64116b925794715e2bde4c01a29d1..3483e71242619df84ca7bc2123e7bfa92c7a7c92 100644 GIT binary patch delta 195 zcmcc4dXT05o)F7a1|VPoVi_Q|0b*7ljsap2C;(zkAT9)AJ|M0JVvyP{Ans=bVj#@} z#PUoKc^x1P(r*oWYrnOIJCWRymTSXvnyP0nPj;qgh#OD|1KPqk9WD4qO-F?zBOlOF)j+#hWK delta 351 zcmXBOF-yZ>5C-6+rixNToE;ALl&^_ZDGC)jDiue!s~%}+lSsZVr4_+R&_yZHLASby zqd!4{zroGf*0@$$3eycD*Y_~vAer_6mu{k#z(zkb{^_vK%&JIuRV#0 ZDf)OD$xsX)8WgiIAiQfhHGMX9>ld3wRQ3P> diff --git a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po index 0c4474260c..7a708ea4e4 100644 --- a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po @@ -1,74 +1,78 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Semmi" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "dokumentumok" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "A nagy adatbázisok esetében a művelet sokáig is tarthat." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo index 707653be22bfe2a768bf6b0f76708e1342b66b9d..4391c26ab1270850bc096ebe0477df123c367c8b 100644 GIT binary patch delta 183 zcmX@bI-4c-o)F7a1|VPtVi_Pd0b*7l_5orLNC09^AWj5gJ|NBp;!Z{ehAJS<4#X@> z5OE$L4HO0gAQNmJ!^B+KiKl%`&2LTLFgWgK< zcw-bkQPs)wqAUvl#W%+`zkB+(! z$u`f)FggTz(2e8y_tWB~ak+JhCi9r_gi067#_{zKQ~du8RNRJyES4}MP2~-u;eDyJ lcaVFNX=MO4ALf)N-uX#g-=lUOym4Mbs-~zdntG@uegMmGVw?Z~ diff --git a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po index 74491109cf..03418669eb 100644 --- a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po @@ -1,74 +1,78 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: admin.py:24 msgid "None" msgstr "" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumen" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu untuk dilaksanakan." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo index c236cbf878d0f08415a85c7608411a53e12237f5..c7f39495e6e5eb0f30837d4883d4163229937981 100644 GIT binary patch delta 1218 zcmX}sOGs2v9LMo9Ib-RJjgRt?4o;cnqX}P=<7kKpwa7qBDX54WnTX}UI1?Cz1(qa~ zi%Sv|L==$}E}C87s)cRJ3W9=iTe)x%GK(JA_m?*>bMEKNne+Ic|2eu`y|jC5G2eaL z@U&6ND8F6C9L3KWym+cS#uQ^U9>N275GQd6-(ex{&s^)*i$1(He-rV0|V&CJ*eN?9J^5qpLM=ZpeDYH%EUudfG@BT-y%zx zG-{qz)H(&($oi&46)Zh8a2?Lzt*o1)n0?zX(wvJbEu3Y zQGwd1fbOC0$Ya#}v#51njZq;u^AUB%-%%ZxQ4^(6foZ9@hAG_FH=8D*1cSY7dr>)7h-0gv8zUhC$28trpMOuICId@Dq z=-*QMqt(6NNoh@Wcv?NF_t{=oPIIU(9BPOJ>%-Be7JJEC+PL1*5^Zd#t>ek=vPKf2 z-ncb9a^6bB;?ZDF>`Z?=5yKHHJ{Yt6e7(LdYj_}O4fIEYg9-bI??fs$XEf9PS+MdK D4f=w7 delta 1502 zcmYM!PiPcZ9Ki7x-KdFc{S)J#*5EVIYOA~MZlW>k>M9zw)L@7T;vd?#vyXMi?9MVX zYg-L00SnEcLRq|&wufFsPeMQtn^V1roA);(Mh&72+=EN;D9Zb@v2~P%FUR$3 zC==g7$;8hn0Y1b{_#9b6t?HbcXFbX~{UYnDp}3)lvhZ;1iC70^XF=>|xR3e-uEZIX zBbr4C_z6n?zhl*6rHa(sQI295B_qeNDUmcNNW_=$Mw?RKU=Q^Iy$znmPw*$4#C1gZ zF8&aE8yTX0K^gZ5<;Y&6?0gwfNygUVRxF?de10kU-%VkX21(US?BlpY$FjMJdQm>6 z0sIh0k*umqC<}avvZE^~M|Bfrp}Q#kp5qmKg|eY3qSN?fIr*2bGPza>zuE*^&C_DWX*}Qs*l95Gpl0e@_31~aYH#5|vAPekAS@;YR zq#8##!wHm*lQ@P`C=>n``wID~HGBvhx7vm>ZV*4l0?PZZFpb}#1b!bSqf2Hfv{8^_ z7;OD9e|uZL)t%_;*hO8govrpWU@J!_|4zgi-25U}~XfB0tFM5feDRK47YK&xTePs!~roaXnpi z_EoCJ_0o=C-OK1&rD0n47LT<0lBeTpg~g^XCMOm&M{S@Rwf{G)%dV~je#o?CHdmA2 zTd N?c30yv6blh^I!aL, 2012 @@ -12,67 +12,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Nessuno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipi di documento" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indicizzazione documento" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "etichetta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Abilitato" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Articoli" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Livello" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Il documento ha un collegamento?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nodo" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data di creazione" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indici" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data di creazione" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Crea indice" @@ -92,7 +96,7 @@ msgstr "Template Principale" msgid "Deletes and creates from scratch all the document indexes." msgstr "Cancellazione e ricostruzione di tutti gli indici documento" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Ricostruisci indici" @@ -100,96 +104,105 @@ msgstr "Ricostruisci indici" msgid "New child node" msgstr "Novo nodo figlio" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Questo valore è utilizzato dalle altre apps per riferirsi a questo indice." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Fa sì che questo indice possa essere visibile e aggiornato quando i dati del " +"documento cambiano." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Indice" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instanze indice" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Espressione di indicizzazione" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Fa sì che questo nodo possa essere visibili e aggiornato quando i dati del " +"documento cambiano." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Selezionare questa opzione per questo specifico nodo quale contenitore per i " +"documenti e non come un genitore per ulteriori nodi." + +#: models.py:173 +msgid "Link documents" +msgstr "Documenti di collegamento" + +#: models.py:178 +msgid "Root" +msgstr "Principale" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Errore nell'ndicizzazione del documento: %(document)s; espressione: %(expression)s; %(exception)s" +msgstr "" +"Errore nell'ndicizzazione del documento: %(document)s; espressione: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Questo valore è utilizzato dalle altre apps per riferirsi a questo indice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Fa sì che questo indice possa essere visibile e aggiornato quando i dati del documento cambiano." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Indice" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instanze indice" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Espressione di indicizzazione" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Fa sì che questo nodo possa essere visibili e aggiornato quando i dati del documento cambiano." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Selezionare questa opzione per questo specifico nodo quale contenitore per i documenti e non come un genitore per ulteriori nodi." - -#: models.py:134 -msgid "Link documents" -msgstr "Documenti di collegamento" - -#: models.py:139 -msgid "Root" -msgstr "Principale" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Indice del nodo Template " -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Indici dei nodi Template" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Indice del nodo Template" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valore" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documenti" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Istanza nodo Indice" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Istanze nodo indici" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Istanza del nodo indice del documento" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Istanze dei nodi indice del documento" @@ -217,77 +230,74 @@ msgstr "Visualizza indici documento" msgid "Rebuild document indexes" msgstr "Ricostruisci indici documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Cancellare l'indice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Modifica indice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipi di documento collegati" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipi di documento collegati all'indice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Template principale per i nodi dell'indice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Crea un nodo figlio di: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Cancellare il template del nodo indice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Modificare il template del nodo indice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigazione: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Contenuti per l'indice: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Indici contenuti nel documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di tempo." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Ricostruire tutti gli indici?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Ricostruzione dell'indice messo in coda." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -349,9 +359,11 @@ msgstr "Ricostruzione dell'indice messo in coda." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -388,11 +400,11 @@ msgstr "Ricostruzione dell'indice messo in coda." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo index 2b7a12d84c5c8a57c7e80c9cb8380e50c28b19a8..1d49d5aca0fa1c0263c1477e0d415f2c9bcf4570 100644 GIT binary patch delta 1217 zcmajePe>F|9Ki9n{#jf9WLjFL*_akuNV+QJ6iAWwZz~Z`mBi?dw(d4-^G79uJrqG* zf(B1PUZT21c&Sr?1O-B;f-ZLHP+bc83ljAG&8{1C=`n9UZ)V=U`Tc%x_Fc_#ZDzT; zXim{u=neG!A*FioYyl@)N1;-iuoDmCF&w~Kn8deOj{QYS)#DIWpoL+)j2rO^>UbNg z@C~k2Dx*Fyh;ZX4a;Q+TQZ*RH5^TUhY{B*DA&0uoi3QY6lzDe>4cxd z3FtevVuWm^Vo@yP{i=__Ry>Yvn8a$FLkZvkmf~Y%4Yi1}RZA!feZ&#`k-I<4WC`>l zN~SX?^RD4K^l<~;#f(gR!a#hAB%_|A?9mdI;WA2vKIQz362Lc>nP6; zAO#AVY|(0y>Pg!y`>zGVY=knDQf{HkLh|8kqf4}nbO}Nl?+vy{sw0)+J;65wL6e}Q z@ofef%l1j-R+|JT2`jZ*sU~Qq%N9tJy{ZdF*{r05xj%zySqK%bgyQ|Sowl`v6*p%S z)`S*Mk9ikN%hk2*t*hfUXP;)yPT8j8B+`~V`FkbLyL!%yYhE>^{(iy4q9o^!RF=6VOl{$Aa=I<;yvoKe3HB?|)eqE%g@lY<0ATiS>HPh0j z4a*qUEHCAsis+$({*6d9Gm!RNZ8R~doj2WV8B9AnHJ`=5weS*d-1d@57X5EAOmp1L bFQiSI_Do{(QV>m_I!e*~XOWEWl}`QvQ8mNl delta 1066 zcmYMyKTK0W9Ki7_ltPQh9|Z(NPFO?*DNqs{qQpcrrs|;4LJUcp0uJIVE?^Euw&P3OuT(|7 zVGw2F6LP7~be*`3jra>2a0hun)o~;9?bw7pcmM~HOHI|Bu6YjSxr;S#B1@?|RV!q{ zV1|iBluTE#6+fb6vV~mg8=Y+IJFZiuFzHFgZ`sXd{DLVw!LH`LYf8+D0HhFG{ zki;~>o}^W(XSqA(Y#GSH{e+aZhmaQ!64H7J$!LI(qmZnn#778elC@Mys#DDv<>Na_ zu(y9rj#XOo-rGCYhU@=?g5?H(=Bm|srn~<0In}dTczImD*COsO_8lPx%Iel+bB&IG?B>0qJpR%^Wq14_Hr~-z-D!(Tr_qx_!-On1+O)h<^TWy diff --git a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po index 2295889bb4..cdd17d7fa6 100644 --- a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po @@ -1,86 +1,91 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-09 16:41+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Geen" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Documentsoorten" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Documentindexering" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Label" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Items" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Niveau" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" -msgstr "" +msgstr "Heeft document verwijzingen?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Node" -#: handlers.py:18 -msgid "Creation date" -msgstr "Aanmaakdatum" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexeringen" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Aanmaakdatum" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Indexering aanmaken" #: links.py:35 links.py:64 msgid "Edit" -msgstr "bewerken" +msgstr "Bewerken" #: links.py:40 links.py:68 msgid "Delete" -msgstr "Verwijder" +msgstr "Verwijderen" #: links.py:44 msgid "Tree template" @@ -88,9 +93,9 @@ msgstr "Sjabloon boomstructuur" #: links.py:54 msgid "Deletes and creates from scratch all the document indexes." -msgstr "document indexeringen vernieuwen" +msgstr "Documentindexeringen vanaf nul vernieuwen" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Opnieuw indexeren" @@ -98,96 +103,99 @@ msgstr "Opnieuw indexeren" msgid "New child node" msgstr "Nieuwe node" -#: managers.py:56 -#, python-format -msgid "" -"Error indexing document: %(document)s; expression: %(expression)s; " -"%(exception)s" -msgstr "" - -#: models.py:29 -#| msgid "Internal name used to reference this index." +#: models.py:37 msgid "This values will be used by other apps to reference this index." msgstr "" -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Maakt deze index zichtbaar en 'up-to-date' wanneer document gegevens wijzigd." +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Maakt deze index zichtbaar en 'up-to-date' wanneer document gegevens wijzigd." -#: models.py:82 models.py:109 +#: models.py:117 models.py:149 msgid "Index" msgstr "Index" -#: models.py:101 +#: models.py:136 msgid "Index instance" msgstr "index instance" -#: models.py:102 +#: models.py:137 msgid "Index instances" msgstr "" -#: models.py:114 +#: models.py:153 msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" msgstr "" -#: models.py:118 +#: models.py:157 msgid "Indexing expression" msgstr "Indexeringsexpressie" -#: models.py:123 +#: models.py:162 msgid "Causes this node to be visible and updated when document data changes." -msgstr "Maakt deze node zichtbaar en 'up-to-date' wanneer document gegevens wijzigen" +msgstr "" +"Maakt deze node zichtbaar en 'up-to-date' wanneer document gegevens wijzigen" -#: models.py:131 +#: models.py:170 msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Selecteer deze optie, wanneer deze node alleen documenten dient te bevatten. " +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Selecteer deze optie, wanneer deze node alleen documenten dient te bevatten. " -#: models.py:134 +#: models.py:173 msgid "Link documents" msgstr "Koppel documenten" -#: models.py:139 +#: models.py:178 msgid "Root" msgstr "" -#: models.py:144 +#: models.py:236 +#, python-format +msgid "" +"Error indexing document: %(document)s; expression: %(expression)s; " +"%(exception)s" +msgstr "" +"Fout bij het indexeren van document: %(document)s; uitdrukking: " +"%(expression)s; %(exception)s" + +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Waarde" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documenten" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -215,77 +223,74 @@ msgstr "Bekijk document-indexeringen" msgid "Rebuild document indexes" msgstr "documenten opnieuw indexeren" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Voor een grote database kan deze operatie lang duren." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -347,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -386,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo index bc6e72ca8114e946d91f70b543d9e5b5777da99b..f49c8cb370fe2014536111de2b0740596f082688 100644 GIT binary patch delta 979 zcmYk)Jxr599LMqF#R38rt5Ojw=RiXtP5L~vkv{DMF(%cR4z8w)jT#1OMF;~4v5O{Z zj008U#9$W_-IyF1OmsB93`QL^42~LSUgJ@GgJsfa@H`$creSXL zGC;*cuSf*ubm{uawN=m7mxIq$ zKU?4jwfIwY-*@bS%~;P))hC_Iyzkm%((1M7XH$9)>N7>hwHq5j13x)5Em((M^^*+n r@2`13)9LM`is}&#o9i^>Q+xFqYHvbjY>(?Q?(Ftxzt_{eH(2=#o%?c< delta 1093 zcmXxiUr19?9Ki9Df0lo;Kc;C~b`~jGY1`Da=~6L_GF0lVr_Q#UPPg5$yJah34+TN= z5~IRiqoST7dk7K<)QF(oD+&sNdhD@>pzrU_4)>hT`E&0*zw^8ILBo%R{MXvDJBs3^ z?x7yoq|^~STtY+niH-ORPhv@_Qe$`;=kPY}!oRo$>&ldBMlaT22t7EC4R{uVIE!1A z%BzQTDw%kJTxx};9#?TQe#Gne4a@N&4G*d~%KBAo#cNoBPmoJJ-|!{!s9M=@6^9wW z#YXm5m4vsAiTx-y29Pz?hZ0B#-;kAa*u=PrT`piRj^SODOngB(;VDkD0}ZyJgYy3S z$SvwA?#3nTXMgpc&UW-v6*JL*?4`UY8@3~t8l|~~6DaGSQ8MuzB@@5#5dJ~=6s^_8 z`2fns!Hw}K%0b65e~iu)9rm4vK7f@tggc2@_RK$JN^F7K)3b z9@0L|a;x8WJQUDvZEklk)Fa(?nf49(eR^TRotJxj9X#XbnLx)tl{#TNnYG1KlAv=- zEfoh#M<$GpX4jW, 2012,2015 @@ -11,67 +11,73 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: admin.py:24 msgid "None" msgstr "Brak" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Typy dokumentów" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etykieta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Włączony" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Pozycje" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Węzeł" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data utworzenia" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indeksy" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data utworzenia" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Tworzenie indeksu" @@ -91,7 +97,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Usuwa i tworzy od podstaw wszystkie indeksy dokumentów." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Przebudowa indeksów" @@ -99,96 +105,100 @@ msgstr "Przebudowa indeksów" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Powoduje że ten wskaźnik będzie widoczny i zaktualizowany podczas zmiany " +"danych dokumentów." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Indeks" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Powoduje że ten wskaźnik będzie widoczny i zaktualizowany podczas zmiany danych dokumentów." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Indeks" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Check this option to have this node act as a container for documents and not as a parent for further nodes." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Wartość" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenty" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -216,77 +226,74 @@ msgstr "Zobacz indeksy dokumentów" msgid "Rebuild document indexes" msgstr "Odbuduj indeksy dokumentów" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Zawartość indeksu: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Węzły indeksów zawierające dokument: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Na dużych bazach danych operacja może chwilę potrwać." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +355,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +396,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo index efc7a19a4dbe409bb66af3e73c7598193e6416d9..3a27fc14a32c0bf616cfe684021be63aec7e178e 100644 GIT binary patch delta 490 zcmYMwKP&@r6u|M{wRcs2OKB>KR4fcls;8m1*veqC7%<#G6GWRJ29d^c6C(MgVPUb@ z4DDnh5lItkHxW$TtW11gbBUL{`@H+z{eJJ=HG3P8@>|rbC?ZA{2ArI7d&UUPjtE8<&ZUO;3nEkH-^_JeI9TW>o`Y$)uiZPVS;fem5uTz9F$3y zQ8sR1Cl*l#JwzGs7-gS_(&*G*ze9PihC_Id%&DRzWh+8*u*86_7~_5YRD4FOO$1}r zy76V`pP<)0lS*e(nc3u2)|t-f6EpF@l5^~gu9-(&i|$Tg-z}^=$F?P3$#h-MnYe$HWKh z!S=DAQ4e--2EXEY{C7N`XHoZ$pk6$VZz-~jmhT@dKE^9l_Y^nq5+0!D8zB2d@|#fx zx0#s6Q@Douq7BqP@*1_`PpAjKU_X9GEnpkTX?~)f`-QW(i<(e4r0aK3_s`=fK0r@j zG)S=bu;~Toh@tG2cX=Ssi02-r%i(b6n|I*NJgiI2HbWk`>DN$s+eB#xYY}wFNq|uq{S?HRbOHzB3YOB5VF_uOgIH|c++Z0<1TalzLYLG0F WqtaLnY!D|BHf=p{$wc<1_uhYme`!qs diff --git a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po index a88f2d4264..bff5d03656 100644 --- a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Renata Oliveira , 2011 @@ -10,67 +10,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: admin.py:24 msgid "None" msgstr "Nenhum" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Nome" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Itens" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -90,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Exclui e cria a partir do zero todos os índices de documentos." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -98,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Faz com que este índice seja visível e atualizado quando os dados do " +"documento forem alterados." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Faz com que este nó seja visível e atualizado quando os dados do documento " +"forem alterados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Escolha esta opção para que este nó atue como contentor para documentos e " +"não como pai de outros nós." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Faz com que este índice seja visível e atualizado quando os dados do documento forem alterados." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Faz com que este nó seja visível e atualizado quando os dados do documento forem alterados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Escolha esta opção para que este nó atue como contentor para documentos e não como pai de outros nós." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documentos" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -215,77 +223,74 @@ msgstr "Ver índices de documento" msgid "Rebuild document indexes" msgstr "Reconstruir índices de documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Esta operação pode levar algum tempo em bases de dados grandes." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -347,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -386,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo index a2d7540553aa9fba30def76abc1c067c6baf0083..c7025e4d4c6884fe05835014e30d516bee280859 100644 GIT binary patch delta 1225 zcmX}sOGs2v9LMov&RFW$q+>oB%_$#QI$`SMI2xiswvez%2`rLpiS%+}X56&MsKgK= z;*yJA8-s$RMbk#1RnRUp7eQ1mT3EP=AlhWu_m?*>bMEKNx#!;h|NPILxwhwe_2^=r z>#pHwrIpZD(u_HVpVB#TRJ)BS!rj=39e4;Q@I1c50z8nhHm?Uge7}f(yo@J{v__iY0Shqbm0f*`XXxnPuzj& zn~b4rD)9yev77kj1s$Iz@Dvtf3Q;$fq8DpX*IOOCQGw4m-^Wo8zK^QJ6e_`4ti*XF zg!zSf&MGR7FAIrpiq*j~RNzX-M#qDwl|>zoqqgKED!~zFe9UnI+Zex%D*YU)0-sTF zR#6GMv#I|h_S;VZ+f6ereV-i$h(_o!do5^CZyYR`T+`Y4Oufe@D(L!Q zzjDP?zkjLfN2?lE&{|UM?iP1yAuBsArzuz$3f6}M`$Cb%W_vl?->^Q?9BHVpspH7% zvJ%N)Puv<#T(FX{cq9;w4GhMUF-%zTvoSmBIqmJThKEM1p}|PtQnJ4zYQOZHNR{Ob NWY~H6<+d;X`(F)tf~x=k delta 1491 zcmXxkUu+ab9Ki7@y@Hg3Lg4`a6b6e(fGyWvOX&eEs0A^QVnKr_f9CFnW7E6c%kEym zKgmVqP0)}_Ukp5%&_v@?O+#WxOv(cZyugcz4L~ux%7g3mHl^0$K|Fvt+>c-51pbMu@#Mm0zX+4m zFXQw0B`(ETyKHeff>q(<=~9>ycgukKS=DIFMv#i&7)FYdt(JcRQ8z1RxM#24fG zG|Ir=qhw+ZCBUEXC7eg5P^;UUQ!9`{oJ2v^}v zlr6fC67U}={h!3DB}$D@Z$sINQIw1v#hOG?r63W1h&Ni4x`LYe8}vSn6L9vSu4>WYZcHzso6J@?L9SkRtP13LxXVJl5P$pQuyqU5s zxQ_ZT%KMW@R@G-HhiVF?|5cQUXK@qWMv|Z&;T3$0Z{j67NyZ+mU^x=uUo=QW|DmiX z)!96R+pux^aU1P9lvDi$%AS6Ma#+7Z>30t~)#`VY0GDxaWQ*3KWZFUbUIr!b-8BmI zRj(q8R&U3iMfn9zqICQK$M9p6Ox#1+!}-`wW|2MbN7;%YJcS34HL2^k8E>Ej@-xbo zEd7lFTdsC-57r;HZg0ufQ;F`yJE_aHqrNXO(lta${vr5tXoM+KJiYqs*AjkefNEn! zC>h+yy=P`a+pe~^#ynjzLDA}hiA>IfHq_BMH`IQ`1}1WSPnXU6Ix-Vhhkn`W$d!k$ z?FE~!Mz%+d+g#Nx6|^apwCfdU4@YL+ZBMq;b~wGgPG3f+`?3QWC*7Y;w;vgE#_gmV zGOqKQiELK)rF$FwdIxo1CYv7In&xUhWWvZf78oxqnaB^adSA))tll43H!`8#ZKS%l z@jTmX>&g4&o?I}@SG{7@6s=RgyX2kvK=MS#)0V8RM5kXFpZPqQU+9gNb&>H4thc%9 zf~26}huVgbX)b?mdhRPNsJa2^k#YFU Ped`t6yd-44b7jl_k8I(J diff --git a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po index 4de82a369c..71f6ebf337 100644 --- a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -11,67 +11,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: admin.py:24 msgid "None" msgstr "Nenhum" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipos de Documentos" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indexação de documentos" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etiqueta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Identificador" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Habilitado" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Itens" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Nível" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Tem links de documentos?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nó" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data de criação" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data de criação" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Criar índice" @@ -91,7 +95,7 @@ msgstr "Árvore de modelo" msgid "Deletes and creates from scratch all the document indexes." msgstr "Exclui e criar a partir do zero todos os índices de documento." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Reconstruir índices de documento" @@ -99,96 +103,106 @@ msgstr "Reconstruir índices de documento" msgid "New child node" msgstr "Novo node filho" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Estes valores serão utilizados por outras aplicações para fazer referência a " +"este índice." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Faz com que este índice seja visível e atualizado quando dados de documentos " +"forem alterados." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Índice" + +#: models.py:136 +msgid "Index instance" +msgstr "Instância de índice" + +#: models.py:137 +msgid "Index instances" +msgstr "Instâncias de índice" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django " +"(https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Indexando expressão" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Faz com que este nó seja visível e atualizado quando dados do documento " +"forem alterados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Marque esta opção para que este nó atue como um recipiente para documentos e " +"não como um pai para outros nós secundários." + +#: models.py:173 +msgid "Link documents" +msgstr "Link de documentos" + +#: models.py:178 +msgid "Root" +msgstr "Raiz" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Erro indexando documento: %(document)s; expressão: %(expression)s; %(exception)s" +msgstr "" +"Erro indexando documento: %(document)s; expressão: %(expression)s; " +"%(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Estes valores serão utilizados por outras aplicações para fazer referência a este índice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Faz com que este índice seja visível e atualizado quando dados de documentos forem alterados." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Índice" - -#: models.py:101 -msgid "Index instance" -msgstr "Instância de índice" - -#: models.py:102 -msgid "Index instances" -msgstr "Instâncias de índice" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Indexando expressão" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Faz com que este nó seja visível e atualizado quando dados do documento forem alterados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Marque esta opção para que este nó atue como um recipiente para documentos e não como um pai para outros nós secundários." - -#: models.py:134 -msgid "Link documents" -msgstr "Link de documentos" - -#: models.py:139 -msgid "Root" -msgstr "Raiz" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Índice de modelo de nó" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Indices de modelo de nó" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Indice de modelo de índice" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documento" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Índice de instância de nó" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Índices instâncias de nó " -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Instâncias do nó do índice de documentos" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Instâncias de nós de lindice de instâncias" @@ -216,77 +230,74 @@ msgstr "Ver índices de documento" msgid "Rebuild document indexes" msgstr "Reconstruir índices de documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Apagar o índice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Editar Indice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipos de documentos vinculados" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipos de documentos vinculados ao índice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Nós de modelo da árvore do índice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Criar nó filho de: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Excluir o nó de modelo de índice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Editar o nó de modelo de índice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navegação: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Conteúdo para Indice? %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Indexar nós contendo documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Em grandes bases de dados esta operação pode levar algum tempo para executar." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Reconstruir todos os índices?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Índices em fila reconstruídos com sucesso." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +359,11 @@ msgstr "Índices em fila reconstruídos com sucesso." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +400,11 @@ msgstr "Índices em fila reconstruídos com sucesso." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo index 70c927f433f46ad922c98ce7c09cf7f6da70ba54..2eff12c92a2a361f783c2a84ae149a899bd9dc05 100644 GIT binary patch delta 484 zcmX}oze@sP7{Kx8)JrYO{1GJ;8A02@X-er(5K)U@xn`7vm=sFC+{zmIu{6XX1V#M? z4IvbP&{#u3HAhQJO%6?MeJ_q)?s-1%``$fw&wF+6X?x|}=co!JK=crGqL;`hB*rsN z;R{Y;&?d5s3)qd1*o2?hi49Dk(=Ou1adco3J8%ZuFpo}=ij5J;`h_znRT* Vd#yB|P8oyhZ0%S*vl&~iv0q2ZK|=rl delta 657 zcmXZYJ7^R^9LMq5%Ow{T%tJ#AzW$Ob;D)_NRIbn~f;QrYD=fqZlgn^flDl2@5g(ud zgJ+t0 zou*bDCdPNXhClEs&Xkl|!3a;{R~*7$IEjC-iIW3L9l|!2@iy8sG#0Pv6@-ebRy}~JcjpS6vD0|WKlmN*1u$i6mf7~ rbjRo<-F@~y-lwg=NEEWWEM>8lj#<+-U?h?0r*S5_h^c4uFO}9`=4N)p diff --git a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po index 0d4f684543..ec55afd8e4 100644 --- a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: admin.py:24 msgid "None" msgstr "Nici unul" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etichetă" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Articole" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexuri" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Șterge și creează de la zero toate indexurile de documente." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Cauză pentru acest index să fie vizibil și actualizat când documentul suferă " +"schimbări." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Cauză pentru ca acest nod să fie vizibil și actualizat atunci când datele " +"documentului se modifică." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Bifați această opțiune pentru a avea acest nod ca un container pentru " +"documente și nu ca un părinte pentru nodurile suplimentare." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Cauză pentru acest index să fie vizibil și actualizat când documentul suferă schimbări." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Cauză pentru ca acest nod să fie vizibil și actualizat atunci când datele documentului se modifică." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Bifați această opțiune pentru a avea acest nod ca un container pentru documente și nu ca un părinte pentru nodurile suplimentare." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valoare" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documente" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +223,74 @@ msgstr "Vezi indexul de documente" msgid "Rebuild document indexes" msgstr "Reconstruire index documente" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Pe baze de date mari, această operație poate dura ceva timp pentru a executa." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo index feeb6d23e4779285b0e6635333a70e671aa747ee..64ac0ad5e6533c75675ab16dd1231caa0cbd4388 100644 GIT binary patch delta 786 zcmYMyJ4jnm7{Kw*M3bnwrVZHmHjP$|hE$=%O8(LNHY5APs^PE*)B= zf)2;W;^qT86%;2CDhOR##LYzo=^(lb>D2!x7d)JMe&>8SubgvkoA(=?^Kj|1klOef z_%bCTY5e4&APsv(YH$Q!;(Hv#9h|}<1~FGEQjgPU;R5<_4I{XY)wqu~p5Q|fM}lP{ zRRo$)J0!3i2arDU%8ier_RFImXOJw88~=hK+DjP24b*Kh)So>Znnq>uF_ zPo);OP&e`ulX#3#^i+yWU<*D&2OIGRKE*#6#(!9c7WeT2+cAz)_yAXtEZY>i&K^1~ zRF0^;!z=fPAudqg!Z_-{8PoxDuB-Tn_7=9{0qPN7B3W)I`mu-!v>D9Ql1H7dfGPZ1 z#k9P)yQFv3YQB5MtQa-zuCG8$xwo@cH~EC`u}0jaN7%Oe+I!|PbG{X;E76foB)g-} z({`%I#QpX6ksiAhMn+o*#%v-D7T!bQ~5c>Qd)nHUc delta 1122 zcmXZa+e=hI9Ki8uH7(OM#j;JU$+84p+pEz+D%s_wFpMB7f}?w|#mkzz8`jIFVVD|% zTSyQ^MD!4Z_axU1t3P0luc6RW6h!n;^dx;}-LpIAGxOs&^P4m0ELHs7A73xdek{1E zY2~zQTZHiAQyVv~-Yg;Z;7vS>BX|Z^u@fEHLgeERmf-{z;9JbWB$nbQ+=X8-fWNUw zh`6ZTDukUt1L}nHxE%9pVn1HRCwLV9Ujb~#8*&%8w&NrpPBeZ#sVhqCSHz*(2M%WFC!_! zz(*KHz2R(*tqFaFqE0yJ#0cn(yhL4K3VpbOe2?i%zstjk2eyj^x`fWwUrA-+yUpvU zqIZOLfTkZnU;1OLp7m#~*)Fy8$S$L=!<0cIYP1;G4XJC*b!w zT|Sp9??Q{S)w~sou&ncx5j6wS<8r6-TpsE21>F9`TF#wBF!xISIisf|W^|C!7n@zq zZODmBHLX%=$r`hU)uJ_|hg0gEn$q1ly31`wx9*Z~pZsyDl7tor z4N5(Y>~U+*8k0<%SMODdSt-&}YF?@tI`b;2XU$O(W}2;07GwkI{AImlolq0Z8Q@1n k;wd#lJiX|QHJ}$-Bs!)cx^991ndL<0b}t3$p8QV diff --git a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po index a427ce095e..4d79ee994e 100644 --- a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,67 +9,73 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: admin.py:24 msgid "None" msgstr "Ни один" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Типы документов" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Индексирование документа" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Надпись" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Доступно" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Элементы" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Уровень" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Узел" -#: handlers.py:18 -msgid "Creation date" -msgstr "Дата создания" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Индексы" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Дата создания" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Создать индекс" @@ -89,7 +95,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Удаляет и создается с нуля, все индексы документа." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Восстановление индексов" @@ -97,96 +103,97 @@ msgstr "Восстановление индексов" msgid "New child node" msgstr "Новый дочерний узел" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Этот индекс должен быть видимым и обновляться при изменении данных документа." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Индекс" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Экземпляры индекса" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Этот узел должен быть видимым и обновляются при изменении данных документа." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Этот узел будет контейнером для документов и не будет иметь дочерних узлов." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "Корень" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Этот индекс должен быть видимым и обновляться при изменении данных документа." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Индекс" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Экземпляры индекса" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Этот узел должен быть видимым и обновляются при изменении данных документа." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Этот узел будет контейнером для документов и не будет иметь дочерних узлов." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "Корень" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Значение" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Документы" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +221,74 @@ msgstr "Просмотр индексов документа" msgid "Rebuild document indexes" msgstr "Восстановление индексов документа" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Удалить индекс: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Редактировать индекс: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Типы документов связаны" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Навигация: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "В больших базах данных эта операция может занять некоторое время для выполнения." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Восстановить все индексы?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Восстановление индекса успешно отправлено в очередь." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +350,11 @@ msgstr "Восстановление индекса успешно отправ #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +391,11 @@ msgstr "Восстановление индекса успешно отправ #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo index 0b45da13cfb75fa44c7d354b4d479d9306819a82..9045da6741d6bcab398d79b116276a0feaa5f418 100644 GIT binary patch delta 228 zcmcc2ww$&8o)F7a1|VPsVi_QI0b+I_&H-W&=m26)AnpWWJ|Lb9#2~ecfS3h{R{-%9 zMh1qpKpLd3i3y^v2S~F4`LlsENZleJ4OGU!48$Nl$P6F=DPdq>nz&SBG9ROlskyF! zsjiWQf}yFEiKVWAiGcxEfWK}~YFTD+W`3ToOJYf?m4cChAzYoMm9f#}e#S0-pTxZM W(!_M2ba766u;*k6rs&DdOsxPhAS8VN delta 400 zcmXw!yGjE=6oxlfynuqW#jz2a4ZDf)k}8Fb8i{CUBPa2YOg7n-%w*9ZSZN`q2*C%i zQo+tQkO*n4w6?MK4J`aO!5_Z)r}#K?<{|ZwzWiE9-dRW*EP@i41s5R7BbWwHU=F;1 z6nF(mFakyJ4nAXWK;(bNC;ksQn*EE8{6xaCcFNqp|W&1!vr7^(XVj~60I_}tW*U8x^k+Fh-k(H_OWNk)ikcfe_%rGULPiCc86*0{|sb5%&N9 diff --git a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po index d45f72629c..eb2b30bef2 100644 --- a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po @@ -1,74 +1,78 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: admin.py:24 msgid "None" msgstr "None" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Giá trị" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Tài liệu" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "" - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo index 49ce22f6f917dd5e8aa685aab6130740ac107583..c071040c942d9605e7d67e3ba7b1f34a8f85f52a 100644 GIT binary patch delta 430 zcmX}oK`#SA6u|LWyR8ybHW7^qO`HcGpr4a?Y|BhIjdZCu6& zJj6toQfX|V)L)~I_t=APID{WKfTpQbH`k+UA8fs~u0fbD5my=L_1&J5KL&NwGLoZcYRX^i8 nx&OL?KjQ||)@5?F(x{zOYNXHicNf=!(Ao~iVpm4+9H06D#ga4~ delta 560 zcmXZYPbfq|90%}ucKywN32~TQ{C%3;=U+=v#6?I>N*YYNFYL;DgbP`Ji;K70QVtGV zTo$DyA$Kkgt}g6r56Zz=e24w@e)F06&GdWo-gov-&dO_{GfWT#$O>c>S%R!rFd(*J zFWiAW@EK0Q(iB3<;X0J(kD&)%!%X-Ei{UrSg+&fR(qSdcfVI#`$O_Rg=|rIwmck{N z3iqLGZ~#Mi=^5<6x(l1_FbId?11yBaY5!J373(&Lhv>=rER+`sChPlu))8`u33`)b z$Y2!8hA+u_BDwys%9Qe&eC)``L(1=z-y%c)KN<4sGIB3Rl}Dv>z)z?7oLA6EZt`(% z2!onF-JpS4F~?0k;HNWuiJE*$P$MuSsHw{#K*ge%m^Vd(RpnS~YF1q?)vZzH_B3fK zYh)~Ia6lar3%Y?0YBx89hq{>y=a}klrL4uHY1XS_!!n#Bd41gPo#$R0S@w-}^, 2014 @@ -9,67 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: admin.py:24 msgid "None" msgstr "无" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "索引" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +93,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "从所有的文档索引中删除并创建。" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +101,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "当文档数据变化时,将导致索引被更新和可见。" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "当文档数据变化时,导致节点被更新和可见。" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "检查当前节点是否为文档容器,而不是作为别处节点的父节点。" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "当文档数据变化时,将导致索引被更新和可见。" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "当文档数据变化时,导致节点被更新和可见。" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "检查当前节点是否为文档容器,而不是作为别处节点的父节点。" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "值" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "文档" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +216,74 @@ msgstr "查看文档索引" msgid "Rebuild document indexes" msgstr "重建文档索引" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "在大数据库中,此操作将比较耗时。" - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +345,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +386,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/managers.py b/mayan/apps/document_indexing/managers.py index 4eea5fd87b..b47b1b00c4 100644 --- a/mayan/apps/document_indexing/managers.py +++ b/mayan/apps/document_indexing/managers.py @@ -1,14 +1,6 @@ from __future__ import unicode_literals -import logging - -from django.db import models, transaction -from django.template import Context, Template -from django.utils.translation import ugettext_lazy as _ - -from documents.models import Document - -logger = logging.getLogger(__name__) +from django.db import models class DocumentIndexInstanceNodeManager(models.Manager): @@ -17,104 +9,25 @@ class DocumentIndexInstanceNodeManager(models.Manager): class IndexManager(models.Manager): + def index_document(self, document): + for index in self.filter(enabled=True, document_types=document.document_type): + index.index_document(document=document) + def get_by_natural_key(self, name): return self.get(name=name) + def rebuild(self): + for index in self.all(): + index.rebuild() + class IndexInstanceNodeManager(models.Manager): - @staticmethod - def delete_empty_index_nodes_recursive(instance_node): - """ - Calls itself recursively deleting empty index instance nodes up to - root - """ - - if instance_node.get_children().count() == 0: - # if there are no children, delete node and check parent for the - # same conditions - parent = instance_node.parent - if parent: - instance_node.delete() - IndexInstanceNodeManager.delete_empty_index_nodes_recursive( - parent - ) - - def cascade_eval(self, document, template_node, parent_index_instance=None): - """ - Evaluate an enabled index expression and update or create all the - related index instances also recursively calling itself to evaluate - all the index's children - """ - - if template_node.enabled: - try: - template = Template(template_node.expression) - context = Context({'document': document}) - result = template.render(context=context) - except Exception as exception: - error_message = _( - 'Error indexing document: %(document)s; expression: ' - '%(expression)s; %(exception)s' - ) % { - 'document': document, - 'expression': template_node.expression, - 'exception': exception - } - logger.debug(error_message) - else: - if result: - index_instance, created = self.get_or_create( - index_template_node=template_node, value=result, - parent=parent_index_instance - ) - - if template_node.link_documents: - index_instance.documents.add(document) - - for child in template_node.get_children(): - self.cascade_eval( - document=document, - template_node=child, - parent_index_instance=index_instance - ) - - def delete_empty_index_nodes(self): - """ - Delete empty index instance nodes - """ - - for instance_node in self.filter(documents__isnull=True, parent__isnull=False): - IndexInstanceNodeManager.delete_empty_index_nodes_recursive( - instance_node - ) - - def index_document(self, document): - """ - Update or create all the index instances related to a document - """ - - from .models import Index - - with transaction.atomic(): - self.remove_document(document) - - # Only update indexes where the document type is found - for index in Index.objects.filter(enabled=True, document_types=document.document_type): - root_instance, created = self.get_or_create( - index_template_node=index.template_root, parent=None - ) - for template_node in index.template_root.get_children(): - self.cascade_eval(document, template_node, root_instance) + def delete_empty(self): + # Select leaf nodes only because .delete_empty() bubbles up + for root_nodes in self.filter(parent=None): + for index_instance_node in root_nodes.get_leafnodes(): + index_instance_node.delete_empty() def remove_document(self, document): - for index_node in self.filter(documents=document): - index_node.documents.remove(document) - - self.delete_empty_index_nodes() - - def rebuild_all_indexes(self): - for instance_node in self.all(): - instance_node.delete() - - for document in Document.objects.all(): - self.index_document(document) + for index_instance_node in self.filter(documents=document): + index_instance_node.remove_document(document=document) diff --git a/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py b/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py new file mode 100644 index 0000000000..192fa3dd8e --- /dev/null +++ b/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-05-24 04:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('document_indexing', '0010_documentindexinstancenode_indexinstance'), + ] + + operations = [ + migrations.AlterField( + model_name='indextemplatenode', + name='expression', + field=models.TextField( + help_text="Enter a template to render. Use Django's default " + "templating language (https://docs.djangoproject.com/en/1.7/" + "ref/templates/builtins/)", + verbose_name='Indexing expression' + ), + ), + ] diff --git a/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py b/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py new file mode 100644 index 0000000000..e07de36b16 --- /dev/null +++ b/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2017-05-30 07:28 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('document_indexing', '0011_auto_20170524_0456'), + ] + + operations = [ + migrations.AlterField( + model_name='index', + name='slug', + field=models.SlugField(help_text='This value will be used by other apps to reference this index.', max_length=128, unique=True, verbose_name='Slug'), + ), + migrations.AlterField( + model_name='indexinstancenode', + name='documents', + field=models.ManyToManyField(related_name='index_instance_nodes', to='documents.Document', verbose_name='Documents'), + ), + migrations.AlterField( + model_name='indexinstancenode', + name='index_template_node', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='index_instance_nodes', to='document_indexing.IndexTemplateNode', verbose_name='Index template node'), + ), + ] diff --git a/mayan/apps/document_indexing/models.py b/mayan/apps/document_indexing/models.py index e3499c718a..1fa15ef6b8 100644 --- a/mayan/apps/document_indexing/models.py +++ b/mayan/apps/document_indexing/models.py @@ -1,7 +1,10 @@ from __future__ import absolute_import, unicode_literals +import logging + from django.core.urlresolvers import reverse -from django.db import models +from django.db import models, transaction +from django.template import Context, Template from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext, ugettext_lazy as _ @@ -11,20 +14,27 @@ from mptt.models import MPTTModel from acls.models import AccessControlList from documents.models import Document, DocumentType from documents.permissions import permission_document_view +from lock_manager.runtime import locking_backend from .managers import ( DocumentIndexInstanceNodeManager, IndexManager, IndexInstanceNodeManager ) +logger = logging.getLogger(__name__) + @python_2_unicode_compatible class Index(models.Model): + """ + Parent model that defines an index and hold all the relationship for its + template and instance when resolved. + """ label = models.CharField( max_length=128, unique=True, verbose_name=_('Label') ) slug = models.SlugField( help_text=_( - 'This values will be used by other apps to reference this index.' + 'This value will be used by other apps to reference this index.' ), max_length=128, unique=True, verbose_name=_('Slug') ) enabled = models.BooleanField( @@ -41,14 +51,6 @@ class Index(models.Model): objects = IndexManager() - @property - def template_root(self): - return self.node_templates.get(parent=None) - - @property - def instance_root(self): - return self.template_root.node_instance.get() - def __str__(self): return self.label @@ -65,10 +67,17 @@ class Index(models.Model): """ Automatically create the root index template node """ - super(Index, self).save(*args, **kwargs) IndexTemplateNode.objects.get_or_create(parent=None, index=self) + @property + def instance_root(self): + return self.template_root.index_instance_nodes.get() + + @property + def template_root(self): + return self.node_templates.get(parent=None) + def get_document_types_names(self): return ', '.join( [ @@ -76,6 +85,34 @@ class Index(models.Model): ] or ['None'] ) + def index_document(self, document): + logger.debug('Index; Indexing document: %s', document) + self.template_root.index_document(document=document) + + def rebuild(self): + """ + Delete and reconstruct the index by deleting of all its instance nodes + and recreating them for the documents whose types are associated with + this index + """ + # Delete all index instance nodes by deleting the root index + # instance node. All child index instance nodes will be cascade + # deleted. + try: + self.instance_root.delete() + except IndexInstanceNode.DoesNotExist: + # Empty index, ignore this exception + pass + + # Create the new root index instance node + self.template_root.index_instance_nodes.create() + + # Re-index each document with a type associated with this index + for document in Document.objects.filter(document_type__in=self.document_types.all()): + # Evaluate each index template node for each document + # associated with this index. + self.index_document(document=document) + class Meta: verbose_name = _('Index') verbose_name_plural = _('Indexes') @@ -102,12 +139,16 @@ class IndexInstance(Index): @python_2_unicode_compatible class IndexTemplateNode(MPTTModel): + """ + The template to generate an index. Each entry represents a level in a + hierarchy of levels. Each level can contain further levels or a list of + documents but not both. + """ parent = TreeForeignKey('self', blank=True, null=True) index = models.ForeignKey( Index, related_name='node_templates', verbose_name=_('Index') ) - expression = models.CharField( - max_length=128, + expression = models.TextField( help_text=_( 'Enter a template to render. ' 'Use Django\'s default templating language ' @@ -138,6 +179,84 @@ class IndexTemplateNode(MPTTModel): else: return self.expression + def index_document(self, document, acquire_lock=True): + # Avoid another process to index this same document for the same + # template node. This prevents this template node's index instance + # nodes from being deleted while the template is evaluated and + # documents added to it. + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format(self.pk) + ) + + # Start transaction after the lock in case the locking backend uses + # the database. + with transaction.atomic(): + logger.debug('IndexTemplateNode; Indexing document: %s', document) + + logger.debug( + 'Removing document "%s" from all index instance nodes', + document + ) + for index_template_node in self.index_instance_nodes.all(): + index_template_node.remove_document( + document=document, acquire_lock=False + ) + + if not self.parent: + logger.debug( + 'IndexTemplateNode; parent: creating empty root index ' + 'instance node' + ) + index_instance_node, created = self.index_instance_nodes.get_or_create() + + for child in self.get_children(): + child.index_document(document=document, acquire_lock=False) + + if acquire_lock: + lock.release() + + elif self.enabled: + logger.debug('IndexTemplateNode; non parent: evaluating') + logger.debug('My parent is: %s', self.parent) + logger.debug( + 'My parent nodes: %s', self.parent.index_instance_nodes.all() + ) + logger.debug( + 'IndexTemplateNode; Evaluating template: %s', self.expression + ) + + try: + context = Context({'document': document}) + template = Template(self.expression) + result = template.render(context=context) + except Exception as exception: + logger.debug('Evaluating error: %s', exception) + error_message = _( + 'Error indexing document: %(document)s; expression: ' + '%(expression)s; %(exception)s' + ) % { + 'document': document, + 'expression': self.expression, + 'exception': exception + } + logger.debug(error_message) + else: + logger.debug('Evaluation result: %s', result) + if result: + index_instance_node, created = self.index_instance_nodes.get_or_create( + parent=self.parent.index_instance_nodes.get(), + value=result + ) + if self.link_documents: + index_instance_node.documents.add(document) + + for child in self.get_children(): + child.index_document(document=document, acquire_lock=False) + finally: + if acquire_lock: + lock.release() + class Meta: verbose_name = _('Index node template') verbose_name_plural = _('Indexes node template') @@ -147,14 +266,15 @@ class IndexTemplateNode(MPTTModel): class IndexInstanceNode(MPTTModel): parent = TreeForeignKey('self', null=True, blank=True) index_template_node = models.ForeignKey( - IndexTemplateNode, related_name='node_instance', + IndexTemplateNode, related_name='index_instance_nodes', verbose_name=_('Index template node') ) value = models.CharField( blank=True, db_index=True, max_length=128, verbose_name=_('Value') ) documents = models.ManyToManyField( - Document, related_name='node_instances', verbose_name=_('Documents') + Document, related_name='index_instance_nodes', + verbose_name=_('Documents') ) objects = IndexInstanceNodeManager() @@ -193,6 +313,52 @@ class IndexInstanceNode(MPTTModel): return ' / '.join(result) + def delete_empty(self, acquire_lock=True): + """ + The argument `acquire_lock` controls whether or not this method + acquires or lock. The case for this is to acquire when called directly + or not to acquire when called as part of a larger index process + that already has a lock + """ + # Prevent another process to work on this node. We use the node's + # parent template node for the lock + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format( + self.index_template_node.pk + ) + ) + # Start transaction after the lock in case the locking backend uses + # the database. + with transaction.atomic(): + if self.documents.count() == 0 and self.get_children().count() == 0: + if self.parent: + self.delete() + self.parent.delete_empty(acquire_lock=False) + if acquire_lock: + lock.release() + + def remove_document(self, document, acquire_lock=True): + """ + The argument `acquire_lock` controls whether or not this method + acquires or lock. The case for this is to acquire when called directly + or not to acquire when called as part of a larger index process + that already has a lock + """ + # Prevent another process to work on this node. We use the node's + # parent template node for the lock + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format( + self.index_template_node.pk + ) + ) + self.documents.remove(document) + self.delete_empty(acquire_lock=False) + + if acquire_lock: + lock.release() + class Meta: verbose_name = _('Index node instance') verbose_name_plural = _('Indexes node instances') diff --git a/mayan/apps/document_indexing/tasks.py b/mayan/apps/document_indexing/tasks.py index a86077c7d4..500dab629c 100644 --- a/mayan/apps/document_indexing/tasks.py +++ b/mayan/apps/document_indexing/tasks.py @@ -7,7 +7,6 @@ from django.db import OperationalError from mayan.celery import app from lock_manager import LockError -from lock_manager.runtime import locking_backend from .literals import RETRY_DELAY @@ -15,23 +14,36 @@ logger = logging.getLogger(__name__) @app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) -def task_delete_empty_index_nodes(self): +def task_delete_empty(self): IndexInstanceNode = apps.get_model( app_label='document_indexing', model_name='IndexInstanceNode' ) try: - rebuild_lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) + IndexInstanceNode.objects.delete_empty() except LockError as exception: - # A rebuild is happening, retry later raise self.retry(exc=exception) + + +@app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) +def task_remove_document(self, document_id): + Document = apps.get_model( + app_label='documents', model_name='Document' + ) + IndexInstanceNode = apps.get_model( + app_label='document_indexing', model_name='IndexInstanceNode' + ) + + try: + document = Document.objects.get(pk=document_id) + except Document.DoesNotExist: + # Document was deleted before we could execute, abort + pass else: try: - IndexInstanceNode.objects.delete_empty_index_nodes() - finally: - rebuild_lock.release() + IndexInstanceNode.objects.remove_document(document=document) + except LockError as exception: + raise self.retry(exc=exception) @app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) @@ -39,66 +51,42 @@ def task_index_document(self, document_id): Document = apps.get_model( app_label='documents', model_name='Document' ) - - IndexInstanceNode = apps.get_model( - app_label='document_indexing', model_name='IndexInstanceNode' + Index = apps.get_model( + app_label='document_indexing', model_name='Index' ) try: - rebuild_lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) - except LockError as exception: - # A rebuild is happening, retry later - raise self.retry(exc=exception) + document = Document.objects.get(pk=document_id) + except Document.DoesNotExist: + # Document was deleted before we could execute, abort about + # updating + pass else: try: - lock = locking_backend.acquire_lock( - 'document_indexing_task_update_index_document_%d' % document_id + Index.objects.index_document(document=document) + except OperationalError as exception: + logger.warning( + 'Operational error while trying to index document: ' + '%s; %s', document, exception + ) + raise self.retry(exc=exception) + except LockError as exception: + logger.warning( + 'Unable to acquire lock for document %s; %s ', + document, exception ) - except LockError as exception: - # This document is being reindexed by another task, retry later raise self.retry(exc=exception) - else: - try: - document = Document.objects.get(pk=document_id) - except Document.DoesNotExist: - # Document was deleted before we could execute, abort about - # updating - pass - else: - try: - IndexInstanceNode.objects.index_document(document) - except OperationalError as exception: - logger.warning( - 'Operational error while trying to index document: ' - '%s; %s', document, exception - ) - lock.release() - raise self.retry(exc=exception) - else: - lock.release() - finally: - lock.release() - finally: - rebuild_lock.release() @app.task(bind=True, default_retry_delay=RETRY_DELAY, ignore_result=True) -def task_do_rebuild_all_indexes(self): - IndexInstanceNode = apps.get_model( - app_label='document_indexing', model_name='IndexInstanceNode' +def task_rebuild_index(self, index_id): + Index = apps.get_model( + app_label='document_indexing', model_name='Index' ) try: - lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) + index = Index.objects.get(pk=index_id) + index.rebuild() except LockError as exception: - # Another rebuild is happening, retry later + # This index is being rebuilt by another task, retry later raise self.retry(exc=exception) - else: - try: - IndexInstanceNode.objects.rebuild_all_indexes() - finally: - lock.release() diff --git a/mayan/apps/document_indexing/tests/test_models.py b/mayan/apps/document_indexing/tests/test_models.py index c853e4b85e..dfc3831e02 100644 --- a/mayan/apps/document_indexing/tests/test_models.py +++ b/mayan/apps/document_indexing/tests/test_models.py @@ -116,7 +116,7 @@ class IndexTestCase(BaseTestCase): ), ['', '0003'] ) - # Document deleted from, index structure should update + # Document deleted, index structure should update self.document.delete() self.assertEqual( list( @@ -162,7 +162,7 @@ class IndexTestCase(BaseTestCase): self.assertEqual(list(IndexInstanceNode.objects.all()), []) # Rebuild all indexes - IndexInstanceNode.objects.rebuild_all_indexes() + Index.objects.rebuild() # Check that document is in instance node instance_node = IndexInstanceNode.objects.get(value='0001') diff --git a/mayan/apps/document_indexing/tests/test_views.py b/mayan/apps/document_indexing/tests/test_views.py index 71d14f014b..62b758d81e 100644 --- a/mayan/apps/document_indexing/tests/test_views.py +++ b/mayan/apps/document_indexing/tests/test_views.py @@ -5,7 +5,7 @@ from user_management.tests import ( TEST_USER_USERNAME, TEST_USER_PASSWORD ) -from ..models import Index, IndexInstanceNode +from ..models import Index from ..permissions import ( permission_document_indexing_create, permission_document_indexing_delete, permission_document_indexing_edit, permission_document_indexing_view @@ -128,7 +128,7 @@ class IndexViewTestCase(GenericDocumentViewTestCase): ) # Rebuild indexes - IndexInstanceNode.objects.rebuild_all_indexes() + Index.objects.rebuild() return index diff --git a/mayan/apps/document_indexing/urls.py b/mayan/apps/document_indexing/urls.py index bdf0a432cc..701265903f 100644 --- a/mayan/apps/document_indexing/urls.py +++ b/mayan/apps/document_indexing/urls.py @@ -9,9 +9,9 @@ from .api_views import ( ) from .views import ( DocumentIndexNodeListView, IndexInstanceNodeView, IndexListView, - RebuildIndexesConfirmView, SetupIndexDocumentTypesView, - SetupIndexCreateView, SetupIndexDeleteView, SetupIndexEditView, - SetupIndexListView, SetupIndexTreeTemplateListView, TemplateNodeCreateView, + RebuildIndexesView, SetupIndexDocumentTypesView, SetupIndexCreateView, + SetupIndexDeleteView, SetupIndexEditView, SetupIndexListView, + SetupIndexTreeTemplateListView, TemplateNodeCreateView, TemplateNodeDeleteView, TemplateNodeEditView ) @@ -61,7 +61,7 @@ urlpatterns = [ ), url( - r'^rebuild/all/$', RebuildIndexesConfirmView.as_view(), + r'^rebuild/all/$', RebuildIndexesView.as_view(), name='rebuild_index_instances' ), url( diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index 2642289c87..87dbcd84b5 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -8,14 +8,14 @@ from django.utils.translation import ugettext_lazy as _ from acls.models import AccessControlList from common.views import ( - AssignRemoveView, ConfirmView, SingleObjectCreateView, + AssignRemoveView, FormView, SingleObjectCreateView, SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from documents.models import Document, DocumentType from documents.permissions import permission_document_view from documents.views import DocumentListView -from .forms import IndexTemplateNodeForm +from .forms import IndexListForm, IndexTemplateNodeForm from .models import ( DocumentIndexInstanceNode, Index, IndexInstance, IndexInstanceNode, IndexTemplateNode @@ -25,7 +25,7 @@ from .permissions import ( permission_document_indexing_edit, permission_document_indexing_rebuild, permission_document_indexing_view ) -from .tasks import task_do_rebuild_all_indexes +from .tasks import task_rebuild_index from .widgets import node_tree @@ -248,7 +248,9 @@ class IndexInstanceNodeView(DocumentListView): return DocumentListView.get_queryset(self) else: self.object_permission = None - return self.index_instance_node.get_children().order_by('value') + return self.index_instance_node.get_children().order_by( + 'value' + ) else: self.object_permission = None return IndexInstanceNode.objects.none() @@ -312,16 +314,20 @@ class DocumentIndexNodeListView(SingleObjectListView): return DocumentIndexInstanceNode.objects.get_for(self.get_document()) -class RebuildIndexesConfirmView(ConfirmView): +class RebuildIndexesView(FormView): extra_context = { - 'message': _('On large databases this operation may take some time to execute.'), - 'title': _('Rebuild all indexes?'), + 'title': _('Rebuild indexes'), } + form_class = IndexListForm view_permission = permission_document_indexing_rebuild + def form_valid(self, form): + for index in form.cleaned_data['indexes']: + task_rebuild_index(index_id=index.pk) + + messages.success(self.request, _('Index rebuild queued successfully.')) + + return super(RebuildIndexesView, self).form_valid(form=form) + def get_post_action_redirect(self): return reverse('common:tools_list') - - def view_action(self): - task_do_rebuild_all_indexes.apply_async() - messages.success(self.request, _('Index rebuild queued successfully.')) diff --git a/mayan/apps/document_signatures/apps.py b/mayan/apps/document_signatures/apps.py index eecfad9102..b5901b8bb4 100644 --- a/mayan/apps/document_signatures/apps.py +++ b/mayan/apps/document_signatures/apps.py @@ -46,8 +46,8 @@ logger = logging.getLogger(__name__) class DocumentSignaturesApp(MayanAppConfig): app_namespace = 'signatures' app_url = 'signatures' + has_tests = True name = 'document_signatures' - test = True verbose_name = _('Document signatures') def ready(self): diff --git a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo index 1b1733fe7b7c163de5efdd29e34db7685fd2e12f..4055afd3e96db076b07edc1d66b072913ecb280b 100644 GIT binary patch delta 47 zcmZ3=v6N%OJw{%0T?12HBMSvXQ!5k8$*&m~^7tg?rI#kAr&=i_7ESJEir)O0$%qjE DV)YMK delta 47 zcmZ3=v6N%OJw{$LT|+}%BVz>vBP&zm$*&m~PM*mW#p9EhmtLBfo@%9#ShV>QlQAOz DW1A0B diff --git a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po index 372cfc4df4..77943af54f 100644 --- a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document signatures" msgid "Date" msgstr "Date" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "لا شيء" @@ -45,64 +45,59 @@ msgstr "لا شيء" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Verify document signatures" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "On large databases this operation may take some time to execute." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo index a3d59316ccfa130e1be0fd56603e7ac9eb228d82..16aa0ea5c6d387cd011a2158bd6fb5acb131272c 100644 GIT binary patch delta 47 zcmZ3^wVZ2%2@|imu7Rnpk%fYxsg;T4WJjhYJU)qe>7|M3sa6U}>64!@MQ`?DzRd^# DIfo8n delta 47 zcmZ3^wVZ2%2@|iGuA!l>k+Fh-k(H_OWJjhYlRq&<@%SX>rI#kAr&=i_rEm6TzQYIr DKH3gl diff --git a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po index b0a31d6e7a..869192246c 100644 --- a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pavlin Koldamov , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Сигнатури на документа" msgid "Date" msgstr "Дата" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Ключ ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Няма" @@ -45,64 +44,59 @@ msgstr "Няма" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Файл със сигнатура" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "Изтриване на несвързани сигнатури" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,62 @@ msgid "Verify document signatures" msgstr "Проверете сигнатурите на документа" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "При големи бази данни тази операция може да отнеме известно време за изпълнение." +msgstr "" +"При големи бази данни тази операция може да отнеме известно време за " +"изпълнение." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo index 270f10e31db7a438462f54233d51a17da48f34f5..875a1271b0755507a371c9ea980f401d607122dd 100644 GIT binary patch delta 50 zcmdnVv6ExNJw{%0T?12HBMSvXQ!5k8$*&pr@%tp^rI#kAr&=i_6~{X{PF}$jy;+!9 GjS&Eu9}l$v delta 50 zcmdnVv6ExNJw{$LT|+}%BVz>vBP&zm$*&prP2R~A#qX1tmtLBfo@%9#R2=W*xLJr< Goe=<>qYtwH diff --git a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po index 1b58bda6c4..cfe727f597 100644 --- a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # www.ping.ba , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Potpisi dokumenta" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID ključa" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nijedno" @@ -45,64 +45,59 @@ msgstr "Nijedno" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Datoteka potpisa" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Provjeriti potpise dokumenta" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Na velikim bazama podataka ove operacije mogu potrajati neko vrijeme." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo index 9a860e19625770c944f86d8ff67fff5cf9c9896c..00d6aca64f360989023ae90e76cd065be798ce99 100644 GIT binary patch delta 46 zcmaFM`j&M=AS182u7Rnpk%fYxsg;T47|M3sa6UpiIe{^Mo&&-Y6k#F C>kiTY delta 46 zcmaFM`j&M=AS17tuA!l>k+Fh-k(H_O_$I5+|oJbpQZ6 Cs}0To diff --git a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po index 2bb0e24574..10d56f0d02 100644 --- a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "Dato" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ingen" @@ -44,64 +43,59 @@ msgstr "Ingen" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "På store databaser kan denne operation tage lidt tid at udføre." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo index 4eb6b4ed82cecc93172447d6268562f94194e7b8..d45ab8d3a8290ee41b27b01a53655db56a014640 100644 GIT binary patch delta 50 zcmbQLK2?3ge=c5gT?12HBMSvXQ!5k8$voW0`F#@e(n}N5Q>_$IQsZ4*Ctu=@-fYVg G!43e5L=T|= delta 50 zcmbQLK2?3ge=c4#T|+}%BVz>vBP&zm$voW0CqL$n;`d3+OD|1KPqk7=NsV`L-E6}X G$qoRK5D%XK diff --git a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po index 337be4e52f..72b203ea2a 100644 --- a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015 @@ -13,14 +13,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-20 22:09+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -31,17 +32,15 @@ msgstr "Dokumentenunterschriften" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Schlüssel-ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "Unterschrifts-ID" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nichts" @@ -49,64 +48,59 @@ msgstr "Nichts" msgid "Type" msgstr "Typ" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Schlüssel" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Passphrase" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Eingebettete Unterschrift?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Datum der Unterschrift" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Unterschrifts-Schlüssel-ID" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Unterschrifts-Schlüssel vorhanden?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Schlüssel-Fingerabdruck" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Erstellungsdatum des Schlüssels" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Ablaufdatum des Schlüssels" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Schlüssellänge" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Schlüssel-Verfahren" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "Schlüssel-Benutzer-ID" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Schlüssel-Typ" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Alle Dokumente überprüfen" @@ -142,55 +136,55 @@ msgstr "Unterschrift seperat" msgid "Sign embedded" msgstr "Unterschrift eingebettet" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Dokumentenversion" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Datum der Signierung" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Fingerabdruck des öffentlichen Schlüssels" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Dokumentenversion Unterschrift" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Dokumentenversionen Unterschriften" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Separat" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Eingebettet" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Dokumentenversion der eingebetteten Unterschrift" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Dokumentenversion der eingebetteten Unterschriften" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Unterschriftsdatei" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Dokumentenversion der seperaten Unterschrift" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Dokumentenversion der seperaten Unterschriften" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "Unterschrift" @@ -207,12 +201,10 @@ msgid "Delete detached signatures" msgstr "Separate Unterschriften löschen" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Separate Unterschriften der Dokumente herunterladen" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Separate Unterschriften der Dokumente hochladen" @@ -221,63 +213,61 @@ msgid "Verify document signatures" msgstr "Dokumentenunterschriften überprüfen" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Details der Unterschriften des Dokuments" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Passphrase wird benötigt um den Schlüssel zu entsperren" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Passphrase ist ungültig" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Dokumentenversion wurde erfolgreich signiert." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Dokumentenversion \"%s\" mit seperater Unterschrift signieren" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Dokumentenversion \"%s\" mit eingebetteter Unterschrift signieren" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Separate Unterschrift löschen: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Details für Signatur: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Unterschriften für Dokumentenversion: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Seperate Unterschrift für Dokumentenversion hochladen: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." +msgstr "" +"Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Alle Unterschriften der Dokumente überprüfen?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Überprüfung der Unterschriften erfolgreich eingereiht." diff --git a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo index 76295457a52435d38dc7a5edb2d43e5da94e855f..7cda87b10e7de2c8bc3c65c20018555083ee5428 100644 GIT binary patch delta 25 gcmey%@|R`8Z(eg<15;fi3k5?{D-+Aj9E_!m0CRu`S^xk5 delta 25 gcmey%@|R`8Z(cK9LqlC7V+8{vD^ugm9E_!m0CL0!NB{r; diff --git a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po index 9905a89654..d2d894e5c9 100644 --- a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -26,19 +26,19 @@ msgstr "Document signatures" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 +#: apps.py:94 models.py:47 #, fuzzy #| msgid "Key ID: %s" msgid "Key ID" msgstr "Key ID: %s" -#: apps.py:98 forms.py:71 models.py:41 +#: apps.py:98 forms.py:64 models.py:51 #, fuzzy #| msgid "Signature ID: %s" msgid "Signature ID" msgstr "Signature ID: %s" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "" @@ -46,63 +46,63 @@ msgstr "" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 +#: forms.py:46 #, fuzzy #| msgid "Signature file" msgid "Signature is embedded?" msgstr "Signature file" -#: forms.py:55 +#: forms.py:48 #, fuzzy #| msgid "Signature file" msgid "Signature date" msgstr "Signature file" -#: forms.py:58 +#: forms.py:51 #, fuzzy #| msgid "Signature ID: %s" msgid "Signature key ID" msgstr "Signature ID: %s" -#: forms.py:60 +#: forms.py:53 #, fuzzy #| msgid "Signature type: %s" msgid "Signature key present?" msgstr "Signature type: %s" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" @@ -150,65 +150,65 @@ msgstr "detached" msgid "Sign embedded" msgstr "embedded" -#: models.py:31 +#: models.py:41 #, fuzzy msgid "Document version" msgstr "document version" -#: models.py:35 +#: models.py:45 #, fuzzy msgid "Date signed" msgstr "download signature" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 #, fuzzy msgid "Document version signature" msgstr "document version signature" -#: models.py:52 +#: models.py:62 #, fuzzy msgid "Document version signatures" msgstr "document version signatures" -#: models.py:71 +#: models.py:81 #, fuzzy msgid "Detached" msgstr "detached" -#: models.py:73 +#: models.py:83 #, fuzzy msgid "Embedded" msgstr "embedded" -#: models.py:88 +#: models.py:98 #, fuzzy msgid "Document version embedded signature" msgstr "document version signature" -#: models.py:89 +#: models.py:99 #, fuzzy msgid "Document version embedded signatures" msgstr "document version signatures" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 #, fuzzy msgid "Document version detached signature" msgstr "document version signature" -#: models.py:127 +#: models.py:137 #, fuzzy msgid "Document version detached signatures" msgstr "document version signatures" -#: models.py:130 +#: models.py:140 #, fuzzy msgid "signature" msgstr "signatures" @@ -250,61 +250,61 @@ msgstr "Verify document signatures" msgid "View details of document signatures" msgstr "Verify document signatures" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 #, fuzzy msgid "Document version signed successfully." msgstr "document version signatures" -#: views.py:129 +#: views.py:117 #, fuzzy, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "document version signature" -#: views.py:240 +#: views.py:218 #, fuzzy, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "document version signature" -#: views.py:267 +#: views.py:245 #, fuzzy, python-format msgid "Delete detached signature: %s" msgstr "Download detached signatures" -#: views.py:292 +#: views.py:270 #, fuzzy, python-format #| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Document signatures" -#: views.py:339 +#: views.py:312 #, fuzzy, python-format msgid "Signatures for document version: %s" msgstr "signature properties for: %s" -#: views.py:375 +#: views.py:343 #, fuzzy, python-format msgid "Upload detached signature for document version: %s" msgstr "Upload detached signature for: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "" -#: views.py:393 +#: views.py:361 #, fuzzy #| msgid "Verify document signatures" msgid "Verify all document for signatures?" msgstr "Verify document signatures" -#: views.py:403 +#: views.py:371 #, fuzzy msgid "Signature verification queued successfully." msgstr "Detached signature uploaded successfully." diff --git a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo index 966a6c96d77e6082acdb0d9919d40d44e2bfd6d1..996d6e58032a4177aee5f293bb1af91e7980495a 100644 GIT binary patch delta 47 zcmeyM@_$Iizlz;j@~TF6U_zy DcwP?$ delta 47 zcmeyM@vBP&zm$voVPChz8s;_*q$OD|1KPqk7=E#54`6T=1o Ddmj$~ diff --git a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po index 3cc61a9523..a4319b3765 100644 --- a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 @@ -12,14 +12,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-23 06:48+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -30,17 +31,15 @@ msgstr "Firmas de documentos" msgid "Date" msgstr "Fecha" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Identificador de clave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID de firma" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ninguno" @@ -48,64 +47,59 @@ msgstr "Ninguno" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Llave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Contraseña" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "¿Firma integrada?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Fecha de la firma" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID de llave de firma" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "¿Llave de la firma presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Huella de la llave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Fecha de creación de la llave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Fecha de expiración de la llave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Tamaño de la llave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo de la llave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID de usuario de la llave" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo de llave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verificar todos los documents" @@ -141,55 +135,55 @@ msgstr "Firma aparte" msgid "Sign embedded" msgstr "Firma integrada" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versión de documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Fecha firmado" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Huella de llave publica" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Firma de versión de documento" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Firmas de versión de documento" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Aparte" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Integrado" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Firma integrada de versión de documento" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Firmas integradas de version de documento" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Archivo de firma" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Firma anejada de version de documento" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Firmas anejadas de version de documento" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "firma" @@ -206,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Borrar firmas separadas" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Descargar firma aparte de documentos" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Subir firmas aparte de documentos" @@ -220,63 +212,62 @@ msgid "Verify document signatures" msgstr "Verificar firmas de documentos" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Ver detalles de firma de documentos" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Se necesita contraseña para acceder a esta llave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Contraseña incorrecta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Versión de documento firmada con éxito." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Firmar versión de documento \"%s\" con una firma aparte " -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Firmar versión de documento \"%s\" con una firma integrada" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Borrar firma aparte: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Detalles para la firma: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Firmas para la versión de documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Subir firma aparte para la versión de documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "En bases de datos de gran tamaño esta operación puede tardar algún tiempo en ejecutarse." +msgstr "" +"En bases de datos de gran tamaño esta operación puede tardar algún tiempo en " +"ejecutarse." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "¿Verificar todos los documentos para firmas?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verificación de firmas colocada en la cola." diff --git a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo index 5339cabc6033709c6d3bde98217906ffca61bbb4..d05e53cb2a9f377664321b6c1e3571d3373914e6 100644 GIT binary patch delta 47 zcmcb^bBAX`G&8Tcu7Rnpk%fYxsg;T47|M3sa6VUiIX{5qBj?^yk-Od DQEU!* delta 47 zcmcb^bBAX`G&8T6uA!l>k+Fh-k(H_O_%z5;qsHykP_Y DOTrFx diff --git a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po index fc81baf490..2e047f9478 100644 --- a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "امضاهای سند" msgid "Date" msgstr "تاریخ" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "شناسه کلید" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "هیچ" @@ -44,64 +43,59 @@ msgstr "هیچ" msgid "Type" msgstr "نوع" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "نسخه سند" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "امضای نسخه سند" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "امضاهای نسخه سند" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "جدا شده" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "داخلی و یا جا سازی شده" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "فایل امضا" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "حذف امضاهای جدا شده" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "بررسی امضای سند" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "در پایگاه داده بزرگ این عملیات مدت زیادی بطول خواهد انجامید." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo index d78dac99aa3b4d7a61ebe2a71db5dcbd282b22af..2b6ce1db366ebbac832fd1c2d7c482330fe5caef 100644 GIT binary patch delta 47 zcmZ3azDRw;e=c5gT?12HBMSvXQ!5k8$voWqd3+M{(n}N5Q>_%ziYA}pj^1pvBP&zm$voWqC*RD diff --git a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po index f575ff469c..f4077f327a 100644 --- a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Bruno CAPELETO , 2016 @@ -12,14 +12,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-23 19:54+0000\n" "Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -30,17 +31,15 @@ msgstr "Signatures du document" msgid "Date" msgstr "Date" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID de la clé" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID de la signature" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Aucune" @@ -48,64 +47,59 @@ msgstr "Aucune" msgid "Type" msgstr "Type" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Clé" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Phrase secrète" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "La signature est-elle intégrée?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Date de la signature" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Identifiant de la clef de signature" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Clé de signature présente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Emprunte de la clef" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Date de création de la clé" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Date d'expiration de la clé" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Longueur de la clé" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algorithme de la clé" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "Clé de l'ID utilisateur" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Type de clé" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Vérifier tous les documents" @@ -141,55 +135,55 @@ msgstr "Signature détachée" msgid "Sign embedded" msgstr "Signature intégrée" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Version du document" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Date de signature" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Emprunte de la clef publique" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Signature de la version du document" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Signatures pour la version du document" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Externe" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Intégré" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Signature intégrée de la version du document" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Signatures intégrées de la version du document" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Fichier de signature" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Signature externe de la version du document" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Signatures externes de la version du document" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "signature" @@ -206,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Suppression des signatures détachées" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Télécharger les signatures externes du document" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Transmettre les signatures externes du document" @@ -220,63 +212,62 @@ msgid "Verify document signatures" msgstr "Vérifier les signatures du document" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Voir le détails des signatures du document" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Une phrase secrète est nécessaire pour déverrouiller cette clé" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Phrase secrète incorrecte" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Signature de la version du document réussie." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Signer la version \"%s\" du document avec une signature externe" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Signer la version \"%s\" du document avec une signature intégrée" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Supprimer la signature détachée: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Détails de la signature: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Signatures pour cette version du document: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Transférer une signature détachée pour la version du document: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Sur de grosses bases de données, cette opération peut prendre un certain temps." +msgstr "" +"Sur de grosses bases de données, cette opération peut prendre un certain " +"temps." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Vérifier la signature des documents?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Vérification de la signature ajoutée à la file d'attente" diff --git a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo index 41a1aa6146933863b45868edaa5dd352796c0df3..b97959be9ba7e45661049653676590acdc616c9f 100644 GIT binary patch delta 46 zcmX@fdXja64kNF*u7Rnpk%fYxsg;T4WJ|^+JU)qe>7|M3sa6UZrIYV4Mo)HOY6So? CrVbSV delta 46 zcmX@fdXja64kNFbuA!l>k+Fh-k(H_OWJ|^+lV34L@%SX>rI#kAr&=jwlumYLY6Ac_ CISvp2 diff --git a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po index 0180d893cc..cd6c0ac816 100644 --- a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Semmi" @@ -44,64 +43,59 @@ msgstr "Semmi" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "A nagy adatbázisok esetében a művelet sokáig is tarthat." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo index 3667e8c27963e5b2890f0a1dcf1eb8155b42ee0e..fa78f1a7e80421489bea5d8850f195eb6e81418a 100644 GIT binary patch delta 46 zcmdnNx`TBCKO?WXu7Rnpk%fYxsg;T4WEsY#JU)qe>7|M3sa6V^DU%N{Mo-pYng9SJ C$qjt~ delta 46 zcmdnNx`TBCKO?W1uA!l>k+Fh-k(H_OWEsY#lg}|m@%SX>rI#kAr&=jwrc736ng{?V CFb#MB diff --git a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po index d5e39cb143..4ef6ff2c40 100644 --- a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "" @@ -44,64 +43,59 @@ msgstr "" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,62 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu untuk dilaksanakan." +msgstr "" +"Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu " +"untuk dilaksanakan." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo index 58b430eeda592b7075f146e45212a62acf4ac29a..d647d4a93cb933aac4b9231570d6623cac993b82 100644 GIT binary patch delta 47 zcmaE<@=|5Pe=c5gT?12HBMSvXQ!5k8$voWqd3+M{(n}N5Q>_#-OD3PvBP&zm$voWqC*R, 2012 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 13:19+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -29,17 +30,15 @@ msgstr "Firme documento" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID Chiave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID Firma" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nessuno" @@ -47,64 +46,59 @@ msgstr "Nessuno" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Chiave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Passphrase" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "La firma è integrata?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Data firma" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID chiave di firma" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "La chiave di firma è presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Impronta della chiave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Data di creazione chiave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Data scadenza chiave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Lunghezza chiave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo chiave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID chiave utente" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo chiave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verifica tutti i documenti" @@ -140,55 +134,55 @@ msgstr "Firma scollegata" msgid "Sign embedded" msgstr "Firma incorporata" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versione documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Data firma" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Chiave pubblica impronta" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Versione della firma del documento" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Versioni delle firma del documento" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Distaccato" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Incorporata" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Firma incorporata versione documento" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Firme incorporate versione documento" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "File della firma" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Firma versione del documento distaccata" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Firma distaccata versione dei documenti" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "firma" @@ -205,12 +199,10 @@ msgid "Delete detached signatures" msgstr "Elimina firme allegate" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Scarica firme scollegate documenti" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Carica firme scollegate documenti" @@ -219,63 +211,62 @@ msgid "Verify document signatures" msgstr "Verifica la firma del documento" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Vedi dettagli delle firme documento" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "è richiesta la passphrase per sbloccare questa chiave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "La passphrase non è corretta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "La versione del documento è stata firmata con successo." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Firma la versione del documento \"%s\" con firma allegata" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Firma la versione del documento \"%s\" con la firma integrata" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Cancella la firma allegata: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Dettagli per la firma: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Firme per la versione del documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Carica la firma scollegata per la versione documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di tempo." +msgstr "" +"Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di " +"tempo." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Verificare le firme per tutti i documenti?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verifica firme messo in coda con successo." diff --git a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo index c3ff84a49d5c702aa8cd5b0e1974a273cc002800..092ae431c275d37bddce3703e767c262084d207f 100644 GIT binary patch delta 50 zcmZ3^x14W-Fbl7_u7Rnpk%fYxsg;T4WCfOU{62|!>7|M3sa6VkIq`lzli#vLZ;oI+ G&jk+Fh-k(H_OWCfOUlmD?q@%tp^rI#kAr&=lG<;45>Yz}9= Gzz6_pau03* diff --git a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po index 066f1c5c20..734f31fb28 100644 --- a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-09 16:39+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Documenthandtekeningen" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Sleutel-ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "Handtekening-ID" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Geen" @@ -45,64 +44,59 @@ msgstr "Geen" msgid "Type" msgstr "Type" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Sleutel" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Datum van handtekening" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Handtekening sleutel-ID" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Sleutelverloopdatu" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Sleutellengte" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Sleutelsoort" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verifieer alle documenten" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "Teken ingesloten" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Documentversie" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Losgekoppeld" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Ingesloten" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Handtekeningbestand" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "Handtekening" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Voor een grote database kan deze operatie lang duren." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo index 9097a5b7f7f6af792ebcc3587fcfcfba97b4b7f7..f995fbf736ff4c555d635b53bff354056825c2ff 100644 GIT binary patch delta 47 zcmaFI@s4AIH50G7u7Rnpk%fYxsg;T4WDll=JU)qe>7|M3sa6UFIg?*7MQ;vZmSY3} DQ)v!W delta 47 zcmaFI@s4AIH50FyuA!l>k+Fh-k(H_OWDll=lfN-V@%SX>rI#kAr&=i#, 2012 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document signatures" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Brak" @@ -45,64 +45,59 @@ msgstr "Brak" msgid "Type" msgstr "Typ" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Wersja dokumentu" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Verify document signatures" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Na dużych bazach danych operacja może chwilę potrwać." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo index e95fd256603e6573ec4380d7827fc68132343568..3ed372d87663e77648866e9a8df129a68ff3a378 100644 GIT binary patch delta 47 zcmdnbv7cju0u!&fu7Rnpk%fYxsg;T4WL>7EJU)qe>7|M3sa6UFC6g~QMQ^rbW@7{Z DI@}G1 delta 46 zcmdnbv7cju0u!&9uA!l>k+Fh-k(H_OWL>7ElkYP{ar-3ZrI#kAr&=i#Y&K`+U<3d! C=?x74 diff --git a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po index 60ae06c37e..3e6debac58 100644 --- a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Vítor Figueiró , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Assinaturas do documento" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID da chave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nenhum" @@ -45,64 +44,59 @@ msgstr "Nenhum" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Ficheiro de assinatura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "Verificar as assinaturas do documento" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Esta operação pode levar algum tempo em bases de dados grandes." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo index 87da528bb53e1583c113c27b2b013d18f90f2074..6e9f51a820632b52d8fb5f125c07c26142fe1cea 100644 GIT binary patch delta 50 zcmX@6c1&%_#VO5&Y@CST)@-t5T3 G$_@aYZx7%A delta 50 zcmX@6c1&%vBP&zm$voVrCqL(o;`d3+OD|1KPqk7gD2aCp+U&r? G#ts0a;}6~d diff --git a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po index c0e3f7f3b5..7096124e2c 100644 --- a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 22:53+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -28,17 +29,15 @@ msgstr "Assinaturas de documentos" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID da chave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID da assinatura" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nenhum" @@ -46,64 +45,59 @@ msgstr "Nenhum" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Chave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Senha" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Assinatura integrada?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Data da assinatura" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID da chave da assinatura" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Chave da assinatura presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Impressão digital da chave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Data de criação da chave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Data de expiração da chave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Tamanho da chave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo da chave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID de usuário da chave" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo de chave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verificar todos os documentos" @@ -139,55 +133,55 @@ msgstr "Assinatura destacada" msgid "Sign embedded" msgstr "Assinatura integrada" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versão do Documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Data da assinatura" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Impressão digital da chave pública" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Versão do documento da assinatura " -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Versão do documento das assinaturas" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "destacado" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "embutido" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Versão do documento da assinatura integrada" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Versão do documento das assinaturas integradas" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Arquivo de assinatura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Versão do documento da assinatura destacada" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Versão do documento das assinaturas destacadas" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "assinatura" @@ -204,12 +198,10 @@ msgid "Delete detached signatures" msgstr "Excluir assinaturas desanexados" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Baixar assinatura destacada de documentos" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Carregar assinaturas destacadas de documentos" @@ -218,63 +210,61 @@ msgid "Verify document signatures" msgstr "Verificar as assinaturas de documentos" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Ver detalhes da assinatura de documentos" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "É preciso senha para acessar a chave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Senha incorreta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "A versão do documento foi assinada com sucesso." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Assinar a versão do documento \"%s\" com uma assinatura destacada" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Assinar uma versão do documento \"%s\" com uma assinatura integrada" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Excluir assinatura destacada: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Detalhes para a assinatura: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Assinaturas para a versão do documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Carregar a assinatura destacada para a versão do documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Em grandes bases de dados esta operação pode levar algum tempo para executar." +msgstr "" +"Em grandes bases de dados esta operação pode levar algum tempo para executar." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Verificar todos os documentos para assinaturas?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verificação de assinaturas colocada em fila." diff --git a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo index 97d263275eb895fb88c84b202595c51e5007efe1..ac1f1121c7201b54da38fac61373db41cf2905ff 100644 GIT binary patch delta 50 zcmbQuIh%8XH50G7u7Rnpk%fYxsg;T4WDlkd{62|!>7|M3sa6U_`SC&ilfN@XZ%$&i GWCQ?YB@YAu delta 50 zcmbQuIh%8XH50FyuA!l>k+Fh-k(H_OWDlkdlR229__$=^5cX2HzzV% GF#-To2o3`P diff --git a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po index b02cd1679c..6fb87518fd 100644 --- a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document de semnături" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID cheie" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nici unul" @@ -45,64 +45,59 @@ msgstr "Nici unul" msgid "Type" msgstr "Tip" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versiune document" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Fisier semnătura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,61 @@ msgid "Verify document signatures" msgstr "Verifica semnăturile de documente" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Pe baze de date mari, această operație poate dura ceva timp pentru a executa." +msgstr "" +"Pe baze de date mari, această operație poate dura ceva timp pentru a executa." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo index f66faf89e34a70c20fab29cdfec4aedfa65fa2c3..1cb5e15ea2d4d4eea5fb301bbcbccb2871325a29 100644 GIT binary patch delta 47 zcmaE*_eyWWe=c5gT?12HBMSvXQ!5k8$voV1d3+M{(n}N5Q>_$=N++-2j@~T56U7Yx Dd9e=> delta 47 zcmaE*_eyWWe=c4#T|+}%BVz>vBP&zm$voV1CvW49;_*q$OD|1KPqk7gD&5S_6U_|( Dd-V?t diff --git a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po index 5a32610ce7..640ed250c2 100644 --- a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -10,15 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-19 20:01+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -28,17 +31,15 @@ msgstr "Подписи документа" msgid "Date" msgstr "Дата" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID ключа" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID подписи" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ни один" @@ -46,64 +47,59 @@ msgstr "Ни один" msgid "Type" msgstr "Тип" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Ключ" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Кодовая фраза" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Подпись встроена?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Дата подписи" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID ключа подписи" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Ключ подписи предоставлен?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Отпечаток ключа" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Дата создания ключа" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Дата устаревания ключа" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Длина ключа" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Алгоритм ключа" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID пользователя ключа" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Тип ключа" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Проверить все документы" @@ -139,55 +135,55 @@ msgstr "Подпись отеделена" msgid "Sign embedded" msgstr "Подпись встроена" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Версия документа" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Дата подписи" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Отпечаток публичного ключа" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Подпись версии документа" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Подписи версий документов" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Отделена" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Встроена" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Встроенная подпись версии документа" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Встроенные подписи версий документов" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Файл подписи" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Отделённая подпись версии документа" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Отделённые подписи версий документов" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "подпись" @@ -204,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Удаление отделенных подписей" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Скачать отделенные подписи документов" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Вгрузить отделенные подписи документов" @@ -218,63 +212,62 @@ msgid "Verify document signatures" msgstr "Проверить подпись документа" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Посмотреть подробности подписей документов" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Для разблокироваки этого ключа необходима кодовая фраза" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Кодовая фраза неверна." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Версия документа успешно подписана." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Подписать версию документа \"%s\" отделённой подписью" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Подписать версию документа \"%s\" встроенной подписью" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Удалить отделённую подпись: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Подробности для подписи: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Подписи для документа версии: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Выгрузить отделённую подпись для версии документа: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "В больших базах данных эта операция может занять некоторое время для выполнения." +msgstr "" +"В больших базах данных эта операция может занять некоторое время для " +"выполнения." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Проверить подписи во всех документах?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Верификация сигнатуры добавлена в очередь." diff --git a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo index 89a180821a31b1ef602094cade3f9b0a13d75a95..70e0cd4442faeaa9569f6e258e88f29d4015264b 100644 GIT binary patch delta 49 zcmbQiHiK=04kNF*u7Rnpk%fYxsg;T4WJ|_P{62|!>7|M3sa6WbIq|`slV34LPYz`| F3;<2&4k+Fh-k(H_OWJ|_PlYcWt@%tp^rI#kAr&=i#=fnqlP7Yx@ F0svI<4;}yj diff --git a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po index 50e13a83cc..b65172f98c 100644 --- a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -26,17 +28,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Brez" @@ -44,64 +44,59 @@ msgstr "Brez" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +209,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Če je baza velika lahko operacija zahteva nekaj več časa da se izvrši." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo index 47fe2505cbcb1b289cc7651e07c5f89d755bb1ee..9075060959198b4607c82909532df5d291dabe9c 100644 GIT binary patch delta 49 zcmZ3&wuEg%4kNF*u7Rnpk%fYxsg;T47|M3sa6VQnekzMleL+mCr@MQ F0{~y@4-WtU delta 49 zcmZ3&wuEg%4kNFbuA!l>k+Fh-k(H_O_%rGULPiCQoJR F2LM|14-EhS diff --git a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po index 2a771651f4..e0e5dafae0 100644 --- a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Chữ kí tài liệu" msgid "Date" msgstr "Ngày" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "None" @@ -45,64 +44,59 @@ msgstr "None" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "File lưu chữ kí" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "xác nhận chữ kí tài liệu" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "" -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo index 89fda776a719efa5a1a0f5fd1b7fc07cff922cc5..3864017893a89e8971a85e38bf275a8cda4d240a 100644 GIT binary patch delta 49 zcmeyt{)2skBonW>u7Rnpk%fYxsg;T4WHqL>{62|!>7|M3sa6VA8S&13lP@tvPqt;= F4FGGA4|@Or delta 49 zcmeyt{)2skBonWhuA!l>k+Fh-k(H_OWHqL>lOHoh@%tp^rI#kAr&=jgWyCxCO}1g) F0|0SL4|xCp diff --git a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po index 4cd853a3a0..498c5974a8 100644 --- a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "文档签名" msgid "Date" msgstr "日期" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "密钥ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "无" @@ -45,64 +44,59 @@ msgstr "无" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "签名文件" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "删除分离的签名" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "核对文档签名" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "在大数据库中,此操作将比较耗时。" -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/models.py b/mayan/apps/document_signatures/models.py index 53dcff0de7..fede657b90 100644 --- a/mayan/apps/document_signatures/models.py +++ b/mayan/apps/document_signatures/models.py @@ -26,6 +26,16 @@ def upload_to(*args, **kwargs): @python_2_unicode_compatible class SignatureBaseModel(models.Model): + """ + Fields: + * key_id - Key Identifier - This is what identifies uniquely a key. Not + two keys in the world have the same Key ID. The Key ID is also used to + locate a key in the key servers: http://pgp.mit.edu + * signature_id - Signature ID - Every time a key is used to sign something + it will generate a unique signature ID. No two signature IDs are the same, + even when using the same key. + """ + document_version = models.ForeignKey( DocumentVersion, editable=False, related_name='signatures', verbose_name=_('Document version') diff --git a/mayan/apps/document_states/admin.py b/mayan/apps/document_states/admin.py index 9243c1cc65..6bdac355b2 100644 --- a/mayan/apps/document_states/admin.py +++ b/mayan/apps/document_states/admin.py @@ -30,7 +30,7 @@ class WorkflowAdmin(admin.ModelAdmin): filter_horizontal = ('document_types',) inlines = (WorkflowStateInline, WorkflowTransitionInline) - list_display = ('label', 'document_types_list') + list_display = ('label', 'internal_name', 'document_types_list') @admin.register(WorkflowInstance) diff --git a/mayan/apps/document_states/api_views.py b/mayan/apps/document_states/api_views.py new file mode 100644 index 0000000000..62de61d99e --- /dev/null +++ b/mayan/apps/document_states/api_views.py @@ -0,0 +1,603 @@ +from __future__ import absolute_import, unicode_literals + +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document, DocumentType +from documents.permissions import permission_document_type_view +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Workflow +from .permissions import ( + permission_workflow_create, permission_workflow_delete, + permission_workflow_edit, permission_workflow_view +) +from .serializers import ( + NewWorkflowDocumentTypeSerializer, WorkflowDocumentTypeSerializer, + WorkflowInstanceSerializer, WorkflowInstanceLogEntrySerializer, + WorkflowSerializer, WorkflowStateSerializer, WorkflowTransitionSerializer, + WritableWorkflowInstanceLogEntrySerializer, WritableWorkflowSerializer, + WritableWorkflowTransitionSerializer +) + + +class APIDocumentTypeWorkflowListView(generics.ListAPIView): + serializer_class = WorkflowSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the document type workflows. + """ + return super(APIDocumentTypeWorkflowListView, self).get(*args, **kwargs) + + def get_document_type(self): + document_type = get_object_or_404(DocumentType, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document_type + ) + + return document_type + + def get_queryset(self): + return self.get_document_type().workflows.all() + + +class APIWorkflowDocumentTypeList(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_document_type_view,), + } + + def get(self, *args, **kwargs): + """ + Returns a list of all the document types attached to a workflow. + """ + + return super(APIWorkflowDocumentTypeList, self).get(*args, **kwargs) + + def get_queryset(self): + """ + This view returns a list of document types that belong to a workflow + RESEARCH: Could the documents.api_views.APIDocumentTypeList class + be subclasses for this? + """ + + return self.get_workflow().document_types.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowDocumentTypeSerializer + elif self.request.method == 'POST': + return NewWorkflowDocumentTypeSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + """ + Retrieve the parent workflow of the workflow document type. + Perform custom permission and access check. + """ + + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, request, *args, **kwargs): + """ + Attach a document type to a specified workflow. + """ + + return super( + APIWorkflowDocumentTypeList, self + ).post(request, *args, **kwargs) + + +class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + lookup_url_kwarg = 'document_type_pk' + mayan_object_permissions = { + 'GET': (permission_document_type_view,), + } + serializer_class = WorkflowDocumentTypeSerializer + + def delete(self, request, *args, **kwargs): + """ + Remove a document type from the selected workflow. + """ + + return super( + APIWorkflowDocumentTypeView, self + ).delete(request, *args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected workflow document type. + """ + + return super(APIWorkflowDocumentTypeView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().document_types.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + """ + This view returns a document types that belongs to a workflow + RESEARCH: Could the documents.api_views.APIDocumentTypeView class + be subclasses for this? + RESEARCH: Since this is a parent-child API view could this be made + into a generic API class? + RESEARCH: Reuse get_workflow method from APIWorkflowDocumentTypeList? + """ + + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def perform_destroy(self, instance): + """ + RESEARCH: Move this kind of methods to the serializer instead it that + ability becomes available in Django REST framework + """ + + self.get_workflow().document_types.remove(instance) + + +class APIWorkflowListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_workflow_view,), + 'POST': (permission_workflow_create,) + } + permission_classes = (MayanPermission,) + queryset = Workflow.objects.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the workflows. + """ + return super(APIWorkflowListView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowSerializer + else: + return WritableWorkflowSerializer + + def post(self, *args, **kwargs): + """ + Create a new workflow. + """ + return super(APIWorkflowListView, self).post(*args, **kwargs) + + +class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_workflow_delete,), + 'GET': (permission_workflow_view,), + 'PATCH': (permission_workflow_edit,), + 'PUT': (permission_workflow_edit,) + } + queryset = Workflow.objects.all() + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow. + """ + + return super(APIWorkflowView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow. + """ + + return super(APIWorkflowView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowSerializer + else: + return WritableWorkflowSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow. + """ + + return super(APIWorkflowView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow. + """ + + return super(APIWorkflowView, self).put(*args, **kwargs) + + +# Workflow state views + + +class APIWorkflowStateListView(generics.ListCreateAPIView): + serializer_class = WorkflowStateSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the workflow states. + """ + return super(APIWorkflowStateListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().states.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Create a new workflow state. + """ + return super(APIWorkflowStateListView, self).post(*args, **kwargs) + + +class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'state_pk' + serializer_class = WorkflowStateSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow state. + """ + + return super(APIWorkflowStateView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow state. + """ + + return super(APIWorkflowStateView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().states.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow state. + """ + + return super(APIWorkflowStateView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow state. + """ + + return super(APIWorkflowStateView, self).put(*args, **kwargs) + + +# Workflow transition views + + +class APIWorkflowTransitionListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the workflow transitions. + """ + return super(APIWorkflowTransitionListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().transitions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowTransitionSerializer + else: + return WritableWorkflowTransitionSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Create a new workflow transition. + """ + return super(APIWorkflowTransitionListView, self).post(*args, **kwargs) + + +class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'transition_pk' + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().transitions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowTransitionSerializer + else: + return WritableWorkflowTransitionSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).put(*args, **kwargs) + + +# Document workflow views + + +class APIWorkflowInstanceListView(generics.ListAPIView): + serializer_class = WorkflowInstanceSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the document workflows. + """ + return super(APIWorkflowInstanceListView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().workflows.all() + + +class APIWorkflowInstanceView(generics.RetrieveAPIView): + lookup_url_kwarg = 'workflow_pk' + serializer_class = WorkflowInstanceSerializer + + def get(self, *args, **kwargs): + """ + Return the details of the selected document workflow. + """ + + return super(APIWorkflowInstanceView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().workflows.all() + + +class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the document workflows log entries. + """ + return super(APIWorkflowInstanceLogEntryListView, self).get( + *args, **kwargs + ) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + if self.request.method == 'GET': + """ + Only test for permission if reading. If writing, the permission + will be checked in the serializer + + IMPROVEMENT: + When writing, add check for permission or ACL for the workflow. + Failing that, check for ACLs for any of the workflow's transitions. + Failing that, then raise PermissionDenied + """ + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowInstanceLogEntrySerializer + else: + return WritableWorkflowInstanceLogEntrySerializer + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow_instance': self.get_workflow_instance(), + 'view': self + } + + def get_queryset(self): + return self.get_workflow_instance().log_entries.all() + + def get_workflow_instance(self): + workflow = get_object_or_404( + self.get_document().workflows, pk=self.kwargs['workflow_pk'] + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Transition a document workflow by creating a new document workflow + log entry. + """ + return super(APIWorkflowInstanceLogEntryListView, self).post(*args, **kwargs) diff --git a/mayan/apps/document_states/apps.py b/mayan/apps/document_states/apps.py index 7e71d5b1a2..6a16143c09 100644 --- a/mayan/apps/document_states/apps.py +++ b/mayan/apps/document_states/apps.py @@ -1,17 +1,25 @@ from __future__ import unicode_literals from django.apps import apps -from django.db.models.signals import post_save +from django.db.models.signals import pre_delete, post_delete, post_save from django.utils.translation import ugettext_lazy as _ -from common import ( - MayanAppConfig, menu_facet, menu_object, menu_secondary, menu_setup, - menu_sidebar -) -from common.widgets import two_state_template -from navigation import SourceColumn +from kombu import Exchange, Queue -from .handlers import launch_workflow +from acls import ModelPermission +from acls.links import link_acl_list +from common import ( + MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary, + menu_setup, menu_sidebar, menu_tools +) +from common.classes import ModelAttribute +from common.widgets import two_state_template +from mayan.celery import app +from navigation import SourceColumn +from rest_api.classes import APIEndPoint + +from .classes import DocumentStateHelper +from .handlers import handler_index_document, launch_workflow from .links import ( link_document_workflow_instance_list, link_setup_workflow_document_types, link_setup_workflow_create, link_setup_workflow_delete, @@ -20,29 +28,72 @@ from .links import ( link_setup_workflow_state_delete, link_setup_workflow_state_edit, link_setup_workflow_transitions, link_setup_workflow_transition_create, link_setup_workflow_transition_delete, link_setup_workflow_transition_edit, - link_workflow_instance_detail, link_workflow_instance_transition + link_tool_launch_all_workflows, link_workflow_instance_detail, + link_workflow_instance_transition, link_workflow_document_list, + link_workflow_list, link_workflow_state_document_list, + link_workflow_state_list ) +from .permissions import permission_workflow_transition class DocumentStatesApp(MayanAppConfig): app_url = 'states' + has_tests = True name = 'document_states' - test = True verbose_name = _('Document states') def ready(self): super(DocumentStatesApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) + Document.add_to_class( + 'workflow', DocumentStateHelper.constructor + ) + Workflow = self.get_model('Workflow') WorkflowInstance = self.get_model('WorkflowInstance') WorkflowInstanceLogEntry = self.get_model('WorkflowInstanceLogEntry') + WorkflowRuntimeProxy = self.get_model('WorkflowRuntimeProxy') WorkflowState = self.get_model('WorkflowState') + WorkflowStateRuntimeProxy = self.get_model('WorkflowStateRuntimeProxy') WorkflowTransition = self.get_model('WorkflowTransition') + ModelAttribute( + Document, 'workflow.< workflow internal name >.get_current_state', + label=_('Current state of a workflow'), description=_( + 'Return the current state of the selected workflow' + ), type_name=['property', 'indexing'] + ) + ModelAttribute( + Document, + 'workflow.< workflow internal name >.get_current_state.completion', + label=_('Current state of a workflow'), description=_( + 'Return the completion value of the current state of the ' + 'selected workflow' + ), type_name=['property', 'indexing'] + ) + + ModelPermission.register( + model=Workflow, permissions=(permission_workflow_transition,) + ) + + ModelPermission.register( + model=WorkflowTransition, + permissions=(permission_workflow_transition,) + ) + + SourceColumn( + source=Workflow, label=_('Label'), attribute='label' + ) + SourceColumn( + source=Workflow, label=_('Internal name'), + attribute='internal_name' + ) SourceColumn( source=Workflow, label=_('Initial state'), func=lambda context: context['object'].get_initial_state() or _('None') @@ -108,14 +159,32 @@ class DocumentStatesApp(MayanAppConfig): attribute='destination_state' ) + app.conf.CELERY_QUEUES.extend( + ( + Queue( + 'document_states', Exchange('document_states'), + routing_key='converter' + ), + ) + ) + + app.conf.CELERY_ROUTES.update( + { + 'document_states.tasks.task_launch_all_workflows': { + 'queue': 'document_states' + }, + } + ) + menu_facet.bind_links( links=(link_document_workflow_instance_list,), sources=(Document,) ) + menu_main.bind_links(links=(link_workflow_list,), position=10) menu_object.bind_links( links=( link_setup_workflow_states, link_setup_workflow_transitions, link_setup_workflow_document_types, link_setup_workflow_edit, - link_setup_workflow_delete + link_acl_list, link_setup_workflow_delete ), sources=(Workflow,) ) menu_object.bind_links( @@ -126,7 +195,7 @@ class DocumentStatesApp(MayanAppConfig): ) menu_object.bind_links( links=( - link_setup_workflow_transition_edit, + link_setup_workflow_transition_edit, link_acl_list, link_setup_workflow_transition_delete ), sources=(WorkflowTransition,) ) @@ -136,6 +205,16 @@ class DocumentStatesApp(MayanAppConfig): link_workflow_instance_transition ), sources=(WorkflowInstance,) ) + menu_object.bind_links( + links=( + link_workflow_document_list, link_workflow_state_list, + ), sources=(WorkflowRuntimeProxy,) + ) + menu_object.bind_links( + links=( + link_workflow_state_document_list, + ), sources=(WorkflowStateRuntimeProxy,) + ) menu_secondary.bind_links( links=(link_setup_workflow_list, link_setup_workflow_create), sources=( @@ -143,6 +222,12 @@ class DocumentStatesApp(MayanAppConfig): 'document_states:setup_workflow_list' ) ) + menu_secondary.bind_links( + links=(link_workflow_list,), + sources=( + WorkflowRuntimeProxy, + ) + ) menu_setup.bind_links(links=(link_setup_workflow_list,)) menu_sidebar.bind_links( links=( @@ -150,7 +235,16 @@ class DocumentStatesApp(MayanAppConfig): link_setup_workflow_transition_create ), sources=(Workflow,) ) + menu_tools.bind_links(links=(link_tool_launch_all_workflows,)) post_save.connect( launch_workflow, dispatch_uid='launch_workflow', sender=Document ) + + # Index updating + + post_save.connect( + handler_index_document, + dispatch_uid='handler_index_document_save', + sender=WorkflowInstanceLogEntry + ) diff --git a/mayan/apps/document_states/classes.py b/mayan/apps/document_states/classes.py new file mode 100644 index 0000000000..cba92b76e0 --- /dev/null +++ b/mayan/apps/document_states/classes.py @@ -0,0 +1,13 @@ +from __future__ import unicode_literals + +from common.classes import PropertyHelper + + +class DocumentStateHelper(PropertyHelper): + @staticmethod + @property + def constructor(*args, **kwargs): + return DocumentStateHelper(*args, **kwargs) + + def get_result(self, name): + return self.instance.workflows.get(workflow__internal_name=name) diff --git a/mayan/apps/document_states/forms.py b/mayan/apps/document_states/forms.py index 98ead3a160..ca8612f170 100644 --- a/mayan/apps/document_states/forms.py +++ b/mayan/apps/document_states/forms.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django import forms from django.utils.translation import ugettext_lazy as _ @@ -8,7 +8,7 @@ from .models import Workflow, WorkflowState, WorkflowTransition class WorkflowForm(forms.ModelForm): class Meta: - fields = ('label',) + fields = ('label', 'internal_name') model = Workflow @@ -32,11 +32,16 @@ class WorkflowTransitionForm(forms.ModelForm): class WorkflowInstanceTransitionForm(forms.Form): def __init__(self, *args, **kwargs): - workflow = kwargs.pop('workflow') + user = kwargs.pop('user') + workflow_instance = kwargs.pop('workflow_instance') super(WorkflowInstanceTransitionForm, self).__init__(*args, **kwargs) - self.fields['transition'].choices = workflow.get_transition_choices().values_list('pk', 'label') + self.fields[ + 'transition' + ].queryset = workflow_instance.get_transition_choices(_user=user) - transition = forms.ChoiceField(label=_('Transition')) + transition = forms.ModelChoiceField( + label=_('Transition'), queryset=WorkflowTransition.objects.none() + ) comment = forms.CharField( label=_('Comment'), required=False, widget=forms.widgets.Textarea() ) diff --git a/mayan/apps/document_states/handlers.py b/mayan/apps/document_states/handlers.py index 293d6a859c..fcdef979cf 100644 --- a/mayan/apps/document_states/handlers.py +++ b/mayan/apps/document_states/handlers.py @@ -2,6 +2,8 @@ from __future__ import unicode_literals from django.apps import apps +from document_indexing.tasks import task_index_document + def launch_workflow(sender, instance, created, **kwargs): Workflow = apps.get_model( @@ -10,3 +12,11 @@ def launch_workflow(sender, instance, created, **kwargs): if created: Workflow.objects.launch_for(instance) + + +def handler_index_document(sender, **kwargs): + task_index_document.apply_async( + kwargs=dict( + document_id=kwargs['instance'].workflow_instance.document.pk + ) + ) diff --git a/mayan/apps/document_states/links.py b/mayan/apps/document_states/links.py index f9a0e3bba3..f2d41f7e58 100644 --- a/mayan/apps/document_states/links.py +++ b/mayan/apps/document_states/links.py @@ -6,7 +6,7 @@ from navigation import Link from .permissions import ( permission_workflow_create, permission_workflow_delete, - permission_workflow_edit, permission_workflow_transition, + permission_workflow_edit, permission_workflow_tools, permission_workflow_view, ) @@ -71,12 +71,36 @@ link_setup_workflow_transitions = Link( permissions=(permission_workflow_view,), text=_('Transitions'), view='document_states:setup_workflow_transitions', args='object.pk' ) +link_tool_launch_all_workflows = Link( + icon='fa fa-sitemap', + permissions=(permission_workflow_tools,), + text=_('Launch all workflows'), + view='document_states:tool_launch_all_workflows' +) link_workflow_instance_detail = Link( permissions=(permission_workflow_view,), text=_('Detail'), view='document_states:workflow_instance_detail', args='resolved_object.pk' ) link_workflow_instance_transition = Link( - permissions=(permission_workflow_transition,), text=_('Transition'), + text=_('Transition'), view='document_states:workflow_instance_transition', args='resolved_object.pk' ) +link_workflow_document_list = Link( + permissions=(permission_workflow_view,), text=_('Workflow documents'), + view='document_states:workflow_document_list', args='resolved_object.pk' +) +link_workflow_list = Link( + permissions=(permission_workflow_view,), icon='fa fa-sitemap', + text=_('Workflows'), view='document_states:workflow_list' +) +link_workflow_state_document_list = Link( + permissions=(permission_workflow_view,), + text=_('State documents'), view='document_states:workflow_state_document_list', + args='resolved_object.pk' +) +link_workflow_state_list = Link( + permissions=(permission_workflow_view,), + text=_('States'), view='document_states:workflow_state_list', + args='resolved_object.pk' +) diff --git a/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo index a3be1e0026c0509006c65b62529db3e9946340d4..bd06c9666e7c633f2528db87eef4115315b24ea5 100644 GIT binary patch delta 64 zcmaFJ`jB;lFe9(Iu7Rnpk%fYxsg;T4WCccPkcf${k)eX2nU#^*WDmwl9-qX#^wPxi SR4awVqR9ssqbF-H?F0Y>(Ggz& delta 64 zcmaFJ`jB;lFe9&-uA!l>k+Fh-k(H_OWCccPpooF7u92aFk)f4==3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "لا شيء" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "مستخدم" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "تعليق" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "تحرير" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "ارسال" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo index 40738808352c263f53226dbd0da062f919e7e90f..18744aac8df65b8abda7980ed0b3a2cd1bcfeb21 100644 GIT binary patch delta 64 zcmZ3-x{h^&Fe9(Iu7Rnpk%fYxsg;T4WCccPkcf${k)eX2nU#^*WDmv~9-qX#^wPxi SR4av~^vQ=AqbF-KH3Ik+Fh-k(H_OWCccPpooF7u92aFk)f4=7|M3 Vsa6U}#qmy#lkYM{PxfG11OP!_5}N=3 delta 67 zcmaFG`igafFe9&-uA!l>k+Fh-k(H_OWCccPpooF7u92aFk)f4==2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nijedno" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Korisnik" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "Urediti" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Podnijeti" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo index 23a6ef5dca858684c7cad67d0aa9e3c4a8c5249b..367b668685aa9cdad782af68ca10ae99cb617ef7 100644 GIT binary patch delta 62 zcmZ3^vYchYd0ul}15;fi3k5?{D-+9!cceiACb~w33WjD@MrM;)7%O>v67$ka6Vp?z Q6jBl=*Dyv;e!}Ps02xjZ>;M1& delta 62 zcmZ3^vYchYd0sPJLqlC7V+8{vD^uf%ccg&=2FAKZh6+Z8RtA=nSr{uPcQHos_$20~ RmnNpCS}CL?PJYbj0st3_5#j&< diff --git a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po index 02bc28043d..065fbf0098 100644 --- a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ingen" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Bruger" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Kommentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo index cfa420bae5078642e0be813e1734a36929765dad..17b61719578c95e9dc36879e9e93a814cdcb4810 100644 GIT binary patch delta 1387 zcmXxkT}YEr9LMofuGHyP+A3`=pVZ2<<01!WXQSV06)5%yqfSx*~ms}UGp6_i~> zGrTCMJ0XI=5w6>)h=@Qa>cRq}o4ViG&PV>eLm zk7E@+#31vV5|uW5iyGKe&aZG0(qsat1%)t#?HI)Us2vWWb~KDy=qN73JE#dCA%Er> zAFJ>UPIAm&aYO^%WjX3lLJjm3brjRM7C)l~^swFaScjT;2de!Ls{d)!`+3wxuA(+D zit0ax%ESaJGn3Wizmdul8aChz>IDzypbkFNjsmz5n=yEnO`~bD%$2g3y zkW(>ztct2R=z0R#lR4)n|4MD12A$b8)Wr8u6HnktoO0XiXk5v218Sk&sLbs|3-{sN zz^L1l#|Vz0`aefy;*I+}d&aGN!{vPO1GTeC@~MGCNR!#%+Kn2Z54F={sD5eGQC>oh z*0dAqr=sz;6sF5oZq&Wd< ze*&&L6I~IlK-<$9DxDFcndl%|h*m;HXQ2|G$HXv9C}mxQ&PYYS@+e^u`ajf7P!`Yq z`ZgD5J?|F=`t1v;!84ZaI95KLId|Gg=d;DB@}moV-Qh?q+}UGw#NyGdg^)M6mzHR_ zGir5q#XGv%A{1}Goy~<0XY5qgv2*E6+}fAO+GlNR&&5Q>8A>Is?Pn8ib!YOtJ>+a2 zOrI|dd+jCtb}D(nPA1~ksl>qUJ%t(X@nT<9ec6g$$4OX6{;$Q#=Il%^ktz=Oe=qn4 D?&6oI delta 1364 zcmXxkT}YEr9LMovuB@3_R$8<2G1FY@$!D7{IZ8qd3CgmBB8Z$d=O`7NDM&R6B8tdh zM08blWnI+8C=BYZiwe3c3ZyqE3M!^$e3|2ZD7RJ^njZ;M@5 z3?)RYB);VsvkM>Qa-+<;j9HGqFb|988skO}F2pKajR9PY9axEnu?WxMBD{(PIFa=} z&Nn7u9#fge56@8zU!Xerlzl&g7SDfC1C`U54^1;_fHo||eOQA%ScPL)jQ6k{pCCDy zFR1q4@g(D$KU9?2C^yaU3~B@z zbMxRWyu-?yU@IfzQ2 z8`b_OY9&sgR^~je!OII-|8-PSywC?z*#;j`8GS`B{zeNAraEgKl7neMt!#TC>!02$UTDB5cHs!>{c9}6cc=-@pjJ$cEpVec^r22q zBRbfLYJV2B0++JS<5_RxGTx{5Q&C1wQ60ZQF7r9-461`X)>#>PQ0;0_d)S0*so6-V zor?OaPkzWP^{!1nXAZE2Q%XAMI!9VRor^|deX_z;S>U6lq7~hg>~NJO{ORY+W~o|3 z=tyV=O0SyGI@S_8^bVo@^b#uC1C^!>rVcj{TCxD4y;0F$caX3M{oiRIDD%<>*-rg% zy_%DHled3PqQUn2?Lg3S0-^e#?bJDrd-pDTPh>b2j}7$Ot>K|a$O<_A2HOeR0lyXS zhnyy#Lvim2$A|3B!Ek^4Sa@h)Fl6lv5B0{vajPZLJ9sQ&ZSKoFcW>=$if`, 2015 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 23:13+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Status" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Initialstatus" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Keiner" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Aktueller Status" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Benutzer" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Letzter Übergang" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Datum und Zeit" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Fertigstellung" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Übergang" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Kommentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Initialstatus" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Herkunftsstatus" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Zielstatus" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Workflows" @@ -82,7 +84,7 @@ msgstr "Workflow erstellen" msgid "Delete" msgstr "Löschen" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Dokumententypen" @@ -94,7 +96,7 @@ msgstr "Bearbeiten" msgid "Create state" msgstr "Status erstellen" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Status" @@ -106,74 +108,110 @@ msgstr "Übergang erstellen" msgid "Transitions" msgstr "Übergänge" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "Alle Workflows starten" + +#: links.py:81 msgid "Detail" msgstr "Detail" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Bezeichnung" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Diesen Status markieren, wenn der Workflow damit starten soll. Nur ein Status kann initial sein." +msgstr "" +"Diesen Status markieren, wenn der Workflow damit starten soll. Nur ein " +"Status kann initial sein." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Ermöglicht den Eintrag einer Zahl (ohne Prozentzeichen), die den Stand der Fertigstellung in Bezug auf den Workflow angibt." +msgstr "" +"Ermöglicht den Eintrag einer Zahl (ohne Prozentzeichen), die den Stand der " +"Fertigstellung in Bezug auf den Workflow angibt." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Workflow Status" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Workflow Status" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Workflow Übergang" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Workflow Übergänge" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Workflows" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Zeit" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Workflow Logeintrag" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Workflow Logeinträge" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Dokumentenworkflows" @@ -194,67 +232,122 @@ msgstr "Workflows bearbeiten" msgid "View workflows" msgstr "Workflows anzeigen" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Workflowübergänge durchführen" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows für Dokument: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Dokumente mit Workflow %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detail für Workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Absenden" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Übergang für Workflow %s durchführen" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Dokumententypen zugeordnet zu diesem Workflow" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Dokumententypen zugeordnet zu Workflow %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Status für Workflow %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Status für Workflow %s erstellen" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Übergänge für Workflow %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Übergänge für Workflow %s erstellen" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Integritätsfehler beim Speichern des Übergangs" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Dokumente mit Workflow %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo index 252bfd331b6b54df8213f19003c74782608e1353..6584aef737d74dce288a9035d2a476350266914c 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m5JrV>5lu8 delta 23 ecmeyx^owai7q6MFp`oskv4Vk-m8tQ>>5l\n" "Language-Team: LANGUAGE \n" @@ -17,59 +17,59 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +81,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +93,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +105,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +225,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo index 1b8ef878f83b4975a8826479892b8ff2ab9c95d6..af9473c6416fd186ef9c0b360c3abc66474d48f8 100644 GIT binary patch literal 5760 zcma)soZ&FsTodozo1{Fs#%+1S`?6NxCOcBXcw);--r zch9ajB8UqTLWBbnA~Hlmx#b)L5<)SGC4vwNhyxc8IRJ`4jyUANArkQY)sN}fnT3?L z=j*Dj$N#FoYX5xSuJ0+z63-(%=ii}}fnVLlkCb;QRR?#$55pPwZnzAm;1}R~;S=y< z(7_MDZ^BQ&oA6%v5_~^=6}}I?mh%nx9_nvF{?slemwtPo%<~A8_BzyX9?Ck`po|+p zng46>9{3%206quz!(YPt;2n4f{s(>>9%8Vl_&F%!F2bkblkh|EPmr$aO(^od1x22_ z?^bFzd>G2Qd*K6c7Jd*eL7DdnC~_Jo_W3%Th0nkmyakWIH{d3G2xH28--V*@^HAh? zA+P@e@~2+mN7nm2+yh^S55qU%VR$c%vi>3zy&i*zt}a5c!{bo&xDG!GpN2C22l@A( z!cS8FHI(uHgd*3!;r;L)l#%uKK}1(4;6v~=FG0Gf zb$AGFLXqcrI1PUcMeo1D2jN>#?0-K($hf^Z>rm{p2qiAhK)R|gLGjx9?wBp_g7Hl_#G7a zUxQ-*e?eJKoFMz+0Vwgg0A<{hd3_CvzTbw&;LV)Bg|pOmG08XJaVYWib138g2sQi* z6ghX{BwVKUK+*R>DE6yC@oxhzz%N4?|16Y#KZ2;HegegRuRyWK>u?e7rqc;{8p`@x za2`GjB@SMN5>J1JGJZGC)Nnt<1ZoL>8a@sQ7vBcFEre1;t{EO#SLT$ww2x$Z`%3IA<()iD9*HCI zi4?Jw<~hnE`WHoXDvJ1DitGa^q*QOay>MO{D91DS*gTcLV`5*9@Qb_E86L5v6xl

            @yU+rO8ii3XQ;M>=~Mnr)XV z`6)$9R5MI%?7Q}D+!9A%vsM`)d@;n2M3^^#j%`1-3H`i0u?;fg=fPQsUDsC=tHVKW z)yA1L(LkoLx>!Z*R9DR#wl%=x#W;dI3KF#(5@04Mn7ejamh>O8hEwXiS+xPb33Hdu zq&^5+U2TG(oHv=+cuIXf3N1gWHhRMZ4!@Pt=vFs!En8O?W7om-S$tlKUC*%XuG@U; zvCFo{pzPFDqPX3*?Yf#Yq8da0w|7)of3))zwnHn`u1En6jagXCoH@&f!DiQCjjd>) zH;v?iN@U7(^o*G!tm}(mfKp*GxMjj(wh^<})fGt>Wp+ujdVy_wj^@E?kGNYYEn9i5 zIB57isdPxjrn?&Y+$NHn4U{dXT||l0c4C)qX&c8;Tvr5Ptgbn`Sy|_cd7@OsOGS~g z$%U9DY}sL_qD2Q$M{;oN$f#re%dcDG-zwdMEJD9Bumf^MGHA7IlB^AaV5>eH=Uuq1 zTA5?0_^{8gZP>B$=F?m|4?dp}F2&J0Ayiv#*RHWsNuv#Y!EE9A=D7=3rY_rl6sNTd zNyoKoX9k_5wh}e;)TN6nHGdk=za}}lq3331Pt<1SYjX>FcD`}!(b~+hnHf6PF53+! z^N#d8R+~GjXXYC73x{VYQ?i3=J^)B3QQXj%BN7KLz8obcb`c%I&cJkRZN-{iLtp8e z&?Q}cpqr-s#`N^&=4L(9ea+self9trC<=7ptcmny`-VTzON=H=N5JLdh$T1_ny?V2N$Q*)sV;vOpDy11Ct-|&J^j` zkZKT?t+y5o)+4E*^r~5p>T1RHqeNN?_e#wr{U~(Y1pL{LHeyS4mMq}frY*hmL~mN| z_KVqVAeI$On{FKUMJ3UF6B})Vv6X!kWnD7|RA(w$$SH4YhV5$QGWce%T&}KadJ(m0 zr2|fhC5ub+mhMKe8Lga&;@HG0LniyAd9n;1`Ab6($TcJ7@Q}ieVIJiwY;)NpH%@Bfp26{nml967Nivc`Cj>-g)Z{o)OA=UB6IDa1ykF46 z5~|}X=U0*}f=2HojA?O6n=q)nn&2t9oM6pyk1vyPqxRsbmXAWRl3Z2Hdgdc;fZ_!o zdYYt~DVIx8URW3za(!WcNwDuE4L6t61swc3y#2GDC6DNY(;vCTdUv9m@~+?o!oGw`IKs=4pma4Zr=>J1CPX)T#V?& zy)BX$2zbWVd-)bwQ)2Ufbm9g?sv3k5mmu9W9RK~yI{r4~6HXah z-1k=^(o}n>g(M>E?=YCr9KzakV%s5L>yrkh#A-Fr-qxVpy}7-{mhpF^76%X48J7jb zhRJ&k<;+7;Vg`Aw$)aaMV3R2EE!RPP<@Sp~qz8mVW{W;YIBTHeaN1m`dUeN)TF1Mq zNCE}D1^pMXMxN}l?GbL^?)+YqrPwm{6b_OsTlN^M$cz)G#_?R$Gc7n{<2Dg9n#~ro z>y*rp->^76xh5snnU4F-VNxVWMsWXXs{P)_9e5$$q!VQ-a p{`n4?;EhTYjCrc`>kfxY`Q0D2lP356sERis*B6I;d57?^_g_CnROSEx delta 1471 zcmXxkTSyd99LMpanb~^DYo%SBGRrQLv#V=qAW=pHqUB3;fs)#6d)NgvgCIA8Qi3Qt z)Y3~q6zW4aq6?C51{zpB2tlG$AVnBG^pHYC-=D3AJ@c6v&&>aS{^vO7-I0>mL~hCr zL#v@Lr%xpr(}=I;aiC477_$^-Z~^AdH^zrWn1Q9Z5(Ain`>+I$;Uet9Y>Z!~e�!B{GdG(6{jagJr0h)#2>SQ3;;FJnTRPyo~(J z9S%jeA8oom`) z8xt4WLz=ZJG1pY?p?>3iVPSyi)&u12BR%%u3VJoRIetxW5+ztU=R8lsVqX>1L* zgd5qd|uHWwlDjY9R6RdE(O3(A{ZFHML9pSccG~(9r zOpO!p{8g?ObiHcF^VbCZc0A*(J)U_mqrN%Pa=N*NA)z)qkm+8}&VO2+bvW4$XOG&U poce->Fash{vy14*qfV4mLJ=Fx>#}2cQ}%2A6MJaULi?eh?;nRkp@RSb diff --git a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po index 5106c2cc87..14f08444d8 100644 --- a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po @@ -1,77 +1,78 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-05-09 01:51+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 02:58+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Estados de documentos" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Estado inicial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ninguno" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Estado actual" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Usuario" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Última transición" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Fecha y hora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Cantidad de completación" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transición" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentario" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "¿Es el estado inicial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Estado origen" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Estado destino" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Flujos de trabajo" @@ -83,7 +84,7 @@ msgstr "Crear flujo de trabajo" msgid "Delete" msgstr "Borrar" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipos de documentos" @@ -95,7 +96,7 @@ msgstr "Editar" msgid "Create state" msgstr "Crear estado" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Estados" @@ -107,74 +108,110 @@ msgstr "Crear transición" msgid "Transitions" msgstr "Transiciones" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "Iniciar todos los flujos de trabajo" + +#: links.py:81 msgid "Detail" msgstr "Detalle" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "Documentos del flujo de trabajo" + +#: links.py:99 +msgid "State documents" +msgstr "Documentos del estado de flujo" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etiqueta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Flujo de trabajo" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Seleccione si este va a ser el estado con el que desea que el flujo de trabajo comience. Sólo un estado puede ser el estado inicial." +msgstr "" +"Seleccione si este va a ser el estado con el que desea que el flujo de " +"trabajo comience. Sólo un estado puede ser el estado inicial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Inicial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Introduzca el porcentaje de finalización que este estado representa en relación con el flujo de trabajo. Utilice números sin el signo de porcentaje." +msgstr "" +"Introduzca el porcentaje de finalización que este estado representa en " +"relación con el flujo de trabajo. Utilice números sin el signo de porcentaje." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Estado de flujo de trabajo" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Estados de flujo de trabajo" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transición de flujo de trabajo" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transiciones de flujo de trabajo" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instancia de flujo de trabajo" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Instancias de flujo de trabajo" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Fecha y hora" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Entrada de registro de la instancia de flujo de trabajo" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Entradas de registro de las instancias de flujos de trabajo" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "No hay opción valida de transición." + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Flujos de trabajo de document" @@ -195,67 +232,122 @@ msgstr "Editar flujos de trabajo" msgid "View workflows" msgstr "Ver flujos de trabajo" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Realizar transiciones" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "Ejecutar herramientas de flujos de trabajo" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "Llave primaria del tipo de documento a ser agregado." + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "Llave primaria del estado de destino a ser agregado." + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "Llave primaria del estado inicial a ser agregado." + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "Un enlace a la historia completa de este flujo de trabajo." + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Flujos de trabajo para el documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documentos con el flujo de trabajo: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detalle de flujo de trabajo: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Enviar" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Realizar la transición de flujo de trabajo: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipos de documentos asignados a este flujo de trabajo" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Tipos de documentos asignados al flujo de trabajo: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Estados del flujo de trabajo: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Crear estados para el flujo de trabajo: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transiciones de flujo de trabajo: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Crear transiciones para el flujo de trabajo: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "No se puede guardar la transición; error de integridad." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documentos con el flujo de trabajo: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "Documentos en el flujo de trabajo \"%s\", estado \"%s\"" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "¿Lanzar todos los flujos de trabajo?" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "Lanzamiento de flujos de trabajo sometido con éxito." diff --git a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo index 23911ffbf55f0ca831a637ffe09c49b4fc99aebe..542eccc24f7ffdf040e95a534aabbfb9ef006a3b 100644 GIT binary patch delta 65 zcmZ1_w@Pk<0tc_Tu7Rnpk%fYxsg;T4WL*wvkcf${k)eX2nU#^*k+Fh-k(H_OWL*wvpooF7u92aFk)f4=<>XL~s>ydaqIi4~ U^U_Nb(^IV!(h@hDa(-n602MS5)Bpeg diff --git a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po index 51265ea7fc..ec03b1a417 100644 --- a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "وضعیت اولیه" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "هیچ" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "وضعیت فعلی" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "کاربر" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "آخرین تغییر وضعیت" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "تاریخ و زمان" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "تغییر وضعیت" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "شرح" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "آیا در وضعیت اولیه است؟" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "وضعیت شروع" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "وضعیت نهایی" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "گردشکار" @@ -82,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "حذف" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "انواع سند" @@ -94,7 +95,7 @@ msgstr "ویرایش" msgid "Create state" msgstr "وضغیت ایجاد" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "وضعیت ها" @@ -106,74 +107,108 @@ msgstr "تغییر وضعیت به ایجاد" msgid "Transitions" msgstr "تغییر وضعیت ها" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "شرح" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "برچسب" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "گردشکار" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "در صورتیکه این وضعیت شروع گردشکار باشد این وضعیت را انتخاب کنید. وضعیت فقط میتواند وضعیت اولیه باشد." +msgstr "" +"در صورتیکه این وضعیت شروع گردشکار باشد این وضعیت را انتخاب کنید. وضعیت فقط " +"میتواند وضعیت اولیه باشد." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "اولیه" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "وضعیت گردشکار" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "وضعیتهای گردشکار" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "تغییر وضعیت گردشکار" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "تغییر وضعیت های گردشکار" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "سند" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "موردی از گردشکار" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "موردهای گردشکار" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "تاریخ زمان" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "ورودیه لاگ برای مورد گردشکار" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "ورودیهای مورد گردشکار" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "ویرایش گردشکار" msgid "View workflows" msgstr "مشاهده گردشکار" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "گردشکارهای سند : %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "شرح گردشکار : %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "ارسال" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "انجام تغییر وضعیت گردشکار : %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "نوع سند مرتبط با گردش کاری: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "وضعیتهای گردشکار : %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "وضعیت ایجاد برای گردشکار : %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "تغییر وضعیتهای گردشکار : %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "ایجاد تغییر وضعیت برای گردشکار : %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "قادر به ذخیره انتقال نیست:خطای تجمع" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo index 6c19328d5a7bcb735c7d7de7033b4c8c944e6e5d..2580a7af68dc46b07b865cdaee3bd9357dabbdc0 100644 GIT binary patch delta 573 zcmXZYPbh<79Ki9PFuZ2wU;fNk7Ad{iX7gvokdw%cxd!Fa_e7o=5=bw4Wtvr$25|Ks`373lS$})o$ z*RdQ^sN+7?;B9XHg!Rme`MCjGP}TJ_l;LpBNn{I|Lnp3aHKwhSlp=y-676`30er+_ z)L5kwtFQvw(1*R~!9{f70k+~Ls=8-X4ZY(o7TDx(pFJcchggfJwj`Sn+>lTwy2nC% zL)G~Qrtt?YxJgoVu!E|jGgS2#*o@c6rN}F~@e2pA(*B(fE>)h?zmxXlyoOCSn*j%!OEHTN|^6jOhHTF&_!K=FH5C LHkBPJJ+b@(g^5fU delta 607 zcmX}pO-LI-6u|K()@U{{e$dj|R9%RcqTO_}X@oAVw8Vl3K|!OCi!31~q4_AAq=#Mt zJ@wKL%ti3xF%}9b9<-NwNlzu@T+gj1p*@Hv5B>+mWtiX0W8TcX*>>n(sCm*=``RVa z@`~IO5!WX|lTUPh+{OWHpn(T?3y-hn=QzTAip6(v4prVdT|efpe2W|*?{O42@g_F? zQj=Z=KM6d*HpcJ_`|u&V3}Xz3a2_p8qKO|ch(B-=k5J`F;Ibeuer9?f)j9jf5;?@% z*bdZ0GzNbOs2lyq9_*oPRk@GuBL>lfUr<%>4OK-QRQbPg9RDDXA~yy_LO6)C_!w2Z zjCZhxES0S#2C9MvKEf70!&6kh#G-7Ku!!oZv#2ic4##i@)kcS?F3{Qg-o57OpD`j4 z!;0#rWyhlRQ7xF5G0do8MRY4-n@^@qK5fA%SBw?cDVFn2rR3UrJnQDlmD1~MT941a zNUXkG(VwQSW8qZRslG{9o@WY9E+0;n3bXZB+H(Dumh>+;#Z1-7q-}k}-J9_3dM*IZ C>sXoq diff --git a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po index 6d01182f7e..418ba177a4 100644 --- a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "États du document" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "État initial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Aucun" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "État actuel" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utilisateur" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Dernière transition" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Date et heure" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Finalisation" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transition" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commentaire" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Est ce l'état initial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "État d'origine" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "État de destination" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Flux de travail" @@ -82,7 +83,7 @@ msgstr "Créer un flux de travail" msgid "Delete" msgstr "Supprimer" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Types de document" @@ -94,7 +95,7 @@ msgstr "Modifier" msgid "Create state" msgstr "Créer un état" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "États" @@ -106,74 +107,110 @@ msgstr "Créer une transition" msgid "Transitions" msgstr "Transitions" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Détail" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Étiquette" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Flux de travail" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Sélectionnez si ceci sera l'état avec lequel vous voulez que le flux de travail pour démarrer. Un seul état peut être à l'état initial." +msgstr "" +"Sélectionnez si ceci sera l'état avec lequel vous voulez que le flux de " +"travail pour démarrer. Un seul état peut être à l'état initial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Entrer le pourcentage de finalisation que cet état représente dans la relation du flux de travail. Saisir un nombre sans le signe pourcentage." +msgstr "" +"Entrer le pourcentage de finalisation que cet état représente dans la " +"relation du flux de travail. Saisir un nombre sans le signe pourcentage." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "État du flux de travail" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "États du flux de travail" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transition du flux de travail" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transitions du flux de travail" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Document" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instance du flux de travail" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Instances du flux de travail" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Date et heure" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Entrée de la journalisation de l'instance du flux de travail" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Entrées de la journlisation du flux de travail" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Flux de travail du document" @@ -194,67 +231,122 @@ msgstr "Modifier des flux de travail" msgid "View workflows" msgstr "Voir les flux de travail" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Transition des flux de travails" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Flux de travail du document: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documents avec le flux de travail: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Détail du flux de travail: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Soumettre" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Construire une transition pour le flux de travail: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Types de document associé à ce flux de travail" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Types de document assignés au flux de travail: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "États du flux de travail: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Créer des états pour le flux de travail: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transitions du flux de travail: %s " -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Créer des transitions du flux de travail: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Impossible de sauvegarder la transition; erreur d'intégrité." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documents avec le flux de travail: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo index a584f4a2bd158ba566e24af6b8b813a8be03df4b..96e024e02e728b724d9034aaee8eaff28f5d3042 100644 GIT binary patch delta 62 zcmdnYvYBPVd0ul}15;fi3k5?{D-+9!cceiACb~w33WjD@MrM;)7;AWZ67$ka6Vp?z Q6f#OD*E2>>e$MCv03b^eE&u=k delta 62 zcmdnYvYBPVd0sPJLqlC7V+8{vD^uf%ccg&=2FAKZh6+Z8RtA=nSr}_3_cBKD_$20~ RmnNpCS}A0dPJYJd3jiKZ5+ncs diff --git a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po index c3d442d94a..5d67a02e9d 100644 --- a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Semmi" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Felhasználó" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Megjegyzés" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo index 568695d2a2a1289108b01006b35f6c30cf0d5b9e..64e43d52437d21ddd5b0abafe79ab18fb9c7558c 100644 GIT binary patch delta 84 zcmeBT>0+6%%hX)gz*N`BLc!3~%EVIFz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; lMAyhr!O+ag$ZX>KS{|Roy!6tmUu7^DCI delta 84 zcmeBT>0+6%%hXKQ&`{UNSi!)^%G6lbz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z|c(B nz*yJFP{GL1%D{5s``XEsj8Qy3iFxUziRnNUnJJSmF%?ER1GDCozb`Vl#>F<9EY-?!9}z_kO>-qk#|e_Oq^hUZ>P!vr=)T)IwOPCfva& z?xBIl7{d!}!y6pL2b8)uY{4(Biu|u@)%K$F9l{PA!7iMNsPf;7WfIbG6^HQ<*^|1) zR=mS@d_oIf(8hYEOG5|c0MjUg)^vUgPl@++zKLDRM%%ebU$dqBKPW*$8o4M9=5)al z2E-c}!WwqttB${sL#rR`M1!sp_hTPgn86urzyqXIouSORoaaG4=@s^1Rr{>-?&@{1->zQAntzJ9qOI&LS@b~0l+X*V@di5sy|GATRhn9i7+9J3N!M$Rh* x_F~a1l(xOVFS_P}zqVcsd@OmzO}}ztEJku(A;0V8*IjcnsML&=YBrn={Q~EKMF0Q* delta 600 zcmXZYIYg7q74dAF&5tQTC}OrQG1w`cTddYDZA&PGcL+qX*ZTROxS_NJ0wkVn3cC zcTx}7j4#-VZ|KJ_w9urx6kJ020UM=JN#_snkoZLB`?#fCG{8&hPPj||jTT8rp=Fc; zn|eb5i^O|ai{IFRKRWhMg&`;}w&Q?~$FYle4o5MKb$E&#RTn6IZsL5%Nbj%{pS2%4 zU&Ept@MwEc8b!2oD5G9QnZSDGwtBhFHEe}KRybk?!?9?j>@&RaVJkRhg@?>gFcyjW zgFME9T_{?Kyqzs%>|!n-GZ*cAGH1@%&UPkMNSWh~#DS!a15R=(?bsWcKr-h{mbZ*V V`N>$JN;bV?r&BSr($hFw`wMJxPP703 diff --git a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po index 15d11b1ab4..1f10d60cef 100644 --- a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-09-24 10:35+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Stati documento" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Stato iniziale" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nessuna " -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Stato corrente" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utente" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Ultima transizione" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Data e ora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Completamento" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transizione" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commento" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Stato iniziale?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Stato originale" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Stato di destinazione" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "I workflow" @@ -82,7 +83,7 @@ msgstr "Crea workflow" msgid "Delete" msgstr "Cancella" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipi di documento" @@ -94,7 +95,7 @@ msgstr "Modifica" msgid "Create state" msgstr "Crea stato" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Stati" @@ -106,74 +107,110 @@ msgstr "Crea transizione" msgid "Transitions" msgstr "Transizioni" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Dettagli" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etichetta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Seleziona se questo è lo stato da utilizzare quando il workflow inizia. Solo uno stato può essere quello iniziale." +msgstr "" +"Seleziona se questo è lo stato da utilizzare quando il workflow inizia. Solo " +"uno stato può essere quello iniziale." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Iniziale" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Inserisci la percentuale di completamento che questo stato rappresenta in relazione al workflow. Usa i numeri senza segno di percentuale." +msgstr "" +"Inserisci la percentuale di completamento che questo stato rappresenta in " +"relazione al workflow. Usa i numeri senza segno di percentuale." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Stato workflow" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Stati workflow" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transizione workflow" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transizioni workflow" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Istanza workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Istanze workflow" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Data e ora" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Voce log istanza workflow" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Voci log istanza workflow" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Workflow documento" @@ -194,67 +231,122 @@ msgstr "Modifica workflows" msgid "View workflows" msgstr "Vedi workflows" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Transizioni workflow" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflow per il documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documento con il workflow: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Dettagli del workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Invia" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Esegui transizione per il workflow: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipi di documento assegnati a questo workflow" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Tipi di documento assegnati al workflow: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Stati del workflow: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Crea stati del workflow: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Trasizioni per il workflow: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Crea trasizioni per il workflow: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Impossibile salvare la transizione: errore di integrità" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documento con il workflow: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo index d6509b12eb4744121eb233aab691ec19deea8a6f..50981b397586ff6bdd9a77e787e9d63fb89eb91f 100644 GIT binary patch delta 448 zcmXZYy-EW?5Ww+C)O(xf}9eA5OQ#dMXEqB4A_=_L4snwB z1*h;$`-w^7kv0|+i4)Ig4V)%k!ZdCmEu@O`xQ8t1#H9PzphuJc2FO;{vMlMT}qtDV23($tIf`v>M<3PaKd?6P}NR?B`apWWENHpt7I3~0wNEVyrY`m_ORvpr(W>Eh^f_QG*Lp7$>Aao5e?X(AoDAYFhNWJkIQXOZ{e6g+`Af;gOq5yYT=nmYdn#7H?5?%_0ihI8-@ zV$e4x(ePL1EKU>q3s5v(gyKIFrr@?*--QZt1&Th$5QEMziHq_~d0epYx&A5FM^L<=q75ID-3fiov@FwhjFRoHIz3M*mQg90_PSx&?uxTi z!l!vGjLb@#@i1UftL++lSGB;u;Km_iLFDs>u~8dWLRr|UH<=$SS6j`k-mOyY>FQC= UW4wOJ>NVHk!RdiFJXho7A3^0ujQ{`u diff --git a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po index 11d63efbac..f91574c720 100644 --- a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 12:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Documentstaten" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Initiële staat" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Geen" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Huidige staat" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Gebruiker" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Laatste transitie" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Datum en tijd" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Voltooiing" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transitie" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commentaar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Originele staat" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Bestemmingsstaat" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "Verwijder" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Documentsoorten" @@ -94,7 +95,7 @@ msgstr "bewerken" msgid "Create state" msgstr "Maak staat aan" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Staten" @@ -106,74 +107,106 @@ msgstr "Transitie aanmaken" msgid "Transitions" msgstr "Transities" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Detai" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Label" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initieel" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Workflowstaat" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Workflowstaten" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Workflowtransitie" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Workflowtransities" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Document" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Workflowinstantie" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Workflowinstanties" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Datumtijd" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Documentworkflows" @@ -194,67 +227,122 @@ msgstr "Workflows verwijderen" msgid "View workflows" msgstr "Workflows bekijken" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows voor document: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documenten met de workflow: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detail van workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Verstuur" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documenten met de workflow: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo index c658c7653c0f2468e3636f82b9dbf51b12164a51..c586801861875a152831dd5137509e7dac0c322d 100644 GIT binary patch delta 539 zcmYMuKTE?v7zXgyYX4~?iWR|DJVk2*MsjD;+SqG1L39woMW+_DOO2(agHWg+KwUa? za}pO9As@h5aB~$GHz%E31bwcpErk5uyZ7Gb&YQZ7K3GG|c^}cfpJEcmY+O2UY$foP^KenQr5)*Z6=@ zG`_uU-@&k!HcZ)My;ytD$msoj71h5GH+FLca@W1-;EnGO6fjqm delta 465 zcmXZXJxc>Y5C-5$G@lw#42VWy3(W_3u)CKCUUIP!K~xaI!gMKOn#<+LB}E{3h1iG) zl0t241RERS@(&cjP7n(lvG9lZZVW8@%+B1*a2H8`_9-9mUIRo2A)*B$nvW30U>;7w zGF*l`FasT!fHxx_;1u2ih!OM*C*T{5!%w&he_#eCqC_}Uz@_@iQSzvOU=N8fJcVlU zIaGtL;WWI5DL8;Q^p0yBenGYP8!p0Mh+P!GUo62GlrRI;yb4tFkKqh-V{`w7vr*v+ zCQ-Qaw}Xdci8W0KP3nwGqoDU6Ln&mqu1Ue9F!*}^Bh>95g)81})vkA{^_syPE52`a zT2)KiYPK4#!E9&vbWOd8qN, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Stan początkowy" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Brak" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Aktualny stan" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Użytkownik" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Data i godzina" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentarz" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Czy jest stan początkowy?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +85,7 @@ msgstr "" msgid "Delete" msgstr "Usuń" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Typy dokumentu" @@ -94,7 +97,7 @@ msgstr "Edytuj" msgid "Create state" msgstr "Utwórz stan" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Stany" @@ -106,74 +109,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Szczegół" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etykieta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Obieg dokumentów" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Początkowy" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Stan obiegu" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Stany obiegu" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "Edytuj obieg" msgid "View workflows" msgstr "Pokaż obieg" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Obiegi dokumentu: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Szczegóły obiegu dokumentów: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Wyślij" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Dokonaj zmiany w obiegu dokumentów: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Typy dokumentów przypisane do obiegu dokumentów: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Stany obiegu dokumentów: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Utwórz stany obiegu dokumentów: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Zmiany obiegu dokumentów: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Utwórz zmiany w obiegu dokumentów: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Nie można zapisać zmiany; błąd integralności." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo index 31283dc65e68d9f46698a917072ad63074cca811..da4d0de8ba96100a80c470a270df2ad3cad4a019 100644 GIT binary patch delta 64 zcmX@edXRO410%1wu7Rnpk%fYxsg;T4WM4*Ukcf${k)eX2nU#^*k+Fh-k(H_OWM4*UpooF7u92aFk)f4=<>XSv+R6VJqquz% S^U_Nb(^IV!3MPj$WdQ*G<`GQ* diff --git a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po index e1aa11eff8..f1d267fe2a 100644 --- a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nenhum" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utilizador" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentário" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "Editar" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Nome" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Submeter" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo index 5d84a7fcbb01638b11a47ea532dec0a45a9fc8df..77dab71e05fb8984aeb57a145b43797aec568d90 100644 GIT binary patch delta 590 zcmXZYO(+Cm9LMqh=4BbndVgCoD{y)UE-sF~PtEi+pXdL~)4$*RZ`zOBZ@)d6bC1YVsfaEjb7dkd+2&P_ z2k66dY{M(8#ux0sPi(*fF8MLw8bUtFpz8>FsmHMjr&0A;_DM!c*lckS#69f7DIA}ld^seYRk8IdA3NAAHXss`7n z{wRn0_=u`OlEZqOLKS=!$t3Goi@R=ph5_nJ9K>f-_dTQ{i)g6o#xXXkVGz{>;;vKJ zNWFn-RL7_iU!WR!9-HtT)ueu~1^+5@_XU&1<^ADEZ#Wj$qrHiqfo!W5=;ov+9EN@l;b V>0Gj`xzIaoJI1_e=PZBT^A9*MPoV$+ delta 615 zcmXZYKS*0q6vy!sY@%;T39tl{yh#S!2=rKGzjR z9b;2k+fr}-WX3{)HrT*qF{1P*0}kCZ4G4?avAG&A+z8b$9iG3e08_Z-S_&^ v`K7*hg_otpK)Q4hm=2Aa-2Aec&)C*`cV>9JoT`aD@Mj#?%;w8ep`X70B{W+T diff --git a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po index ab6fb8a370..6db6a0c4e6 100644 --- a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,69 +9,70 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Estados de documentos" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Estado Inicial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nenhum" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Estado corrente" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Usuário" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Última transação" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "data e hora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Finalização" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transações" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentário" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "é estado inicial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Estado Original" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Estado de destino" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Workflows" @@ -83,7 +84,7 @@ msgstr "Criar fluxo de trabalho" msgid "Delete" msgstr "Excluir" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipos de Documentos" @@ -95,9 +96,9 @@ msgstr "Editar" msgid "Create state" msgstr "Criar estado" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" -msgstr "estado" +msgstr "Estados" #: links.py:58 msgid "Create transition" @@ -107,74 +108,110 @@ msgstr "Criar Transições" msgid "Transitions" msgstr "Transações" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Detalhes" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Label" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Selecione se este será o estado com o qual você deseja que o fluxo de trabalho para começar em. Apenas um Estado pode ser o estado inicial." +msgstr "" +"Selecione se este será o estado com o qual você deseja que o fluxo de " +"trabalho para começar em. Apenas um Estado pode ser o estado inicial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Inicial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Entre com a porcentagem de finalização que este estado representa em relação com o fluxo de trabalho. Utilize números sem o sinal de porcentagem." +msgstr "" +"Entre com a porcentagem de finalização que este estado representa em relação " +"com o fluxo de trabalho. Utilize números sem o sinal de porcentagem." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Estado do Workflow" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Estados do Workflow" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transição do Workflow" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transição dos Workflows" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instância do Workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "instâncias do Workflow " -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Hora e data" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Workflow instance log de entrada " -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Workflow instance log de entradas" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Fluxos de trabalho do documento" @@ -195,67 +232,122 @@ msgstr "Editar Workflows" msgid "View workflows" msgstr "Ver workflows" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Realizar transição" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows para documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documentos com o fluxo de trabalho: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detalhe do workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Submeter" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Fazer a transição para o workflow: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipos de documentos atribuídos a este fluxo de trabalho" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Os tipos de documento atribuído ao workflow: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Estado do workflow: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Criar estados para Workflow: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transição do Workflow: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Criar Transição para Workflow: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Não foi possível salvar transição; erro de integridade." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documentos com o fluxo de trabalho: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo index 03d30df385c8b91fe9e9184953f1abce663651a4..cf7d43733fb2f6f1b008b9da9dcc8b1d2dbed24e 100644 GIT binary patch delta 67 zcmZo>Yi8Tvz{qQ^YhbEtWT9YaYGqi#KR(ER@*l?N$>~gU043uRssI20 delta 67 zcmZo>Yi8Tvz{qQ+YiOuzWUOFdWMyhR*_TloC}LouYiO=uU}19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nici unul" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "utilizator" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentariu" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "Editează" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etichetă" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Trimiteţi" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo index dda6baba5eefca3b3a4b4759993c0f0dae326238..653fa9321093354d28e21c945f055c90e1b70f09 100644 GIT binary patch delta 242 zcmcb?eV2Q}l6r9_1_o0gHeg_2@MU3O5ChV6Kw1PyPX*G7KzbEa{0xxh1M(jOX#pVp z2`bOb%D^BC5O|p@N~Am64gY0T6KcBo>$Gh7={{73UEgtq%>2pMnL>Dc67$ka6Vp?z6pBhGYcWS}p2Y0N1OReYE9(FN delta 237 zcmcc1eS>?#l6oN~1_o0gHeg_2@L*wJ5ChVcKw1PyPXN-2Kzb=u{5X*21M=?yX#pVp z7ApS_NXr8G3aktaQb5`cNGk*BNFWVTUkjvpfOHR#2AMw-D!zf0fsH`|D6oICCSwF6 zubHl)p{|j!f`O5hsqy4KCTTseh=GxUfr*u&skQ+SaQP$_m*|ERCFT|9B$nhCSt;aX n=H%-YB<5u%PrkzxGTD|nipM80FTFG|J=IE~sC4r*W_Kn4^~Wln diff --git a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po index 4a34ca5627..dcbf71b4c2 100644 --- a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po @@ -1,76 +1,79 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Статусы документа" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Исходное состояние" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ничего" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Текущее состояние" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Пользователь" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Дата и время" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Завершение" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Переход" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Комментарий" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +85,7 @@ msgstr "" msgid "Delete" msgstr "Удалить" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Типы документов" @@ -94,7 +97,7 @@ msgstr "Редактировать" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -106,74 +109,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Надпись" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Документ" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Подтвердить" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo index d02ec2a0ecf7adb006ca7c14f9f7519ae0b57ccd..69748f009bddc81741e84cee701d94954c2e0372 100644 GIT binary patch delta 239 zcmaFIGK01Lo)F7a1|VPsVi_QI0b+I_&H-W&=m266zY~Z#fOsMhgVfFfViq7?0K``q z85ouVX^?ys6NGLC(riF}50D0_n+&9Z${2tY7=X+G0x7|M3sa6WbIq|`slO>t5c>JsK N60;K-oQhJb7yyD8BToPT diff --git a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po index 50b8799fb8..983e8272d2 100644 --- a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po @@ -1,75 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Brez" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Oznaka" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" -msgstr "" +msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo index a5c9bdb86e2626591dc5fffb832279774b2bc940..a53497a5c0fa8c3d382b17dd527236ce064df43e 100644 GIT binary patch delta 65 zcmaFJ@{nc18(wo=15;fi3k5?{D-+9!KczteCb~w33WjD@MrM;08N2y?67$ka6Vp?z T6v{H=!~7<%W{jRJ#^enEed7~T delta 65 zcmaFJ@{nc18(uSALqlC7V+8{vD^uf%Kc#^J2FAKZh6+Z8RtA=n6&brH?_rGM_eso4 UFHKBOwNfa{j1TjhEXw2q0DkxrOaK4? diff --git a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po index cbf0d01988..9154482951 100644 --- a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "None" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Người dùng" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Chú thích" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "Sửa" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo index 1c0a152157f9b7d42acbc33db26cae71efc1cfab..09a57bfa83257bb8198810452cf3ea8d19ab7ae7 100644 GIT binary patch delta 65 zcmcb>a)D*SJ6>~L15;fi3k5?{D-+9!zokI}Cb~w33WjD@MrM+XN;aK#AF8mbqEs- delta 65 zcmcb>a)D*SJ6\d+)/documents/$', + WorkflowDocumentListView.as_view(), + name='workflow_document_list' + ), + + url( + r'^(?P\d+)/states/$', + WorkflowStateListView.as_view(), + name='workflow_state_list' + ), + url( + r'^state/(?P\d+)/documents/$', + WorkflowStateDocumentListView.as_view(), + name='workflow_state_document_list' + ), +] + +api_urls = [ + url(r'^workflows/$', APIWorkflowListView.as_view(), name='workflow-list'), + url( + r'^workflows/(?P[0-9]+)/$', APIWorkflowView.as_view(), + name='workflow-detail' + ), + url( + r'^workflows/(?P[0-9]+)/document_types/$', + APIWorkflowDocumentTypeList.as_view(), + name='workflow-document-type-list' + ), + url( + r'^workflows/(?P[0-9]+)/document_types/(?P[0-9]+)/$', + APIWorkflowDocumentTypeView.as_view(), + name='workflow-document-type-detail' + ), + url( + r'^workflows/(?P[0-9]+)/states/$', + APIWorkflowStateListView.as_view(), name='workflowstate-list' + ), + url( + r'^workflows/(?P[0-9]+)/states/(?P[0-9]+)/$', + APIWorkflowStateView.as_view(), name='workflowstate-detail' + ), + url( + r'^workflows/(?P[0-9]+)/transitions/$', + APIWorkflowTransitionListView.as_view(), name='workflowtransition-list' + ), + url( + r'^workflows/(?P[0-9]+)/transitions/(?P[0-9]+)/$', + APIWorkflowTransitionView.as_view(), name='workflowtransition-detail' + ), + url( + r'^document/(?P[0-9]+)/workflows/$', + APIWorkflowInstanceListView.as_view(), name='workflowinstance-list' + ), + url( + r'^document/(?P[0-9]+)/workflows/(?P[0-9]+)/$', + APIWorkflowInstanceView.as_view(), name='workflowinstance-detail' + ), + url( + r'^document/(?P[0-9]+)/workflows/(?P[0-9]+)/log_entries/$', + APIWorkflowInstanceLogEntryListView.as_view(), + name='workflowinstancelogentry-list' + ), + url( + r'^document_type/(?P[0-9]+)/workflows/$', + APIDocumentTypeWorkflowListView.as_view(), + name='documenttype-workflow-list' + ), ] diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index c63ac0f777..c77d77d538 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -2,16 +2,16 @@ from __future__ import absolute_import, unicode_literals from django.contrib import messages from django.core.urlresolvers import reverse, reverse_lazy +from django.db.models import F, Max from django.db.utils import IntegrityError from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext_lazy as _ -from django.views.generic import FormView from acls.models import AccessControlList from common.views import ( - AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView, - SingleObjectEditView, SingleObjectListView + AssignRemoveView, ConfirmView, FormView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from documents.models import Document from documents.views import DocumentListView @@ -20,12 +20,16 @@ from .forms import ( WorkflowForm, WorkflowInstanceTransitionForm, WorkflowStateForm, WorkflowTransitionForm ) -from .models import Workflow, WorkflowInstance, WorkflowState, WorkflowTransition +from .models import ( + Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState, + WorkflowTransition, WorkflowRuntimeProxy, WorkflowStateRuntimeProxy +) from .permissions import ( permission_workflow_create, permission_workflow_delete, - permission_workflow_edit, permission_workflow_transition, + permission_workflow_edit, permission_workflow_tools, permission_workflow_view, ) +from .tasks import task_launch_all_workflows class DocumentWorkflowInstanceListView(SingleObjectListView): @@ -55,36 +59,10 @@ class DocumentWorkflowInstanceListView(SingleObjectListView): return self.get_document().workflows.all() -class WorkflowDocumentListView(DocumentListView): - def dispatch(self, request, *args, **kwargs): - self.workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) - - AccessControlList.objects.check_access( - permissions=permission_workflow_view, user=request.user, - obj=self.workflow - ) - - return super( - WorkflowDocumentListView, self - ).dispatch(request, *args, **kwargs) - - def get_document_queryset(self): - return Document.objects.filter( - document_type__in=self.workflow.document_types.all() - ) - - def get_extra_context(self): - return { - 'hide_links': True, - 'object': self.workflow, - 'title': _('Documents with the workflow: %s') % self.workflow - } - - class WorkflowInstanceDetailView(SingleObjectListView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - permissions=permission_workflow_view, users=request.user, + permissions=permission_workflow_view, user=request.user, obj=self.get_workflow_instance().document ) @@ -114,23 +92,10 @@ class WorkflowInstanceTransitionView(FormView): form_class = WorkflowInstanceTransitionForm template_name = 'appearance/generic_form.html' - def dispatch(self, request, *args, **kwargs): - AccessControlList.objects.check_access( - permissions=permission_workflow_transition, user=request.user, - obj=self.get_workflow_instance().document - ) - - return super( - WorkflowInstanceTransitionView, self - ).dispatch(request, *args, **kwargs) - def form_valid(self, form): - transition = self.get_workflow_instance().workflow.transitions.get( - pk=form.cleaned_data['transition'] - ) self.get_workflow_instance().do_transition( - comment=form.cleaned_data['comment'], transition=transition, - user=self.request.user + comment=form.cleaned_data['comment'], + transition=form.cleaned_data['transition'], user=self.request.user ) return HttpResponseRedirect(self.get_success_url()) @@ -145,10 +110,11 @@ class WorkflowInstanceTransitionView(FormView): 'workflow_instance': self.get_workflow_instance(), } - def get_form_kwargs(self): - kwargs = super(WorkflowInstanceTransitionView, self).get_form_kwargs() - kwargs['workflow'] = self.get_workflow_instance() - return kwargs + def get_form_extra_kwargs(self): + return { + 'user': self.request.user, + 'workflow_instance': self.get_workflow_instance() + } def get_success_url(self): return self.get_workflow_instance().get_absolute_url() @@ -162,7 +128,7 @@ class WorkflowInstanceTransitionView(FormView): class SetupWorkflowListView(SingleObjectListView): extra_context = { 'title': _('Workflows'), - 'hide_link': True, + 'hide_object': True, } model = Workflow view_permission = permission_workflow_view @@ -429,3 +395,131 @@ class SetupWorkflowTransitionEditView(SingleObjectEditView): 'document_states:setup_workflow_transitions', args=(self.get_object().workflow.pk,) ) + + +class WorkflowListView(SingleObjectListView): + view_permission = permission_workflow_view + + def get_queryset(self): + return WorkflowRuntimeProxy.objects.all() + + def get_extra_context(self): + return { + 'hide_link': True, + 'title': _('Workflows') + } + + +class WorkflowDocumentListView(DocumentListView): + def dispatch(self, request, *args, **kwargs): + self.workflow = get_object_or_404( + WorkflowRuntimeProxy, pk=self.kwargs['pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.workflow + ) + + return super( + WorkflowDocumentListView, self + ).dispatch(request, *args, **kwargs) + + def get_document_queryset(self): + return Document.objects.filter(workflows__workflow=self.workflow) + + def get_extra_context(self): + return { + 'hide_links': True, + 'object': self.workflow, + 'title': _('Documents with the workflow: %s') % self.workflow + } + + +class WorkflowStateDocumentListView(DocumentListView): + def dispatch(self, request, *args, **kwargs): + self.workflow_state = get_object_or_404( + WorkflowStateRuntimeProxy, pk=self.kwargs['pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.workflow_state.workflow + ) + + return super( + WorkflowStateDocumentListView, self + ).dispatch(request, *args, **kwargs) + + def get_document_queryset(self): + latest_entries = WorkflowInstanceLogEntry.objects.annotate( + max_datetime=Max( + 'workflow_instance__log_entries__datetime' + ) + ).filter( + datetime=F('max_datetime') + ) + + state_latest_entries = latest_entries.filter( + transition__destination_state=self.workflow_state + ) + + return Document.objects.filter( + workflows__pk__in=state_latest_entries.values_list( + 'workflow_instance', flat=True + ) + ) + + def get_extra_context(self): + return { + 'hide_links': True, + 'object': self.workflow_state, + 'navigation_object_list': ('object', 'workflow'), + 'workflow': WorkflowRuntimeProxy.objects.get( + pk=self.workflow_state.workflow.pk + ), + 'title': _( + 'Documents in the workflow "%s", state "%s"' + ) % (self.workflow_state.workflow, self.workflow_state) + } + + +class WorkflowStateListView(SingleObjectListView): + def dispatch(self, request, *args, **kwargs): + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.get_workflow() + ) + + return super( + WorkflowStateListView, self + ).dispatch(request, *args, **kwargs) + + def get_extra_context(self): + return { + 'hide_columns': True, + 'hide_link': True, + 'object': self.get_workflow(), + 'title': _('States of workflow: %s') % self.get_workflow() + } + + def get_queryset(self): + return WorkflowStateRuntimeProxy.objects.filter( + workflow=self.get_workflow() + ) + + def get_workflow(self): + return get_object_or_404(WorkflowRuntimeProxy, pk=self.kwargs['pk']) + + +class ToolLaunchAllWorkflows(ConfirmView): + extra_context = { + 'title': _('Launch all workflows?') + } + view_permission = permission_workflow_tools + + def view_action(self): + task_launch_all_workflows.apply_async() + messages.success( + self.request, _('Workflow launch queued successfully.') + ) diff --git a/mayan/apps/documents/api_views.py b/mayan/apps/documents/api_views.py index 92d66c6c27..99d2d90d1e 100644 --- a/mayan/apps/documents/api_views.py +++ b/mayan/apps/documents/api_views.py @@ -15,23 +15,24 @@ from rest_api.permissions import MayanPermission from .literals import DOCUMENT_IMAGE_TASK_TIMEOUT from .models import ( - Document, DocumentPage, DocumentType, DocumentVersion, RecentDocument + Document, DocumentType, RecentDocument ) from .permissions import ( permission_document_create, permission_document_delete, permission_document_download, permission_document_edit, permission_document_new_version, permission_document_properties_edit, permission_document_restore, permission_document_trash, - permission_document_version_revert, permission_document_view, - permission_document_type_create, permission_document_type_delete, - permission_document_type_edit, permission_document_type_view + permission_document_view, permission_document_type_create, + permission_document_type_delete, permission_document_type_edit, + permission_document_type_view ) from .runtime import cache_storage_backend from .serializers import ( DeletedDocumentSerializer, DocumentPageSerializer, DocumentSerializer, DocumentTypeSerializer, DocumentVersionSerializer, - DocumentVersionRevertSerializer, NewDocumentSerializer, - NewDocumentVersionSerializer, RecentDocumentSerializer + NewDocumentSerializer, NewDocumentVersionSerializer, + RecentDocumentSerializer, WritableDocumentSerializer, + WritableDocumentTypeSerializer, WritableDocumentVersionSerializer ) from .tasks import task_generate_document_page_image @@ -78,10 +79,11 @@ class APIDeletedDocumentRestoreView(generics.GenericAPIView): mayan_object_permissions = { 'POST': (permission_document_restore,) } - permission_classes = (MayanPermission,) queryset = Document.trash.all() - serializer_class = DeletedDocumentSerializer + + def get_serializer_class(self): + return None def post(self, *args, **kwargs): self.get_object().restore() @@ -156,12 +158,15 @@ class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView): paramType: path type: number """ + lookup_url_kwarg = 'version_pk' - mayan_object_permissions = { - 'GET': (permission_document_download,) - } - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_document_view, self.request.user, document + ) + return document def get_file(self): instance = self.get_object() @@ -170,6 +175,9 @@ class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView): def get_serializer_class(self): return None + def get_queryset(self): + return self.get_document().versions.all() + def retrieve(self, request, *args, **kwargs): return self.render_to_response() @@ -187,7 +195,6 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView): } permission_classes = (MayanPermission,) queryset = Document.objects.all() - serializer_class = DocumentSerializer def delete(self, *args, **kwargs): """ @@ -203,6 +210,19 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView): return super(APIDocumentView, self).get(*args, **kwargs) + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentSerializer + else: + return WritableDocumentSerializer + def patch(self, *args, **kwargs): """ Edit the properties of the selected document. @@ -235,12 +255,28 @@ class APIDocumentPageImageView(generics.RetrieveAPIView): type: number """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentPage.objects.all() + lookup_url_kwarg = 'page_pk' + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() def get_serializer_class(self): return None @@ -259,7 +295,7 @@ class APIDocumentPageImageView(generics.RetrieveAPIView): task = task_generate_document_page_image.apply_async( kwargs=dict( - document_page_id=self.kwargs['pk'], size=size, zoom=zoom, + document_page_id=self.kwargs['page_pk'], size=size, zoom=zoom, rotation=rotation ) ) @@ -274,14 +310,7 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView): Returns the selected document page details. """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - 'PUT': (permission_document_edit,), - 'PATCH': (permission_document_edit,) - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentPage.objects.all() + lookup_url_kwarg = 'page_pk' serializer_class = DocumentPageSerializer def get(self, *args, **kwargs): @@ -291,6 +320,27 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView): return super(APIDocumentPageView, self).get(*args, **kwargs) + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() + def patch(self, *args, **kwargs): """ Edit the selected document page. @@ -321,6 +371,12 @@ class APIDocumentTypeListView(generics.ListCreateAPIView): return super(APIDocumentTypeListView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeSerializer + else: + return WritableDocumentTypeSerializer + def post(self, *args, **kwargs): """ Create a new document type. @@ -342,7 +398,6 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): } permission_classes = (MayanPermission,) queryset = DocumentType.objects.all() - serializer_class = DocumentTypeSerializer def delete(self, *args, **kwargs): """ @@ -358,6 +413,12 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): return super(APIDocumentTypeView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeSerializer + else: + return WritableDocumentTypeSerializer + def patch(self, *args, **kwargs): """ Edit the properties of the selected document type. @@ -406,6 +467,33 @@ class APIRecentDocumentListView(generics.ListAPIView): return super(APIRecentDocumentListView, self).get(*args, **kwargs) +class APIDocumentVersionPageListView(generics.ListAPIView): + serializer_class = DocumentPageSerializer + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_document_view, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + class APIDocumentVersionsListView(generics.ListCreateAPIView): """ Return a list of the selected document's versions. @@ -450,20 +538,48 @@ class APIDocumentVersionsListView(generics.ListCreateAPIView): return Response(status=status.HTTP_202_ACCEPTED, headers=headers) -class APIDocumentVersionView(generics.RetrieveUpdateAPIView): +class APIDocumentVersionView(generics.RetrieveUpdateDestroyAPIView): """ Returns the selected document version details. """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - 'PATCH': (permission_document_edit,), - 'PUT': (permission_document_edit,), - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() - serializer_class = DocumentVersionSerializer + lookup_url_kwarg = 'version_pk' + + def delete(self, *args, **kwargs): + """ + Delete the selected document version. + """ + + return super(APIDocumentVersionView, self).delete(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_queryset(self): + return self.get_document().versions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentVersionSerializer + else: + return WritableDocumentVersionSerializer + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } def patch(self, *args, **kwargs): """ @@ -478,21 +594,3 @@ class APIDocumentVersionView(generics.RetrieveUpdateAPIView): """ return super(APIDocumentVersionView, self).put(*args, **kwargs) - - -class APIDocumentVersionRevertView(generics.GenericAPIView): - """ - Revert to an earlier document version. - """ - - mayan_object_permissions = { - 'POST': (permission_document_version_revert,) - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() - serializer_class = DocumentVersionRevertSerializer - - def post(self, *args, **kwargs): - self.get_object().revert(_user=self.request.user) - return Response(status=status.HTTP_200_OK) diff --git a/mayan/apps/documents/apps.py b/mayan/apps/documents/apps.py index 25e6e96884..8e0468f6a8 100644 --- a/mayan/apps/documents/apps.py +++ b/mayan/apps/documents/apps.py @@ -82,8 +82,8 @@ from .widgets import DocumentThumbnailWidget, DocumentPageThumbnailWidget class DocumentsApp(MayanAppConfig): + has_tests = True name = 'documents' - test = True verbose_name = _('Documents') def ready(self): @@ -105,6 +105,42 @@ class DocumentsApp(MayanAppConfig): serializer_class='documents.serializers.DocumentSerializer' ) + DashboardWidget( + func=new_document_pages_this_month, icon='fa fa-calendar', + label=_('New pages this month'), + link=reverse_lazy( + 'statistics:statistic_detail', + args=('new-document-pages-per-month',) + ) + ) + + DashboardWidget( + func=new_documents_this_month, icon='fa fa-calendar', + label=_('New documents this month'), + link=reverse_lazy( + 'statistics:statistic_detail', + args=('new-documents-per-month',) + ) + ) + + DashboardWidget( + icon='fa fa-file', queryset=Document.objects.all(), + label=_('Total documents'), + link=reverse_lazy('documents:document_list') + ) + + DashboardWidget( + icon='fa fa-book', queryset=DocumentType.objects.all(), + label=_('Document types'), + link=reverse_lazy('documents:document_type_list') + ) + + DashboardWidget( + icon='fa fa-trash', queryset=DeletedDocument.objects.all(), + label=_('Documents in trash'), + link=reverse_lazy('documents:document_list_deleted') + ) + MissingItem( label=_('Create a document type'), description=_( diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 436273eab8..351a1b04ad 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -20,7 +20,14 @@ from .settings import setting_zoom_max_level, setting_zoom_min_level def is_not_current_version(context): - return context['resolved_object'].document.latest_version.timestamp != context['resolved_object'].timestamp + # Use the 'object' key when the document version is an object in a list, + # such as when showing the version list view and use the 'resolved_object' + # when the document version is the context object, such as when showing the + # signatures list of a documern version. This can be fixed by updating + # the navigations app object resolution logic to use 'resolved_object' even + # for objects in a list. + document_version = context.get('object', context['resolved_object']) + return document_version.document.latest_version.timestamp != document_version.timestamp def is_first_page(context): diff --git a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo index 3de7470a47a3e738d8b5d025b75f98804cc3a347..050a6bfe8c53633ae018700ecda574d7f01ecfe1 100644 GIT binary patch delta 1327 zcmY+^T}YEr9LMpq+@`jv17bz85j~&H-exLMPM(`P2f#Q7kz)*bJJn}=kuJi=bY!9|2f-A@OR)w zFnPonQ{*zH89Oi!@8Sh~gt=Je&bC)!33We~VH`K%ajZlOH{umkzX{ZHlc?ur(1WkA z0N=Px()hVqq#+;wU=ilfTN5e4Vyr|b*5X!-q9)RYg=k?rj^J*bLm#f)Vl; zDr29JT`}L#hij>>;9riYB2$M8C{lLT1JRtWt%dOzbB@#CC%7 zlqs4x3(RClX=WG9K|-a1(9cwh+Ciu!H*g6O+B=nWRG z4D}_fbLrc8UPpQ%zs2EB3?_z06Df~pwxA(Y7Yjuiec@O<+LU_jsZdKa6bbvn_3=n7 z^}{pfZM72pm#qH2xX(JDI^#W+dh7l2qHx^lT%K7@rxV4kj`ZJ>caGd{d)$Sx)IZk5 BfaCxG delta 1483 zcmXxjO>C4!9LMolSlqU|r7bO}AUfquTDP#>T?#ftg9cwIm|8SxB5~`ki!g;L0+o*9K zs^1@|e*a<|V=+@UwFHgy+Jenkjjv%HcB2+@7+2vSMsWdiGLxdX&#`(7#FC1Tah)G z7sC1*n5F(cGMD)xY`=t>_&Vx)--q=($h>89Zz(W!T#!0su^0Da3TJUU{)SIu4G%#( zXhE7x3ZKQ7!uqk$lQ>BGH1^;dwFMV4OE!}k(2B*a#1WB*{nK0ghdRuAo268i*%?CfdwMc3;9h5uB?PR@JJs#cb zqqH*&THM>wmzNa^?pUm)xtO#^awi;n*l~tz-YGaEPTm$veSJ=`*k39XMk}=|b}z4V zSJgx|bd`!D_QT`DCywSFn;WqOCr88ZkYn@1eWeeap^-{&_3IJ$O3gR59c}IHZRw0n zr8{?I-9zzpYDu-FciGg=&P>LgjE}mBL~mkWZfKyC8*n;p?zrnD{*3zL{)Bs}KD(Zk zdEfe{tbfX@cys<~Z^n9;{YmdTZ^oOe?5!P(x*s*Hs@!czMqWHa>t*YG?N4gVl>do$ qP2*;)KcV7`|EWJ=y#@a5PkC2V_huFHCGV;?Td8mSCF1_wboL>=(b0AQ diff --git a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po index 8bb4bc416e..44c949b1d6 100644 --- a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po @@ -1,102 +1,122 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "الوثائق" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "نوع الملف" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "تعليق" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +137,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +148,258 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "صورة الصفحة" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "إعادة تسمية الوثيقة بسرعة" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "تاريخ الاضافة" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Unknown" + +#: forms.py:130 msgid "File mimetype" msgstr "نوع الملف" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "لا شيء" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "حجم الملف" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "موجود في التخزين" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "مسار الملف في التخزين" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "صفحات" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "نوع الوثيقة" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "ضغط" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "اسم الملف المضغوط" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "اسم الملف المضغوط سيحتوي الوثائق التي سيتم تحويلها، اذا تم اختيار الخيار السابق" +msgstr "" +"اسم الملف المضغوط سيحتوي الوثائق التي سيتم تحويلها، اذا تم اختيار الخيار " +"السابق" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "نطاق الصفحات" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "تحميل" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "مسح بيانات الرسومات المستخدمة لتسريع عرض الوثائق و نتائج التحويلات." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "تحرير" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +417,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +428,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Description" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "ملف" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "صفحة %(page_num)d من أصل %(total_pages)d للوثيقة %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "اسم الملف" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "مستخدم" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +530,10 @@ msgid "Delete documents" msgstr "حذف الوثائق" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "تحميل الوثائق" @@ -528,12 +550,10 @@ msgid "Edit document properties" msgstr "تحرير خصائص الوثيقة" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,212 +589,155 @@ msgstr "تحرير أنواع الوثائق" msgid "View document types" msgstr "عرض أنواع الوثائق" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." msgstr "أكبر عدد من الوثائق الحديثة للتذكر لكل مستخدم." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "النسبة المئوية لتكبير أو تصغير في صفحة الوثيقة لكل مستخدم." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "أكبر نسبة مئوية (%) للسماح بالتكبير داخل الوثيقة لكل مستخدم." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "أقل نسبة مئوية (%) للسماح بالتكبير داخل الوثيقة لكل مستخدم." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "الدرجة المسموح بها لتدوير الوثيقة لكل مستخدم." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "لا توجد صفحات أخرى بهذه الوثيقة" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "أنت بالفعل في الصفحة الأولى من هذه الوثيقة" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "سيتم حذف جميع الإصدارات اللاحقة بعد هذا الإصدار أيضا." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "تم ارجاع اصدار الوثيقة بنجاح" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "خطأ بارجاع اصدار الوثيقة %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "ارسال" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -782,32 +745,77 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" @@ -817,23 +825,24 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:1023 +#: views/document_views.py:541 #, python-format -msgid "" -"Error deleting the page transformations for document: %(document)s; " -"%(error)s." -msgstr "خطأ بمسح التحويلات الخاصة بالوثيقة: %(document)s; %(error)s." +msgid "Recalculate the page count of the document: %s?" +msgstr "" -#: views.py:1032 +#: views/document_views.py:558 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "كل التحويلات الخاصة بالوثيقة: %s, تم مسحها بنجاح." +msgid "Transformation clear request processed for %(count)d document" +msgstr "" -#: views.py:1044 +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" +msgid_plural "Clear all the page transformations for the selected document?" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -841,28 +850,82 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "لا توجد صفحات أخرى بهذه الوثيقة" +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "أنت بالفعل في الصفحة الأولى من هذه الوثيقة" +#: views/document_views.py:595 views/document_views.py:623 +#, python-format +msgid "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." +msgstr "خطأ بمسح التحويلات الخاصة بالوثيقة: %(document)s; %(error)s." -#: views.py:1225 views.py:1234 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "ارسال" + +#: views/document_views.py:648 +#, python-format +msgid "Clone page transformations for document: %s" +msgstr "" + +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -926,9 +989,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -939,11 +999,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1076,10 +1136,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1093,11 +1151,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1120,11 +1178,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1141,15 +1199,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1206,11 +1268,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1234,11 +1296,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1259,9 +1321,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1291,11 +1355,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1352,15 +1416,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo index e1c7a6fc8d3c369f874f7b7ecc4d6854d4fd8607..06b4e9458751d56669a230200cd90adb8d2328ef 100644 GIT binary patch delta 1315 zcmY+^OGs2v9LMqF_!u9f<)h5B8uO8wlg{`YX;E1g6ctf!T1_D))+AY(WK9oi5j~U< z(x@n+2R%R>tR!8u2!dMNF$_eiWzhpSww1m=9fS`2{hWKb=bZofpEFKYPI!7s0~?Jo z-(!qvz~WeA;;{|eu@mk1C-VL;rt>_DOE4|Yn8jFxIq1biY($Oop}uQDeHXwa?7?Kb z9cKcjkj_(HBw!d9;S?&7Uzmn7NRGzNtjo}WN~8c&(2F~98|LFpbmAzc;uqBTY1G0q zn1QzV!2H6QtfmEX`Lhp8a1WltM*M`DpoA=Iu?)4-LlN7NqL{O&9d~0P-a>LWZ?O~K zV-ap*u;yzG&>qb5AfAANTfRiS67Bbr5hmrA{r z_MW=6 zF2?Zi5g%Ybws9UBpFkGJFbzxb5*D()8KOh-W)i*l6L(>L=KTBP_(B7)9xKQ~XV-yR zxGQ2WYG;p7Xa5y7Pi&SkoZQ^S(}r|RN_-We^$qiyJVF;pEpeW?GFQ;Ajy!A9@6m|Q};Ttjdr7Mh!$ z%BrUOQcP44y3A@Sv3>~@!MF$yp~mUX{SQ#ZoysdE_%NnER1@oswl}mKZu0w%g#7Wg zs8Cq-?#Zba~uPcXgeoD)=&~%dx}f zZ$9B`ZmM%0Xb!p^`-20Hi=q3;)%Ns$Yt$NcT4UCrGu&+rS|iq*&_ssa7Rt+Px24~) XhOO7uD{IIa4xbNS;At$_m-X%+f|!{x delta 1468 zcmX}re`wTo9LMp`ZnvMerJ0$!(vMS9x0`KuZqs2wO@&|@itdl1KW^LC8C;urch(}f zH7)m#%=RtPKOAA0AO-3*Jf&?=BtcQ1Z=s+eLa+*qp!%o&>-qZL>I0v9eC~6fU+?$l zb2k&Wx15US_ZVY-i5l}Xc2pR%3tz)(oWl%$g;lt{vedr=AL9FNd>B)>7+=LlaU5&$ zJZj!0)VLyQ+_xCRdzB_{>S^4k<8k~4YtS-l5jLR?(uGT~8#$}##pU<{>L6Ks0LM`Q zy^rhgXS5h&kq0r3n*S7P-|p(XF-vLer9&GZ!~=L3_u&of#TERxR{f|2-o>qW1{LY| z3*JSNWqw6P{5vYJD1(U2G~);+a3g-4r=bOJE_eqO(LGc|e_;Y6ho{m^<>3=u>Cr|pLRGd@YDxK+d34gZd7 zbgo7I`Dk|}o%VaHHm%9T?V;3B&-QuVkR9;SUe+71nOuLrm&qK=rPCvY`RMlY51XpX z8h7V1S$p`%@X?nBJe$hew3nh|c*wH@!~MCJy`gMjW6iT={z&ad^&Ks3Z7qqUZB2Bw zZ}H=?2KBVIB(~bt&aPzA-yeI!zZ-kLt|v7#m`e?MUAAw~@2EQ-n+)D`#o&ay?u!1Q zB}xBm{mLf0K4abGU?Ov5RTV0hRz!B5 z3r2$pciCOhoKN*J=Vlo@%i@|k9dwPcHxB EUpUd~tN;K2 diff --git a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po index f1fcd219b3..514838bfa7 100644 --- a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Документи" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Коментар" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Изображение на страница" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Бързо преименуване на документ" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Дата на добавяне" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Неизвестен" + +#: forms.py:130 msgid "File mimetype" msgstr "mimetype на файла" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Няма" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Размер на файла" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Съществува в склада" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Файлов път до склада" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Контролна сума" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Страници" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Вид на документа" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Компресиране" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Име на компресирания архив" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Името на компресирания архив, съдържащ документите за сваляне, ако предишната опция е избрана." +msgstr "" +"Името на компресирания архив, съдържащ документите за сваляне, ако " +"предишната опция е избрана." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Поредица от страници" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Сваляне" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Изчистване на графичното представяне, използвано да ускори изобразяването на документите и интерактивните промени." +msgstr "" +"Изчистване на графичното представяне, използвано да ускори изобразяването на " +"документите и интерактивните промени." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Редактиране" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "По подразбиране" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,98 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Описание" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Файл" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" -msgstr "Страница %(page_num)d от общо %(total_pages)d страници от %(document)s документи." +msgstr "" +"Страница %(page_num)d от общо %(total_pages)d страници от %(document)s " +"документи." -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Име на файл" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Потребител" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +533,10 @@ msgid "Delete documents" msgstr "Изтриване на документи" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Изтегляне на документи" @@ -528,12 +553,10 @@ msgid "Edit document properties" msgstr "Редактиране на свойства на документа" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +592,342 @@ msgstr "Редактиране на вида документи" msgid "View document types" msgstr "Преглед на типовете документи" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Максимален брой от скорошни (създадени, редактирани, прегледани) документи, които да се показват на потребителя" +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Максимален брой от скорошни (създадени, редактирани, прегледани) документи, " +"които да се показват на потребителя" -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Процент приближавани или отдалечаване на страницата на документа, приложен за потребителя" +msgstr "" +"Процент приближавани или отдалечаване на страницата на документа, приложен " +"за потребителя" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Максимален процент (%) допустим за интерактивно увеличаване страницата от потребителя" +msgstr "" +"Максимален процент (%) допустим за интерактивно увеличаване страницата от " +"потребителя" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Минимален процент (%) допустим за интерактивно смаляване страницата от потребителя" +msgstr "" +"Минимален процент (%) допустим за интерактивно смаляване страницата от " +"потребителя" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Градуси на завъртане на страница от документ, при потребителско действие" +msgstr "" +"Градуси на завъртане на страница от документ, при потребителско действие" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Няма повече страници в този документ" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Вече сте на първа страница на този документ" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Всички версии, следващи тази, ще бъдат изтрити." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Документа е върнат успешно към предна версия" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Грешка при връщане на версията на документа; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Подаване" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Грешка при изтриването на преобразования на страница на документ %(document)s, %(error)s." +msgstr "" +"Грешка при изтриването на преобразования на страница на документ " +"%(document)s, %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Подаване" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Всички преобразования на страницата на документ %s бяха изтрити успешно." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Няма повече страници в този документ" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Вече сте на първа страница на този документ" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +991,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +1001,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1134,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1149,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1176,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1197,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1266,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1294,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1319,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1353,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1414,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo index 5e1d760b00fcbbc80cfe5072020663cd7a5828a1..fc36d15792ff9d14003289f5e67d10e73d6bdbc1 100644 GIT binary patch delta 1333 zcmZY8Ur1A77{~E<&FOTrrOUL`nx(ePrCXc2fksM-WMYEdWXMU>q?(3*N}&dMxeNZG`^!?4<^|I%D&N(~hdEe)K-?QxBs=im7IBksa zIE-n>^XS9}IDwBb2aB?I?w6yN>uM~*81BIyEJF+P@DA#|dDL_FQO_-*3*TTqzRxxZ zQ_aZ+H*)bWdeF|>8i*GQu?(}Y4ofhM8pt`^jTUy}I9B2+`tUmzpo3(3zZlhV8Scdz zXJV)0Q{3QZIyq<{z1WBS*o&|60y_9piTbe#EmXx1Gd@Em&AdcazJe-n9jVRy!WrB` zKTaliTL~W_gEdbw*UwQEzCcyDh9TU*-!?j79%Ec@yNzkVM#}2IX=JSCE#AOSnd>M? z=+m@fDR$w0OkCkaQ*;*(;sR<3Qm6r~p&tBKuP&xsO0#WT2q$8j4Eqo19l|IeZlUdmh#qbj+D+9M0dSj-aYxfRqB zuHpa|kwi;4g&N2@wy^)qS5EjDFIkkJ3Y8#?#n_BTun$$?3=ZNPYJfjcGm=M{de4)w z1U0}4w>1uq+|g?)2V@}u|3kA zsUR&2lW0y5Y8s3_(>mf1p_bUip_WkPYN{xdJ~QSh`U!nWVNLR98r5t`{=cyxOF|X z=ycmsA9Fiw+3~CKv77Ov%e9=}7^sf~LQTG4Bo>Y)-?>V4CmaX`eZhuUD3aWCEqc1F z_{fwsG8FS&o)~C7oxJV7nA~)~N`1>8w>!G6+0p4#TY=A(nk#IxIlG6($7bW!Wb%V| F@E-|6d}IIs delta 1468 zcmXxjO=z4&9LMq5ZtAAV=B=qQCNWOhCQa(bY{cRqH%=4LNGV{#* z|1$acskLsQHVibyw=k#vG%uNrx8x*!MGhi}zie!$&xeuQBL^`cWUcf>Zb_D&jgG zvV{jpGhL|2Eh@kXBzW@-!z`2(M-OTqCxD%1nLOR^B|ihgBrJv8n=Vm z=$EKe?&3+@LoILv`7?KTXe0Mg0X;%}FU&>gVtsS$pkYQ(AAS{Q@NIksckwv>=KudM z)CYqM*7z_FMbeA9BMH?1XHiEuj~DR=)Deam^fabW_s?w8Q0jJ&G3F|g6!SakL-+6r ze26;xFkvXdD5fxh+Td5HjQot6cLlYv>&R4d4~Oty z5~eB}IvN$F@H90@)goM0HZL}QrBvDAtpjQj0V zI7rpGtLUabTWfIZZ{d^7I5uUYlZkk|@?qnrl}PwP%j-^VspKrV37hmTzBpa^Abk0`H`!0I;N-l; zd|}l|WtLs*={=Kj?0XK2t<)Av*nW2Jm2AmdTXui>CYP^9n%)mqe{Agt^v>oBj!kBY a8Jlzp?y6mO(+&apQ>$0oW&)MY_T+z(uCG1- diff --git a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po index 6d13f3082b..32a3300cc6 100644 --- a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po @@ -1,102 +1,122 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenti" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME tip" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +137,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +148,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Slika za stranicu" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Brzo preimenuj dokument" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Datum dodavanja" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Nepoznat" + +#: forms.py:130 msgid "File mimetype" msgstr "Mimetype datoteke" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nijedno" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Veličina datoteke" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Postoji u pohrani" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Putanja dokumenta u pohrani" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Stranice" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tip dokumenta" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresuj" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Naziv kompresovane datoteke" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Naziv kompresovane datoteke koji sadrži dokumente koji su za download, ako je ova opcija odabrana." +msgstr "" +"Naziv kompresovane datoteke koji sadrži dokumente koji su za download, ako " +"je ova opcija odabrana." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Opseg stranice" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Download" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Obriši grafičku prezentaciju korištenu za ubrzanje prikaza dokumenata i interaktivnu transformaciju rezultata." +msgstr "" +"Obriši grafičku prezentaciju korištenu za ubrzanje prikaza dokumenata i " +"interaktivnu transformaciju rezultata." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Urediti" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +419,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +430,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Opis" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Datoteka" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Stranica %(page_num)d od ukupno %(total_pages)d u %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Naziv datoteke" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Korisnik" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +532,10 @@ msgid "Delete documents" msgstr "Obriši dokumente" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Download dokumenata" @@ -528,12 +552,10 @@ msgid "Edit document properties" msgstr "Izmijeni osobine dokumenta" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,291 +591,340 @@ msgstr "Izmijeni tipove dokumenata" msgid "View document types" msgstr "Pregledaj tipove dokumenata" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maksimalni broj nedavnih (kreiran, izmijenjen, pregledan) dokumenata za pamćenje po korisniku." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maksimalni broj nedavnih (kreiran, izmijenjen, pregledan) dokumenata za " +"pamćenje po korisniku." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Iznos u procentima zumiranja stranice dokumenta po korisničkoj sesiji." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maksimalni dozvoljeni iznos u procentima (%) korisniku da zumira stranicu dokumenta." +msgstr "" +"Maksimalni dozvoljeni iznos u procentima (%) korisniku da zumira stranicu " +"dokumenta." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimalni dozvoljeni iznos u procentima (%) po korisniku da zumira stranicu dokumenta." +msgstr "" +"Minimalni dozvoljeni iznos u procentima (%) po korisniku da zumira stranicu " +"dokumenta." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Iznos u stepenima za rotaciju stranice dokumenta po korisniku." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Ovaj dokument nema više stranica." + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Već ste na prvoj stranici ovog dokumenta" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Sve naknadne verzije nakon ove će također biti obrisane." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Verzija dokumenta uspješno vraćena" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Greška pri vraćanju verzije dokumenta; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Podnijeti" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "Greška brisanja transformacija za dokument: %(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Podnijeti" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Sve transformacije stranica za dokument: %s, su uspješno obrisane." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Ovaj dokument nema više stranica." - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Već ste na prvoj stranici ovog dokumenta" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -917,9 +988,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -930,11 +998,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1064,10 +1132,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1081,11 +1147,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1108,11 +1174,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1129,15 +1195,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1194,11 +1264,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1222,11 +1292,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1247,9 +1317,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1279,11 +1351,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1340,15 +1412,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo index 4e86032127d193b91863ce88b59848da40cc8d91..eb8c8020ae3ca3206e74e78e94f2ddea2bfe935b 100644 GIT binary patch delta 1278 zcmYk+Pe_zO7{~EvQ(J9c&DGW{Ew?nyYR%ntQ@2Abl?6$Z{Uan|DbvjMqFGk3P(cY% zhplb}Mg-YKcu$?Ae*{@jhk`BzK^;7FO6U^w{q4R72WCGr^Sm?@ zo>3Cidg^PR*=`&z;)imxxbSQOQ}k!B8+|2arML%2@BsSpjW_-QtLcBi5YAyG+Ty}G zL0n>%wKf|1unYBK3iaYq4B#M^<0v-cRV>4&xD;K~MqXhRzQvAwfaCZO*JCYTX`+;8H!7mNsEAHr3^RC(W1GYd`fZL`5>Mj}oJ96y zKk+jDMwYN4qRjG*jndGBS=0izQAh9yYtZ$cze7#*6_x5As3Vw19aRaFFt-J9Ev`n* zpF+*kg9_**>bt=T@?S^eqW8jG)CQiRQaghiF~r-gn8M|F7IiUkrs#8zy>oj8UgsH2)gMOIB( zxNlaA3|Rw`9E)NCw<9N&-<;;t{mZ9j1M1eQC^B6CMBPGFM9LCL%a>K2 z%9xHrncD1)>Axl9wZ#f5M^jO_DBgoe?m_W3x1}UrOKI>XUKGTxQD5~$NiJQ9nBqg#`)MDB55-04YY2F|Ak`jg>P>0G_jm%HxtyRGHD U`S~*Gv5b4EGT?Kc1gCue0Z5H;Z2$lO delta 1419 zcmX}rTWDNG9LMq5?8Y?7=F-+0O>H|#li0*;Om=f)RV0)K0ydahL+ORG$xhPHlZ|9A z7$U3+c@T>)OJ4LPg475t4eW!0D3l<{gVNhWQL)(8hxj6vQlWv0-(PZc*#CacnLTG_ z{{NYM)O5Wie`i-{(a?H{=ZPNz#th-RLB429A!B;*GaSa-IDjps#th;)+<{jxjbCFK zwm-Gq-;KMue--!O2-e~xGGE@j!$k!hi>McuP!BGn9{dg~@fud)FW7>AU^&+EQVrIl z7Se{hFow_KAZh_;u^Q8;L_WYK<~KLEuyp*5JF$*YNYb>TChWkc@fFmBBfh8bE$$s2 z!*6gDt9j_4`cdP2i2e96D$zCHn^?;H=2tG1@qJWgk8utyPanchPy?;{uA?&g5tY$h zjN)H-f$cj;x%#+Y2^;eoZeSb_k*)+`>lu4K;p{hcr%g4fR)M&2;F+Hoo>^+<#yc zwSZ|Z1JidtwcpQJKrT*Hp4mRHE2jl>o zi>MM_LS^u~?*sq$f3TkZ5NUVd0nFhrYRkSyCH5zBPR&E)6|;#H+k{zN57y_oV9T~v z4O`jkZ+JjAG@W1_CJmydva0Rh#zcH|ZaV$zUSCy6)zLzgl$xr?IXCTuwj{4rmJrQ^ zn)XMniO@>_Ys%_5f&{ky4O)Ezp@aJZK}G*>U0kW$YWs*bqMOiJQPWmw|6kI1SNWoZ zn)XcPR;et(Hk%k>3Jal^OFXa8TGrZ-Znx(WIcLY5OWCCJT*f7BIy*k@(&>q;=gk$r z4fO?!Ps%C+jYqTTjD34{CO4IIHj%NOOVBZsayB_Lo}G57OtG|lBT&^F>FSC^W41FI z@98dVR_s+zXC&HhJNx3XSfR0UuCQErGW>cXHJMFJy0}dy3W4y%4$pHo&ESQfs~f_s z%+1;{&*faEcshJ0SiD+O5!gSFnw-kn>8VtbxmUl;*n97N#3wm(UMncB*Io|%3-4T{ A82|tP diff --git a/mayan/apps/documents/locale/da/LC_MESSAGES/django.po b/mayan/apps/documents/locale/da/LC_MESSAGES/django.po index cb82180756..2115adb996 100644 --- a/mayan/apps/documents/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/da/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenter" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Kommentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Side billede" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Hurtig dokument omdøbning" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dato tilføjet" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "File MIME-type" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ingen" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Fil størrelse" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Eksisterer i opbevaring" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Filsti i opbevaring" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Sider" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Dokumenttype" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Komprimér" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Pakket filnavn" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Filnavnet for den pakkede fil, der vil indeholde dokumenterne til download. Dette hvis den tidligere mulighed er valg." +msgstr "" +"Filnavnet for den pakkede fil, der vil indeholde dokumenterne til download. " +"Dette hvis den tidligere mulighed er valg." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Sideinterval" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Hent" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Fjern grafiske repræsentationer brugt til at fremskynde visning af de dokumenter og interaktivt transformerede resultater." +msgstr "" +"Fjern grafiske repræsentationer brugt til at fremskynde visning af de " +"dokumenter og interaktivt transformerede resultater." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Standard" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Beskrivelse" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fil" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Side %(page_num)d ud af %(total_pages)d i %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Filnavn" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Bruger" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "Slet dokumenter" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Hent dokumenter" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "Redigér dokumentegenskaber" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +590,339 @@ msgstr "Redigér dokumenttyper" msgid "View document types" msgstr "Vis dokumenttyper" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maksimalt antal seneste (oprettet, redigeret, set) dokumenter der huskes per bruger." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maksimalt antal seneste (oprettet, redigeret, set) dokumenter der huskes per " +"bruger." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Procent zoom ind eller ud af en dokument side pr brugerinteraktion." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maksimal mængde i procent (%) en bruger kan zoome i et dokuments side interaktivt." +msgstr "" +"Maksimal mængde i procent (%) en bruger kan zoome i et dokuments side " +"interaktivt." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimum procent (%) en brugeren er tilladt at zoome ud af en dokumentside interaktivt." +msgstr "" +"Minimum procent (%) en brugeren er tilladt at zoome ud af en dokumentside " +"interaktivt." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Antal grader en dokumentside roterer pr brugerinteraktion." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Der er ikke flere sider i dette dokument" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Du er allerede på den første side af dette dokument" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle senere versioner af denne vil også blive slettet." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Tidligere dokumentversion genskabt" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fejl ved genskabelse af dokumentversion; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fejl ved sletning af sidens transformationer for dokument: %(document)s ; %(error)s ." +msgstr "" +"Fejl ved sletning af sidens transformationer for dokument: %(document)s ; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle side transformationer for dokument: %s, er blevet slettet." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Der er ikke flere sider i dette dokument" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Du er allerede på den første side af dette dokument" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1129,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1144,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1171,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1192,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1261,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1289,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1314,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1348,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1409,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo index 7e472a896e2998dbf1e1a1b99b897a9caf8c5230..8ddb15f6c22f3a5902c347ab8ed44dff1c27f70a 100644 GIT binary patch delta 4247 zcmZA4dvH|M0mt#P4U$cG2`d({ z4HiRhk*ZbRfc5K8y;Qht~%$Ou&^sFA#10KV>a4U|$7qJV^;!vEJY|KEMjk# zVK=7Ylc?+WAkQ+#Q5`&oWAHCHi07Ml?$(7F$TLhS>H#%47H42Iu0vh73H5_J@q2g( zXX06>p2X9$sFxzoFtbqCyHOoog=+XlEaLg*3Fm@i$Zwc4s3E=R)URVa^;=GT5UtP% zWuY20fe&5Z=+qZs5%n(AeY;T&coj476pqGA7+|`Li*eIXC*j>#h8B8IbGQZ7lRo4g zvk!IO3CDL(J-Udx?o+&g|3p3b{WN1D@d~EnpOCN2w`q*OdYr;pwKNa)!{bm5nuc05 z%TPmi1P9{@)D)dXJ@|Jx3ol>}j;5QPSdSLIjhfoasD|7?jo6nNjK2P$P zLH%$E4#M%M2iH2^H#*-hMD2nlPJOxa{ll2c`SnhH4>nQn$2sU4Zp;HXFTeq#Vfry2 ze}ih!=cv_s3pEnyRCHYx(n&KL)nKpVMpVOXR1crWD%^{C_z|ij5v*8^WIU=KxQhez zAQv?!g{YyeMLlpPszFOo*R4cNQ4faJ2I`0UkhYrVP;2Bk>Ot?LM(!ex!fUAK#Ii+J zX#ZOr=m)o=7Rz&}AAA|rkmJaI<|H2)i7TiPxQ*JDX`Iw*&O$Y~4)x$gs0Vvd*Y#jI zZosv86w|f;3#{-9VG628?Wi92IQ7k_mTyDN>1(J4UqCuzt~>Rpk>PDQ6t&pKqOPk& zP01X``KXRHtIqRH3kOqo^r)8yQ7& z3D@Jlk)36F^1>t8hibsH$oew}QB!mpb=~DW#$N|taY8*#924HJIXISj9cl=BP&aOI zd;w#qzlrMUNvD1THG=;_y@(RoQtUXBjrBMQHI=={AebZhjK6O9fD^jmGgOOjV+_U> z@DC2AqUN*_b-f$auyv?y*o#`cyHFiDih9s#=lpfln)({mk?2BWiZLs|fqtj~^?+uq zL?0I6epJKGqlJIQ8jRvg2F*;zSnNdo@LJUN+K&3&Lym8u8gLGE-G}%`4BX&A`}Map zXApjhYWe4={hY}7Y6y!^J)Mpkfo7yLrW=2NyHOpu=@?lWZrCtK3uo|s0jh(3+^PM4 zm;?P#EfcOG?7%48i1D}?6VOIAbRQ1J6R4h_#W?&uYNRfs?)w7Oq1%qJW#QeEin>1& z3$*|9InZ3s!|AvPoA7{BzlH29Go?Jd7FtpJelKeEpF)k;C#aE$xI4T%GEpOV59b{Mr^G~5V`fJqlu8m{-lR5aB6KZ+f`0%z!!7l1GsPErEwzN5i8kv8fhVnLQ z?uS%`hd2Xy2bpTr_bsRwPZz3VeaOqwyoDOEOI3`2DhGe#L4Ry*6x{3hCc3DvB@N_9L}d}t2#nJFPbDnUP}#+&hH@@p8JI&P zNL2L7Rhb<641ee?w)~Fzlsk_1aQq9Wu2E9a%gjq=5_Wj_?>{sz>4P$zXev}zl31c1 zX#x3()zE)=!h4PBkz~ci|0O^McSS7d5&T>i6)7vIAsLRBiUpzIZ6(bjL;bl_K{xF zPgK~pp|Xz82ZC=T)VqR>Nuyo%&E(<1-jp4#VDZq*0m0R2n_PBYMpAHYMsq||yT|A5 z2=-^5b=jx07Us8fF758{`21a#f4R5I>ge?Omz!Ch)z(UPtLM&>!Ris-Nc-vR9Q#!E z+-P5$uXDA}PRjXc$oS&1mBr;%R$1l5iV5~NIm30PqPV=mDleZ{USW^SP0N|->2j}d zTXj92RqbA1t99=Rk8?P=wZrXgFIn2zVK2^gCp5Tyt=&9%qSfMAJhjd~nfqX{VDx9M z;6r03yX=yJwBW$P_gulNMeYH?HKp&m>}#b-!I#P+BV(qz{T^?qYn3-$c3f4nU04-g zWO;p7i`UcT>9Fqa^tt_Xt=nVG^?3ar-~WGScNV1w`>Vc+jIU{L_gGUq+d?Dbv3FNz X+3!@ZiEZ*N@wB;pKEFMA(uw~8(cR=f delta 5443 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 vrK_norwmVbO#LW3HLWUds1@q4=0zicxS1d5, 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2015 # Tobias Paepke , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-31 19:06+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:24+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumente" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "Neue Seiten in diesem Monat" + +#: apps.py:119 +msgid "New documents this month" +msgstr "Neue Dokumente in diesem Monat" + +#: apps.py:128 +msgid "Total documents" +msgstr "Alle Dokumente" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Dokumententypen" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Dokumente im Papierkorb" + +#: apps.py:145 msgid "Create a document type" msgstr "Dokumententyp erstellen" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Jedes hochgeladene Dokument muss einen Dokumententyp zugewiesen bekommen, da Mayan EDMS Dokumente auf der Grundlage von Dokumententypen kategorisiert. " +msgstr "" +"Jedes hochgeladene Dokument muss einen Dokumententyp zugewiesen bekommen, da " +"Mayan EDMS Dokumente auf der Grundlage von Dokumententypen kategorisiert. " -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Bezeichner" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Der MIME-Typ der jeweiligen Dokumentenversion" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME Typ" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniaturbild" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Typ" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Zeitpunkt der Löschung" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Zeit und Datum" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Kodierung" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Kommentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Neue Dokumente pro Monat" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Neue Dokumentenversionen pro Monat" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Neue Dokumentenseiten pro Monat" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Summe der Dokumente im Monat" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Summe der Dokumentenversionen im Monat" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Summe der Dokumentenseiten im Monat" @@ -120,12 +142,10 @@ msgid "Document type changed" msgstr "Dokumententyp geändert" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Neue Dokumentenversion hochgeladen." #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Dokumentenversion wurde erfolgreich wiederhergestellt" @@ -133,249 +153,266 @@ msgstr "Dokumentenversion wurde erfolgreich wiederhergestellt" msgid "Document viewed" msgstr "Dokument angezeigt" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Seitenbild" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Dokumentseiten (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Dokument schnell umbenennen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Hinzugefügt am" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Sprache" + #: forms.py:122 +msgid "Unknown" +msgstr "Unbekannt" + +#: forms.py:130 msgid "File mimetype" msgstr "Datei MIME Type" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Keine" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Dateikodierung" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Dateigröße" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Im Dateispeicher" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Pfad im Dateispeicher" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Prüfsumme" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Seiten" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Dokumententyp" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Komprimieren" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Datei im Originalformat oder als komprimiertes Archiv herunterladen. Diese Option ist nur wählbar, wenn ein einzelnes Dokument heruntergeladen wird. Mehrere Dateien werden immer als komprimiertes Archiv heruntergeladen." +msgstr "" +"Datei im Originalformat oder als komprimiertes Archiv herunterladen. Diese " +"Option ist nur wählbar, wenn ein einzelnes Dokument heruntergeladen wird. " +"Mehrere Dateien werden immer als komprimiertes Archiv heruntergeladen." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Name der komprimierten Datei" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Name der komprimierten Datei, die die Dokumente zum Download beeinhaltet, wenn die vorherige Option gewählt wurde." +msgstr "" +"Name der komprimierten Datei, die die Dokumente zum Download beeinhaltet, " +"wenn die vorherige Option gewählt wurde." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Seitenbereich" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Vorschau" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Eigenschaften" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versionen" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Transformationen löschen" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Löschen" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "In den Papierkorb verschieben" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Eigenschaften bearbeiten" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Typ ändern" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Herunterladen" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Drucken" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Seitenzählung korrigieren" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Wiederherstellen" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Version herunterladen" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Alle Dokumente" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Letzte Dokumente" -#: links.py:144 -msgid "Trash" -msgstr "Papierkorb" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Grafiken löschen, die benutzt werden um die Dokumentendarstellung und interaktive Transformationsausgabe zu beschleunigen." +msgstr "" +"Grafiken löschen, die benutzt werden um die Dokumentendarstellung und " +"interaktive Transformationsausgabe zu beschleunigen." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Dokumentenbildercache löschen" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Papierkorb leeren" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Erste Seite" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Letzte Seite" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Vorherige Seite" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Nächste Seite" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Dokument" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Nach links drehen" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Nach rechts drehen" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Ansicht zurücksetzen" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Ansicht vergößern" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Ansicht verkleinern" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Wiederherstellen" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Dokumententypen erstellen" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Bearbeiten" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Schnellbezeichner zu Dokumententyp hinzufügen" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Schnellbezeichner" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Dokumententypen" - #: literals.py:14 msgid "Default" msgstr "Standard" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Alle Seiten" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Zeitspanne nach der Dokumente dieses Typs in den Papierkorb verschoben werden." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Zeitspanne nach der Dokumente dieses Typs in den Papierkorb verschoben " +"werden." #: models.py:71 msgid "Trash time period" @@ -389,15 +426,15 @@ msgstr "Einheit (Papierkorb)" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Zeitspanne nach der Dokumente dieses Typs die sich im Papierkorb befinden endgültig gelöscht werden." +msgstr "" +"Zeitspanne nach der Dokumente dieses Typs die sich im Papierkorb befinden " +"endgültig gelöscht werden." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Endgültig löschen nach" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Einheit (Löschen)" @@ -405,99 +442,99 @@ msgstr "Einheit (Löschen)" msgid "Documents types" msgstr "Dokumententypen" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Name des Dokuments" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Beschreibung" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Hinzugefügt" -#: models.py:169 -msgid "Language" -msgstr "Sprache" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Im Papierkorb?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Zeitpunkt der Löschung" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Ein Fragment ist ein Dokument mit einem Eintrag in der Datenbank, für das keine Datei hochgeladen wurde. Die Ursache könnte ein fehlgeschlagener Uploadvorgang sein oder ein verzögerter Upload über die API-Schnittstelle." +msgstr "" +"Ein Fragment ist ein Dokument mit einem Eintrag in der Datenbank, für das " +"keine Datei hochgeladen wurde. Die Ursache könnte ein fehlgeschlagener " +"Uploadvorgang sein oder ein verzögerter Upload über die API-Schnittstelle." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Inkomplett" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Fragment, ID: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Zeitstempel" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Datei" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Dokumentenversion" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Schnellbezeichner" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Seitennummer" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Seite %(page_num)d von %(total_pages)d des Dokuments %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Dokumentenseite" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Dokumentenseiten" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Akutialisierungsschutz" +#: models.py:822 +msgid "Filename" +msgstr "Dateiname" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Aktualisierungsschutz" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Benutzer" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Letzter Zugriff" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Letztes Dokument" @@ -510,11 +547,10 @@ msgid "Delete documents" msgstr "Dokumente löschen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Dokumente in den Papierkorb verschieben" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Dokumente herunterladen" @@ -531,12 +567,10 @@ msgid "Edit document properties" msgstr "Dokumenteneigenschaften bearbeiten" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Dukumente drucken" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Dokument aus Papierkorb wiederherstellen" @@ -572,288 +606,338 @@ msgstr "Dokumententypen bearbeiten" msgid "View document types" msgstr "Dokumententypen anzeigen" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maximale Anzahl der letzten Dokumente (erstellt, bearbeitet, angezeigt) pro Benutzer." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maximale Anzahl der letzten Dokumente (erstellt, bearbeitet, angezeigt) pro " +"Benutzer." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Betrag in Prozent für Ansicht vergrößern/verkleinern pro Benutzer Aktion." +msgstr "" +"Betrag in Prozent für Ansicht vergrößern/verkleinern pro Benutzer Aktion." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "Maximaler erlaubter Zoom in %, den Benutzer interaktiv wählen können." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Minimaler erlaubter Zoom in %, den Benutzer interaktiv wählen können." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Gradzahl, die ein Dokument pro Benutzer Aktion gedreht wird." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Standarddokumentensprache (im ISO639-2 Format)" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Liste der unterstützen Dokumentensprachen" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Dokumentenbildercache löschen?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Löschung des Dokumentenbildcaches erfolgreich eingereiht." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Dokumente im Papierkorb" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Das ausgwählte Dokument löschen?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Dokument %(document)s gelöscht." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Die ausgwählten Dokumente löschen?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Eigenschaften von Dokument \"%s\" bearbeiten" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Das ausgwählte Dokument wiederherstellen?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Dokument %(document)s wiederhergestellt" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Die ausgwählten Dokumente wiederherstellen?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Seiten des Dokuments: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Keine weiteren Seiten in diesem Dokument" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sie sind bereits auf der ersten Seite dieses Dokuments" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Seitenbild für %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Vorschau von Dokument %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "\"%s\" in den Papierkorb verschieben?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Dokument \"%(document)s\" erfolgreich in den Papierkorb verschoben." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Die ausgewählten Dokumente in den Papierkorb verschieben?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Dokumente des Typs: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Alle Dokumente dieses Typs werden auch gelöscht." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Dokumententyp %s löschen?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Dokumententyp %s bearbeiten" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Schnellbezeichner erstellen für Dokumentenyp %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Schnellbezeichner \"%(filename)s\" von Dokumententyp \"%(document_type)s\" bearbeiten" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Schnellbezeichner \"%(filename)s\" von Dokumententyp \"%(document_type)s\" " +"bearbeiten" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Schnellbezeichner %(label)s von Dokumententyp \"%(document_type)s\" löschen?" +msgstr "" +"Schnellbezeichner %(label)s von Dokumententyp \"%(document_type)s\" löschen?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Schnellbezeichner für Dokumententyp %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versionen von Dokument %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle späteren Versionen dieses Dokuments werden ebenfalls gelöscht." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Diese Dokumentenversion wiederherstellen?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Dokument wurde erfolgreich wiederhergestellt" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fehler beim Wiederherstellen der Dokumentenversion %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Das ausgwählte Dokument löschen?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Eigenschaften von Dokument %s" +msgid "Document: %(document)s deleted." +msgstr "Dokument %(document)s gelöscht." -#: views.py:639 -msgid "Empty trash?" -msgstr "Papierkorb leeren" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Die ausgwählten Dokumente löschen?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Papierkorb erfolgreich gelöscht." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Dokumententyp für \"%s\" erfolgreich geändert" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Ändern" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Eigenschaften von Dokument \"%s\" bearbeiten" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Den Typ des ausgewählten Dokuments ändern." -msgstr[1] "Den Typ der ausgewählten Dokumente ändern." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Das ausgwählte Dokument wiederherstellen?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Es muss mindestens eine Dokumentenversion angegeben werden." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Dokument %(document)s wiederhergestellt" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Herunterzuladende Dokumente" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Die ausgwählten Dokumente wiederherstellen?" -#: views.py:828 -msgid "Date and time" -msgstr "Datum und Zeit" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Vorschau von Dokument %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Es muss mindestens ein Dokument ausgewählt werden." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "\"%s\" in den Papierkorb verschieben?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Dokument eingereiht für Neuberechnung der Seitenzahl" +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Dokument \"%(document)s\" erfolgreich in den Papierkorb verschoben." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Dokumente eingereiht für Neuberechnung der Seitenzahlen." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Die ausgewählten Dokumente in den Papierkorb verschieben?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Eigenschaften von Dokument %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Papierkorb leeren" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Papierkorb erfolgreich gelöscht." + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Seitenzahl des ausgewählten Dokuments neu berechnen?" msgstr[1] "Seitenzahl der ausgewählten Dokumente neu berechnen?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fehler beim Löschen der Seitentransformation von %(document)s; %(error)s" +msgstr "" +"Fehler beim Löschen der Seitentransformation von %(document)s; %(error)s" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Ändern" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle Seitentransformationen für Dokument %s wurden erfolgreich gelöscht." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Sind Sie sicher, dass Sie die Transformationen des ausgewählten Dokuments zurücksetzen wollen?" -msgstr[1] "Sind Sie sicher, dass Sie die Transformationen der ausgewählten Dokumente zurücksetzen wollen?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Keine weiteren Seiten in diesem Dokument" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sie sind bereits auf der ersten Seite dieses Dokuments" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "%s drucken" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Dokumentenbildercache löschen?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Löschung des Dokumentenbildcaches erfolgreich eingereiht." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Seite %(page_number)d von %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Dokumentenseitenbild" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -917,9 +1001,6 @@ msgstr "Dokumentenseitenbild" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -930,11 +1011,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1063,10 +1144,8 @@ msgstr "Dokumentenseitenbild" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1080,11 +1159,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1107,11 +1186,11 @@ msgstr "Dokumentenseitenbild" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1128,15 +1207,19 @@ msgstr "Dokumentenseitenbild" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1193,11 +1276,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1221,11 +1304,11 @@ msgstr "Dokumentenseitenbild" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1246,9 +1329,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1278,11 +1363,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1339,15 +1424,17 @@ msgstr "Dokumentenseitenbild" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo index c26d0a4fd75914c6139af8e5ad4332bdf9881476..7f9f0deeec60642c6c81630669d1b9ca16ae8924 100644 GIT binary patch delta 1171 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 delta 4733 zcmaji3vg7`9mnyL2ZjVB55glt!c7QBglu>uAp{T;Kx_kI5s`!zU6M-@S+Zeo76l56 zK~ZU_z=eVq%A-Y;^3rXcM(wmhi>-_U*y&hnVcN0UDl_7Pp%fjb-{0;HkExDl^1q*R z&)&V~oc}pz2QDpoJrp^cmAu7JULXb%2f7(^9w+qRLb=q-nC|#rv@kK<7#=Z$@kT7d z5*&+V*odjP1MkFrScMnycC5%SW+p~(2AGpnZl)nO)0o*f71j6CsE(h(@8e;-2}fiZ zGYF@lgN@h+-@z381Y-ln-rOg0>5F|a8;eoTS7QeKo4Hgp^JYxLwWyhGL_N3@>D&Ag z)xm2x5>Mg{sJH656l5+Y7jx0)IUV!3e*hVic>?v^cI-j_<{%Y~xD!Xx`$4FQm7t!lz_+jlHGskW$$v7H(*DNq zXU1{i9cC74rp>4kuS9jwfg0F$)E;>Sd*UBZOY>(`hi6cm?|m%9GG=LE9cn38p!!{( zL;jVjO*F_|NY>3E)J%_|_QV^gj{f4czlZARJnA%D^6tO%K2ISHLuk)Ly=N@mgH<>S zx8fZ9FhYfFn5qFBC9FjaWDWXoBM!#jqBiM2Q5i_!M&HXv&1f7d#Wko2%tv+Xpk}%f zE3h4P+FnLYEb=ZDrSc=M;WBDQ-PpofiXN!c7N9!31vS8G)N^;CmSzsB!-c39w<2RT zD^Po6E2^J^s7!WZfzJPND(dJ1)Qfahv^g?RFUm&^U~jMSV$t?6gTSWS)<&%jvJ zz$YTBX=b37qzTo&9JK`NJfHO3jNK!A@DvrzWDjcBzl_@TCvh~MMP(o}KfdX5aD4)U z^6rl?y5W4@iQ1I!q4vN>Scyq&pxf|P)E+ z?_vikl^>wi^dhdqp5$Ev*oxY;$8a-#idu@t*l}9Qou~}&N4A;y#m(fOY?{+F=)q5r z6J%0ZkJt|cG8R*c`n(o3fF;P}%_?N?yIpE&O!~y z@3lLqj@Nj0ch11&Y%WZhU&N(dDN^#EyW?! zW;%^*c=I3B66EnEEkOn9ekN)n&6t4^Ord|Xfl38#L-vO`jaq^)FbgwF<1;Hn&8QqT zut}&)%|i?8QJHuI^_+{naXa?JBiI9fjXFJl#E4RSj*3#5To&&r8@0KHqJ^_j0|{d` zKJMM`Ky`EkHSX&4-a>;m+p`$P!>IEKK z*o*q&Vb2q&f&2>@qq*qa7xSy5-8}&la0M}wxQ|fLzS4}<>Foqt#4IItYW+ERv40$p zHS;X-0->TcQmKv;%algnL?}xtQ{%+0ySZ-h?zPT8Atn&b#0;W@&oxybUaO1Syn2o2SnN+!5#J#Kgi2AI*fpJNH=_47Z3Wcl5JQRk ziNnNxLca|vsYFMt=6!2?>?Zyn&AINuUeUxrz`eI$QGqkUYVt3&tp&E-Vl~(SyUlK} zoN#@;?Klg=fxt3fbbk7{znsL&CnoPL&2rZ4YuX~%5erm)>1palBj{KjXk0Nq^a!-+lbmXxF>_}rSog}sjc zraBl3@%A=va(&(UQJJ~dy>^oM|EH2${UN_Qpd>e8QnY1oT7tWw@Qm9&q#)WpWN32V zDP41NEM>^4_lFw&q3FJ%#-wO|@%Y36Q#4iW2HVyqx{?jQwbWfbEW6NWzV3;ub8+XD sH2JCn!6jks#FntVlyArPkGa0t>1vN&DA|zgPApAx_mu8%YswD(4;~wpzyJUM diff --git a/mayan/apps/documents/locale/es/LC_MESSAGES/django.po b/mayan/apps/documents/locale/es/LC_MESSAGES/django.po index 3706bc5f8f..6349b1cbf8 100644 --- a/mayan/apps/documents/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/es/LC_MESSAGES/django.po @@ -1,103 +1,122 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-23 06:45+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 17:56+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documentos" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "Nuevas páginas este mes" + +#: apps.py:119 +msgid "New documents this month" +msgstr "Nuevos documentos este mes" + +#: apps.py:128 +msgid "Total documents" +msgstr "Total de documentos" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipos de documentos" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documentos en la papelera" + +#: apps.py:145 msgid "Create a document type" msgstr "Crear tipo un tipo de documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etiqueta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Foto miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Activado" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Fecha y hora de envío a papelera " -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Hora y fecha" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codificación" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentario" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nuevos documentos por mes" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nuevas versiones de documentos por mes" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nuevas páginas de documentos por mes" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Total de documentos cada mes" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Total de versiones de documentos cada mes" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Total de páginas de documentos cada mes" @@ -118,12 +137,10 @@ msgid "Document type changed" msgstr "Tipo de documento ha sido cambiado" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nueva versión subida" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versión de documento revertida" @@ -131,249 +148,268 @@ msgstr "Versión de documento revertida" msgid "Document viewed" msgstr "Documento visualizado" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagen de la página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Páginas del documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Cambio rápido de nombre" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Fecha en que se agregó" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Lenguaje" + #: forms.py:122 +msgid "Unknown" +msgstr "Desconocido" + +#: forms.py:130 msgid "File mimetype" msgstr "Tipo MIME del archivo" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ninguno" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Codificación de archivo" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamaño del archivo" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe en el almacenamiento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Ruta de archivo en el almacenamiento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma de comprobación" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Descargue el documento en el formato original o en una forma comprimida. Esta opción se puede seleccionar sólo cuando se descarga un documento. Para múltiples documentos, el paquete será siempre descargado en un archivo comprimido." +msgstr "" +"Descargue el documento en el formato original o en una forma comprimida. " +"Esta opción se puede seleccionar sólo cuando se descarga un documento. Para " +"múltiples documentos, el paquete será siempre descargado en un archivo " +"comprimido." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nombre de archivo comprimido" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "El nombre del archivo comprimido que va a contener los documentos a descargar, si la opción anterior está activada." +msgstr "" +"El nombre del archivo comprimido que va a contener los documentos a " +"descargar, si la opción anterior está activada." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Rango de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Muestra" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Propiedades" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versiones" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Borrar transformaciones" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "Clonar transformaciones" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Borrar" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Mover a la papelera" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Editar propiedades" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Cambiar tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descargar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimir" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Recalcular el conteo de páginas" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Resturar" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Descarga de versión" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Todos los documentos" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documentos recientes" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "Papelera" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Borrar las representaciones gráficas utilizadas para acelerar la presentación de los documentos y resultados de las transformaciones interactivas." +msgstr "" +"Borrar las representaciones gráficas utilizadas para acelerar la " +"presentación de los documentos y resultados de las transformaciones " +"interactivas." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Borrar la caché de imágenes de documentos" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Vaciar papelera" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Primera página" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Última página" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Página previa" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Próxima página" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Rotar a la izquierda" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Rotar a la derecha" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Reestablecer vista" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Acercar imagen" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Alejar imagen" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Revertir" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Crear tipo de documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Añadir nombre típico al tipo de documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Nombres típicos " -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipos de documentos" - #: literals.py:14 msgid "Default" msgstr "Por defecto" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Todas las páginas" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Cantidad de tiempo tras el cual se enviaran los documentos de este tipo a la papelera." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Cantidad de tiempo tras el cual se enviaran los documentos de este tipo a la " +"papelera." #: models.py:71 msgid "Trash time period" @@ -387,15 +423,15 @@ msgstr "Unidad de tiempo de envío a papelera" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Cantidad de tiempo tras el cual se eliminarán los documentos de este tipo de la papelera." +msgstr "" +"Cantidad de tiempo tras el cual se eliminarán los documentos de este tipo de " +"la papelera." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Período de tiempo de eliminación" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unidad de tiempo de eliminación" @@ -403,99 +439,96 @@ msgstr "Unidad de tiempo de eliminación" msgid "Documents types" msgstr "Tipos de documentos" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "El nombre del documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descripción" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Añadido" -#: models.py:169 -msgid "Language" -msgstr "Lenguaje" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "¿En la papelera?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Fecha y hora de envío a papelera" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "¿Es un recibo?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Recibo de documento, id: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Marca de tiempo" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Archivo" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versión de documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etiqueta rapida" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Número de página" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Página %(page_num)d de %(total_pages)d de %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Página de documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Páginas de documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloquear nueva version" +#: models.py:822 +msgid "Filename" +msgstr "Nombre del archivo" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Bloquear nuevas versiones" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Usuario" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Accedido" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documento reciente" @@ -508,11 +541,10 @@ msgid "Delete documents" msgstr "Eliminar documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Enivar documentos a la papelera" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descargar documentos" @@ -529,12 +561,10 @@ msgid "Edit document properties" msgstr "Editar propiedades del documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimir documentos" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Restaurar documento de la papelera" @@ -570,288 +600,343 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver los tipos de documentos" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "El número máximo de documentos recientes (creados, editados, vistos) a recordar por usuario." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"El número máximo de documentos recientes (creados, editados, vistos) a " +"recordar por usuario." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Cantidad en porcentaje a acercar o alejar una página de documento por cada interacción del usuario." +msgstr "" +"Cantidad en porcentaje a acercar o alejar una página de documento por cada " +"interacción del usuario." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Cantidad máxima en porcentaje (%) a permitir al usuario aumentar la página del documento de forma interactiva." +msgstr "" +"Cantidad máxima en porcentaje (%) a permitir al usuario aumentar la página " +"del documento de forma interactiva." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Cantidad mínima en porcentaje (%) a permitir al usuario disminuir la página del documento de forma interactiva." +msgstr "" +"Cantidad mínima en porcentaje (%) a permitir al usuario disminuir la página " +"del documento de forma interactiva." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Cantidad de grados que se va a girar una página de documento por cada acción del usuario." +msgstr "" +"Cantidad de grados que se va a girar una página de documento por cada acción " +"del usuario." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Idioma por defecto para documentos (en formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Lista de idiomas de documento apoyados." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "¿Borrar la caché de imágenes de documentos?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Caché de documentos borrara con éxito." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documentos en la papelera" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "¿Eliminar el documento seleccionado?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s eliminado." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "¿Eliminar los documentos seleccionados?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Editar propiedades del documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "¿Restaurar el documento seleccionado?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documento: %(document)s restaurado." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "¿Restaurar los documentos seleccionados?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pagínas para documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "No hay más páginas en este documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Usted ya está en la primera página de este documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Imágen de: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Visualización del documento: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "¿Mover \"%s\" a la papelera?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s movido a la papelera." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "¿Mover los documentos seleccionados a la papelera?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documentos de tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Todos los documentos de este tipo serán borrados también" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "¿Eliminar el tipo de documento: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Editar tipo de documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Nombre típicos para el tipo de documento: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versiones del documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "También se borrarán todas las versiones más recientes a esta." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "¿Revertir a esta versión?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versión de documento revertida con éxito." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Error revirtiendo la versión del documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "¿Eliminar el documento seleccionado?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Propiedades para el documento: %s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s eliminado." -#: views.py:639 -msgid "Empty trash?" -msgstr "¿Vaciar papelera?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "¿Eliminar los documentos seleccionados?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Papelera vaciada con éxito" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "Cambiar" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo de documento para \"%s\" cambiado con éxito." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Enviar" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Editar propiedades del documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Cambiar el tipo del documento seleccionado." -msgstr[1] "Cambiar el tipo de los documentos seleccionados." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "¿Restaurar el documento seleccionado?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Debe proveer al menos una versión de documento." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documento: %(document)s restaurado." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documentos a descargar" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "¿Restaurar los documentos seleccionados?" -#: views.py:828 -msgid "Date and time" -msgstr "Fecha y hora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Visualización del documento: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Al menos un documento debe ser seleccionado." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "¿Mover \"%s\" a la papelera?" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s movido a la papelera." + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "¿Mover los documentos seleccionados a la papelera?" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Propiedades para el documento: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "¿Vaciar papelera?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Papelera vaciada con éxito" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" msgstr "" -#: views.py:964 +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Error al eliminar las transformaciones de página para el documento: %(document)s; %(error)s." +msgstr "" +"Error al eliminar las transformaciones de página para el documento: " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Enviar" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas las transformaciones de la página del documento: %s, se han eliminado con éxito." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "¿Borrar todas las transformaciones para el documento seleccionado?" -msgstr[1] "¿Borrar todas las transformaciones para los documentos seleccionados?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "No hay más páginas en este documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Usted ya está en la primera página de este documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimir: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "¿Borrar la caché de imágenes de documentos?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Caché de documentos borrara con éxito." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Página %(page_number)d de %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Imagen de página de documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +1000,6 @@ msgstr "Imagen de página de documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +1010,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1143,8 @@ msgstr "Imagen de página de documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1158,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1185,11 @@ msgstr "Imagen de página de documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1206,19 @@ msgstr "Imagen de página de documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1275,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1303,11 @@ msgstr "Imagen de página de documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1328,11 @@ msgstr "Imagen de página de documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1362,11 @@ msgstr "Imagen de página de documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1423,17 @@ msgstr "Imagen de página de documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo index 670f98d5e265c8ed2c86c8ea62408f67d26038a1..62c9ab0af45102f780a98d2a241b248039bf174a 100644 GIT binary patch delta 2588 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 diff --git a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po index 5b583d8e16..fb0b747e35 100644 --- a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "اسناد" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "انواع سند" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "برچسب" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "نوع MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "اندازه کوچک" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "نوع" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "فعال شده" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "تاریخ و زمان" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encoding" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "شرح" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "نوع سند تغییر کرد" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "تصویر صفحه" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "تعداد صفحات سند (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "نامگذاری سریع سند " -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "تاریخ اضافه شدن" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "زبان" + #: forms.py:122 +msgid "Unknown" +msgstr "ناشناخته" + +#: forms.py:130 msgid "File mimetype" msgstr "File mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "هیچکدام." -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "فایل Encoding" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "اندازه فایل" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "موجود در مخزن" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "آدرس فایل در مخزن" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "چک سام" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "صفحات" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "نوع سند" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "فشرده سازی" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "نام فایل فشرده شده" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "اگر انتخاب قبلی انجام شده، نام فایل فشرده شده که شامل کلیه فایلهای که قراراست که دانلود شوند." +msgstr "" +"اگر انتخاب قبلی انجام شده، نام فایل فشرده شده که شامل کلیه فایلهای که " +"قراراست که دانلود شوند." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "محدوده صفحات" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "پیش دید ویا دیدن" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "خصوصیات" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "نسخه ها" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "پاک کردن تبدیلات" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "حذف" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "ویرایش خصوصیات" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "تغییر نوع" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "دانلود" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "چاپ" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "کلیه اسناد" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "اسناد تازه" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "پاک کردن نحوه نمایش اسناد که در زمان سرعت بخشی به نمایش اسناد مورد استفاده قرار میگیرد." +msgstr "" +"پاک کردن نحوه نمایش اسناد که در زمان سرعت بخشی به نمایش اسناد مورد استفاده " +"قرار میگیرد." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "اولین صفحه" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "آخرین صفحه" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "صفحه قبلی" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "صفحه بعدی" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "سند" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "چرخش به چپ" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "چرجش به راست" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "ریست ویو Reset View" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "بزرگنمایی" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "کوچک نمایی" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "بازگرداندن" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "ایجاد نوع سند" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "ویرایش" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "انواع سند" - #: literals.py:14 msgid "Default" msgstr "پیش فرض" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "انواع اسناد" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "نام سند" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "توضیحات" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "اضافه شده" -#: models.py:169 -msgid "Language" -msgstr "زبان" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "علامت زمان" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "فایل" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "نسخه سند" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "شماره صفحه" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "صفحه شماره%(page_num)d از%(total_pages)d از سند %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "صفحه سند" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "صفحات سند" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "نام فایل" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "کاربر" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "دسترسی یافته" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "سند تازه" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "حذف سند" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "دانلود اسناد" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "ویرایش خصوصیات سند" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +590,334 @@ msgstr "ویرایش انواع سند" msgid "View document types" msgstr "بازدید انواع سند" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "حداکثر تعداد اسناد تازه (ایجاد، ویرایش و بازبینی) که جهت هرکاربر بوسیله سیستم نگهداری شود." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"حداکثر تعداد اسناد تازه (ایجاد، ویرایش و بازبینی) که جهت هرکاربر بوسیله " +"سیستم نگهداری شود." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "اندازه بزرگنمایی/کوچک نمایی یک صفحه از سند جهت تعامل با هرکاربر" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "حداکثر درصد(%) اندازه بزرگنمایی بوسیله کاربر برروی یک صفحه از سند بصورت تعاملی" +msgstr "" +"حداکثر درصد(%) اندازه بزرگنمایی بوسیله کاربر برروی یک صفحه از سند بصورت " +"تعاملی" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "حداکثر درصد(%) اندازه کوچک نمایی بوسیله کاربر برروی یک صفحه از سند بصورت تعاملی" +msgstr "" +"حداکثر درصد(%) اندازه کوچک نمایی بوسیله کاربر برروی یک صفحه از سند بصورت " +"تعاملی" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "مقدار درچه چرخش یک صفحه از سند به ازای هر کاربر" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "زبان پیش فرض اسناد (in ISO639-2) میباشد." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "لیست زبانهای پشتیبانی سند" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "ویرایش خصوصیات سند : %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "پایان صفحات سند" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "شما در حال حاضر برروی اولین صفحه این سند میباشید." + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "پیش نمایش سند : %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "کلیه اسناد از این نوع حذف خواهند شد." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "ویرایش نوع سند : %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "نسخ سند : %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "همجنین کلیه نسخه های بعد از این نسخه حذف خواهند گردید." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "بازگشت موفق نسخه سند." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "خطا در بازگشت نسخه سند: %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "خصوصیات سند : %s" - -#: views.py:639 -msgid "Empty trash?" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:704 +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" + +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "ارسال" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "ویرایش خصوصیات سند : %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "اسنادی که قرار است دانلود شوند." - -#: views.py:828 -msgid "Date and time" -msgstr "تاریخ و زمان" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "پیش نمایش سند : %s" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "خصوصیات سند : %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "خطا %(error)s در زمان حذف تبدیلات سند %(document)s" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "ارسال" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "حذف کامل کلیه تبدیلات سند %s" +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "پایان صفحات سند" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "شما در حال حاضر برروی اولین صفحه این سند میباشید." - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "چاپ : %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "صفحه%(page_number)d از %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "عکس صفحه سند" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +981,6 @@ msgstr "عکس صفحه سند" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +991,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1123,8 @@ msgstr "عکس صفحه سند" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1138,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1165,11 @@ msgstr "عکس صفحه سند" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1186,19 @@ msgstr "عکس صفحه سند" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1255,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1283,11 @@ msgstr "عکس صفحه سند" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1308,11 @@ msgstr "عکس صفحه سند" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1342,11 @@ msgstr "عکس صفحه سند" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1403,17 @@ msgstr "عکس صفحه سند" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo index 4f8ca0d1a062e3fe51fdab456867b735ee666f1b..4def638b34bccf2fb51ea6b4a14fd5b63e1e8ba3 100644 GIT binary patch delta 4158 zcmYk-3s6+o9mnyr2&jk%C<20V6(2}Mfq){42#8I5V1!0X#fDW@B*3n)U_?SUrZkB) z+Sv6GHHngHeJ74<(spV(iB6hKW2V|BqcJmaY-y`Ane^pEQzy0G-`;B`XZ-Ew+`D)0 zJ?DSU#jU-r>l*@}B}VQvv{NLVycA{3Khz(>2klCnF}v{-9E5GdjInSda;e#eL$MF1 z;pjVq*g44jnyfeuDjgY8=J!3e3Ru=*L}{gfWT63`7ex zpe!7Yc{ma)aRk<(u5UvgVV*@z@I}nRH!z0ho6qRz!kfr5%stct61ZzFreZWMKwY;K zb;Cv+jT>+Q?sAT=;~0+bA-6JP7>%yaLrt_CHSj8&!t>2?=Yn43H)bcQq(`0OUn12v zA2`QXQ5E_EHK4(K==u!QaSk6-umbhFb*KRZFcn|GiFgbHER(rJN2R`w52A}YT3Co$ z!)2(M)FYP|Kk9dz9rvJSbQE>nX}pZ@q8|KmvN4hP8m3?f`N~{Krv94oUpS$W-bURx znyWORk*G~G9aXv>jK$5UCEA60@GDq_hjBc9i9SqYx)yFhE$s=^Kz@s=*!fiIug)b- zP)&0UHRD^T8~+bua3J;8gA-BTXP~~HjCu?5o#P_s`!bxs`GwAL8$QZ$H&){%T!!NV zX~r;V(~Xlch#JsasNMPjsuDL)*A3#N25O-OQiz&SDHh>8oP<57fgeIu?v!(U7B%4a zP)iW_kd8{(k9xr8r~yQ>wRK@4YDrR156nW{I3F34DM9UtTGWGls7iI?ID8KEpyT*B zoNcToe09Lwv@^UY{F+WmQ`5zj^a(2x2-H*Rqm(~BQ-9G__q^lzv= z^H0?EquBb1I1XoGAud86>NPy;9Dj)Q9FJmlffaPR=`6*|sF_TrzPiy&q^f2Ssv^y} z6}O?*K7Ep1`Xba4&O=@pvjkP4CdXb>1^1&i?^~FSf1E`9i|KsL39Vfb3&R*prDHP= z7m5S=ZYSb{rH z73fFp+FPj74SB$R9n(>3J`?r*LZtd;6>5ghpsqiNs>B=4_kTcD^gpOSc+pdM18`J; zP9>d(P#0`N3;VDH&tV4YYR%k2l|CCafcehxO4RSWa40_SoZpLMUB<3k%ZtOwL;7OziW*64rJE#XG<=ShRg<7H#R3$6XgH>3LXYgsfjf}x; z%(I_!1o>USyiZ3Zxro{v{m62fuP_0}<=byZfnx;@<$N{rx60Hz$2}NcN{r_G4%Az< z4>f^fs0x0Jb$AUudjDrXXv|}rcomB{0@G$te~s*YI{LvUn1r9BN)uh?@SgYX5~x ztiGBy+S+i>{!rQPxBYZ}<{W4iY81dUkp(1&XoIQ!!p3|DHFLFfM9VRpXfkSnW@lx!pO$wtyZf@BAoL)0E7KPHpOaq?4=O!`QN z9=?@KBddwpQ>0xT+EP+ZULq&RSaOW0b&>pV&;IXL-GwBI93`#fC**NbOI{;tKPP*` zJtn`$>9{eDOeJk(08xA0#;m{?@_jPPId>4Zko6?iIVVPw5o9x2LeyR$JHtKxvvVv| z@sl_xB~_%w`C^izc!WfgcpW$`1HVf$$z$XsIZX5_-*3;+IpQ45bliZ;)GxCde5*TK zJ>JmiVRKxe(u9ew;GYxILK}zgbcIGIrALGslQ+47$*BpUiqyIRQ7s;?yEU{g{dcb5 znKABAamMnS0>zGELnA~ zU_^Fi=)c*~5uv!8f&rmTxtCpO6+Z8prpC^8cSn=YYc+WM-wePXx{!Z1GP=sw%IQ#G zMsq~4ytpaUUmSD|I={K2sjbt~5$c(J)0O4%cep#-J?&PD=bK+!txbOG`~j=QZLRjT guktjtw0J@db4nwEC+8j?_^@}i&+F|BE-!oY{}Xr5BLDyZ delta 5168 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 T1Hn4m$4i`ljz8iYnb7ecyVDuD diff --git a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po index d688a7ab21..aa6c96a48a 100644 --- a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po @@ -1,104 +1,126 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Bruno CAPELETO , 2016 +# Christophe CHAUVET , 2016 # Thierry Schott , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documents" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Types de documents" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documents dans la corbeille" + +#: apps.py:145 msgid "Create a document type" msgstr "Créer un type de document" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Chaque document téléchargé doit être associé à un type de document, cela permet à Mayan EDMS de catégoriser les documents." +msgstr "" +"Chaque document téléchargé doit être associé à un type de document, cela " +"permet à Mayan EDMS de catégoriser les documents." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Libellé" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Type MIME d'une version quelconque d'un document" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Type MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Vignette" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Type" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Activé" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Date et heure d'envoi à la corbeille" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Heure et date" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encodage" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commentaire" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nouveaux documents par mois" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nouvelles versions de document par mois" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nouvelles pages de document par mois" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Nombre total de documents chaque mois" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Nombre total de versions de documents chaque mois" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Nombre total de pages de documents chaque mois" @@ -119,12 +141,10 @@ msgid "Document type changed" msgstr "Type de document modifié" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nouvelle version téléchargée" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Retour à la version précédente du document" @@ -132,249 +152,267 @@ msgstr "Retour à la version précédente du document" msgid "Document viewed" msgstr "Document consulté" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Image de la page" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Pages (%d) du document" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renommage rapide du document" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Date d'ajout" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Langue" + #: forms.py:122 +msgid "Unknown" +msgstr "Inconnu" + +#: forms.py:130 msgid "File mimetype" msgstr "Type MIME du fichier" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Aucun" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Encodage du fichier" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Taille du fichier" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Présent dans le stockage local" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Chemin du fichier dans le stockage local" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Somme de contrôle" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pages" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Type de document" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Compresser" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Télécharger le document dans son format original ou sous forme d'archive compressée. Cette option est uniquement disponible lors du téléchargement d'un document, lors du téléchargement d'un groupe de documents, ce dernier sera toujours téléchargé en tant qu'archive compressée." +msgstr "" +"Télécharger le document dans son format original ou sous forme d'archive " +"compressée. Cette option est uniquement disponible lors du téléchargement " +"d'un document, lors du téléchargement d'un groupe de documents, ce dernier " +"sera toujours téléchargé en tant qu'archive compressée." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nom du fichier compressé" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Le nom de fichier du fichier compressé qui contiendra les documents à importer, si l'option précédente est sélectionnée." +msgstr "" +"Le nom de fichier du fichier compressé qui contiendra les documents à " +"importer, si l'option précédente est sélectionnée." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Ensemble de pages" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Prévisualiser" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Propriétés" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versions" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Effacer les transformations" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Supprimer" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Envoyer à la corbeille" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Modifier les propriétés" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Changer le type" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Télécharger" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimer" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Réinitialiser le comptage de page" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Restaurer" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Télécharger cette version" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Tous les documents" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documents récents" -#: links.py:144 -msgid "Trash" -msgstr "Corbeille" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Effacer les représentations graphiques utilisées pour accélérer l'affichage du document et le résultat des transformations interactives." +msgstr "" +"Effacer les représentations graphiques utilisées pour accélérer l'affichage " +"du document et le résultat des transformations interactives." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Effacer les documents du cache" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Vider la corbeille" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Première page" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Dernière page" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Page précédente" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Page suivante" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Document" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Rotation à gauche" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Rotation à droite" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Réinitialiser la vue" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Zoom avant" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Zoom arrière" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Rétablir" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Créer un type de document" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Modifier" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Ajouter une étiquette rapide au document" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etiquettes rapides" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Types de documents" - #: literals.py:14 msgid "Default" msgstr "Défaut" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Toutes les pages" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Temps après lequel les documents de ce type seront déplacés vers la corbeille." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Temps après lequel les documents de ce type seront déplacés vers la " +"corbeille." #: models.py:71 msgid "Trash time period" @@ -388,15 +426,15 @@ msgstr "Unité de temps du déplacement vers la corbeille" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Temps après lequel les documents de ce type présents dans la corbeille seront supprimés." +msgstr "" +"Temps après lequel les documents de ce type présents dans la corbeille " +"seront supprimés." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Temps avant suppression" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unité de temps avant suppression" @@ -404,99 +442,99 @@ msgstr "Unité de temps avant suppression" msgid "Documents types" msgstr "Types de documents" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Le nom du document" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Description" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Ajouté" -#: models.py:169 -msgid "Language" -msgstr "Langue" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Présent dans la corbeille ?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Date et heure d'envoi à la corbeille" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Un document parcellaire est un document avec une entrée en base de données mais aucun fichier téléchargé. Cela peut correspondre à un téléchargement interrompu ou à un téléchargement retardé par l'API." +msgstr "" +"Un document parcellaire est un document avec une entrée en base de données " +"mais aucun fichier téléchargé. Cela peut correspondre à un téléchargement " +"interrompu ou à un téléchargement retardé par l'API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Parcellaire ?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Parcelle de document, id : %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Horodatage" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fichier" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Version du document" -#: models.py:633 +#: models.py:646 msgid "Quick label" -msgstr "Renommage rapide" +msgstr "Étiquetage rapide" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numéro de page" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Page %(page_num)d sur %(total_pages)d de %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Page du document" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Pages du document" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloc de la nouvelle version" +#: models.py:822 +msgid "Filename" +msgstr "Nom de fichier" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Blocs de la nouvelle version" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Utilisateur" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Consulté" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Document récent" @@ -509,11 +547,10 @@ msgid "Delete documents" msgstr "Supprimer les documents" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Envoyer les documents à la corbeille" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Télécharger les documents" @@ -530,14 +567,12 @@ msgid "Edit document properties" msgstr "Modifier les propriétés du document" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimer les documents" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" -msgstr "" +msgstr "Restaurer le document mis à la corbeille" #: permissions.py:37 msgid "Execute document modifying tools" @@ -571,288 +606,354 @@ msgstr "Modifier les types de documents" msgid "View document types" msgstr "Afficher les types de documents" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Nombre maximum de documents récents (créés, modifiés, visualisés) à mémoriser par utilisateur." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Nombre maximum de documents récents (créés, modifiés, visualisés) à " +"mémoriser par utilisateur." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Valeur en pourcentage du zoom avant ou arrière pour une page de document pour les utilisateurs." +msgstr "" +"Valeur en pourcentage du zoom avant ou arrière pour une page de document " +"pour les utilisateurs." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maximum en pourcents (%) de la valeur du zoom avant interactif autorisé pour l'utilisateur." +msgstr "" +"Maximum en pourcents (%) de la valeur du zoom avant interactif autorisé pour " +"l'utilisateur." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimum en pourcents (%) de la valeur du zoom arrière interactif autorisé pour l'utilisateur." +msgstr "" +"Minimum en pourcents (%) de la valeur du zoom arrière interactif autorisé " +"pour l'utilisateur." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valeur en degrés pour la rotation d'une page de document par l'utilisateur." +msgstr "" +"Valeur en degrés pour la rotation d'une page de document par l'utilisateur." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Langue des documents par défaut (au format ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Liste des langues supportées du document." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Vider l'image en cache du document" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Demande de nettoyage du cache de documents mise en file d'attente avec succès." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documents dans la corbeille" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Êtes vous sûr de vouloir supprimer le document sélectionné ?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Document %(document)s supprimé." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Êtes vous sûr de vouloir supprimer les documents sélectionnés ?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Modifier les propriétés du document : %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Êtes vous sûr de vouloir rétablir le document sélectionné ?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Document %(document)s rétabli." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Êtes vous sûr de vouloir rétablir les documents sélectionnés ?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pages du document : %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Il n'y a pas d'autres pages dans ce document" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Vous êtes déjà sur la première page du document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Image de : %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Aperçu du document : %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Etes-vous sûr de vouloir envoyer \"%s\" à la corbeille ?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Document : %(document)s envoyé à la corbeille avec succès." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Êtes vous sûr de vouloir envoyer les documents sélectionnés à la corbeille ?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documents du type : %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Tous les documents de ce type seront également effacés." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Êtes-vous sûr de vouloir supprimer le type de document : %s ?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Modifier le type de document : %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Créer une étiquette rapide pour le type de document : %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Modifier l'étiquette rapide \"%(filename)s\" du type de document \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Modifier l'étiquette rapide \"%(filename)s\" du type de document " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Etes-vous sûr de vouloir supprimer l'étiquette rapide %(label)s du type de document \"%(document_type)s\" ?" +msgstr "" +"Etes-vous sûr de vouloir supprimer l'étiquette rapide %(label)s du type de " +"document \"%(document_type)s\" ?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etiquettes rapides pour le type de document : %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versions du document : %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." -msgstr "Toutes les versions postérieures à celle-ci seront également supprimées." +msgstr "" +"Toutes les versions postérieures à celle-ci seront également supprimées." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Êtes vous certain de vouloir revenir à cette version ?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Retour à la version précédente du document effectuée avec succès" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erreur lors du retour à une version précédente du document : %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Êtes vous sûr de vouloir supprimer le document sélectionné ?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Propriétés du document : %s" +msgid "Document: %(document)s deleted." +msgstr "Document %(document)s supprimé." -#: views.py:639 -msgid "Empty trash?" -msgstr "Vider la corbeille ?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Êtes vous sûr de vouloir supprimer les documents sélectionnés ?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Corbeille vidée avec succès" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Au moins un document est requis." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Type de document pour \"%s\" changé." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Soumettre" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Modifier les propriétés du document : %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Modifier le type du document sélectionné." -msgstr[1] "Modifier le type des documents sélectionnés." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Êtes vous sûr de vouloir rétablir le document sélectionné ?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Vous devez fournir au moins un document ou une version" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Document %(document)s rétabli." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documents à télécharger" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Êtes vous sûr de vouloir rétablir les documents sélectionnés ?" -#: views.py:828 -msgid "Date and time" -msgstr "Date et heure" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Aperçu du document : %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Au moins un document doit être sélectionné" +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Etes-vous sûr de vouloir envoyer \"%s\" à la corbeille ?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Document en file d'attente pour recomptage du nombre de pages." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Document : %(document)s envoyé à la corbeille avec succès." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documents en file d'attente pour recalcul du nombre de pages." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" +"Êtes vous sûr de vouloir envoyer les documents sélectionnés à la corbeille ?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Propriétés du document : %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Vider la corbeille ?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Corbeille vidée avec succès" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" -msgstr[0] "Êtes vous sûr de vouloir recalculer le nombre de pages du document sélectionné ?" -msgstr[1] "Êtes vous sûr de vouloir recalculer le nombre de pages des documents sélectionnés ?" +msgstr[0] "" +"Êtes vous sûr de vouloir recalculer le nombre de pages du document " +"sélectionné ?" +msgstr[1] "" +"Êtes vous sûr de vouloir recalculer le nombre de pages des documents " +"sélectionnés ?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erreur lors de la suppression des transformations de page pour le document : %(document)s; %(error)s." +msgstr "" +"Erreur lors de la suppression des transformations de page pour le document : " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Soumettre" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Toutes les transformations de page pour le document : %s ont été supprimées avec succès." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Êtes-vous sûr de vouloir supprimer toutes les transformations de page pour le document sélectionné ?" -msgstr[1] "Êtes-vous sûr de vouloir supprimer toutes les transformations de page pour les documents sélectionnés ?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Il n'y a pas d'autres pages dans ce document" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Vous êtes déjà sur la première page du document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimer : %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Vider l'image en cache du document" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" +"Demande de nettoyage du cache de documents mise en file d'attente avec " +"succès." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Page %(page_number)d sur %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Image de la page du document" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -916,9 +1017,6 @@ msgstr "Image de la page du document" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -929,11 +1027,11 @@ msgstr "Image de la page du document" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1062,10 +1160,8 @@ msgstr "Image de la page du document" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1079,11 +1175,11 @@ msgstr "Image de la page du document" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1106,11 +1202,11 @@ msgstr "Image de la page du document" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1127,15 +1223,19 @@ msgstr "Image de la page du document" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1192,11 +1292,11 @@ msgstr "Image de la page du document" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1220,11 +1320,11 @@ msgstr "Image de la page du document" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1245,9 +1345,11 @@ msgstr "Image de la page du document" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1277,11 +1379,11 @@ msgstr "Image de la page du document" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1338,15 +1440,17 @@ msgstr "Image de la page du document" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo index 9dace9aa6a2eb9dbbc1ab3fe6bd7013dfa37e703..985b45e5c0b387fcf3834499cc27b1d4726e9955 100644 GIT binary patch delta 1261 zcmYk*Pe>GD7{~E?-a~!=2)E!9+={PoGrmLB z`Hp$UOq%?S|1Ky+T~LpHJcOID6RWTveK>^$ID;y58w+t3OYkYG@B-%JG9JYrSc$Ey zGK2#dq`sNvK!t8$5k5c_dWI_Sa_xKpk8{3=J!tXc3A}_1!z^MmE+L(n5*{KekY-IC zY7$Yb!XtQr`sN%5HTV_vpd#*)rKnEIQJvUmV+&qoo5oOE;|&xP3SdhOIA<|SVeW>W6tWN z7PatJ^dPT@DJ2#ANli&3SLlzW?WrZJwLf)aC0RkLxH?j|ys(*vs<1+%S7 z3(^av1+5R8lMU;>(95@vROjU+yI>MzW+e4GSPOL=Asa~TE7Q+}{QHU%{4}06(Ki=xBoc82UA{8HYD{})Lx7YW{<1~dWCu}!|B2FxNFl79`_9+OyLg%}bW zL}DTFS_}&zvCv2?ycS-Gh=o^3BoY=Z#P@g2qW|>V&%Gz-o^$^HbEhA|_vhr_)dbHP zqJ=hvb}wMeYV0iMLi7cVX~lkAk2i5S{>4?eY=|+#@ECe{3PTti`oF&l$M8H3$6*7G z!llT1d9#6=3OZ7y0ez(bC$N(Ki#P(WVi@n>aD0!|_!YH*KUjn1tUdv2Q424`k+=et zz(%acOK4f&Jmh9H9iLGP{l>8vVpc6QrDPbl@EpO7coetd8=R?r22&KX8QX9>DzVcg z&m+Y#S5TF>fnnA+1KjlEH=Kixw=~g-k_A*I=TMnk!zkXxlN{G~)Da!7GG-;-!tMAQ zW4MW|^!{zsdXG?*UBhH~WxR!(@z{+s@Bs2>E^w*E>!>puz{&UmRiPh9@@6RKpbA!_ z5~xGgHfwPbZbSBHdQtNo!r6GHn*B`Y<{lk7v$wbzf8kj*kgmFcRX9@^Oe9n4{#mIl1XsXTwe2nMNNAGV?@ zbOUun&rutAiAv-HDv==N(Z;7@097SbLNTA#K+`z?JT#HYIaeLTLRvjdA5{}grPS{E zF8#780|lRpA38dPj)wjEN2g=3w87ELL)oAXRWv`33)S&=Pu2ZUDN8?p|5+JFX)QEm zt4b+UAqBrY{{w5p1?nL5zeHcTsu!kBq^Z)X$~0Oj3W?y7vShLl2sPAs^X=}~erLO! zOWU|hx~z*^FW24eJa1Pnnd~o~56&$wJ_}U@W_0Adtlig}+20d)HkP$X7o#JSb~c{r z&ZS&BTYNq2OJKyJ#-^smXtRw(+gn=-k1HmtC(;;gvysK^&CP{h6$cB4D|b|_i=`8} zSi-g2-MPZ6N>|G~d;NKGsrFgcv#FkR+@%XUtLsBv&tBK-ykc8bWw6*WswGgrJiaHB dwkeljABkAk|Eg=E!7=`OzN({{X`E!B z7b-7;ZtO;KgcsfDh23@&W%NcD)`bN@*G1o-JC{A|IiGX>JNuvi^Zd`28~+3|pDW#W zjc6q|k`peoedsOZKvcWUqF94_u@AfOHjd*W7GuvUvl1M@Dm;d3aST`Eb=3S1unb@1 zzt7m5bHiKo@WprZ;cpC~tH`Vrn@|skU?uKEJ*XGU@dWnb7;eHj4B!&_v4~Z&R;xzM zUx%fZF>B^T6Gt6);~}mO;6a?k!}tq3HO|ed;F9A_WUY1&RqMJm0Qyq6!{j1gG!@+wc+NTqkKuH$K4>{y_b1z?)zA8^=$$p7C#}4*f+w=BHeZ z*P}WXbL_?pX+s=%mW`sW&u~x+uOda;6sp4K$j4?msL}sj1|G2SG;vT@WzS5OO>zy^GZYW*ub zi$77VPja&sa0~Uk39P|Mf1gtk104)3Ae~?NkvgJwDO8o--v5Or)Z~iF>|kLqqa`S+ zNhY+dq~4e05LDLtVuU zMRSOG#I2Z88|A*73vEe-QeD`JJMai@z$e&)-_ghJaY|LC9p7Rtenwg6 z7gi~iSM}pZUs#CpLKjwJ4^GBjY{8>A5ig)Da24zDCdxvOu?AnFB>EN?;X<;~xCy7C zMRHara5C$w)7;3!mry3Yj{ER7_TmrRk3BqWl5t#xFOeOn-zCQ}37b;2C_A2kE!c)5 zxCfWu8j(+MG~4jNvW;qVLv`cnWuqrk&C)p z@*&QoAE8w0HS((ZP#XV+d0DueRmGXem|BM9q*j;u8&OKR8!3hwM%n4v()05uJHCcf z@BtpgXBfvi2BmWAQ4&dE@d&1nx17mo24vwY$g!zgcoy&B0c_;Mkp3xb#oxFF7x81( zPzGh5Aujwxox=vahH?Z?@g%-SIfA`pAqkwRJ2G0ba}3O8;4(@g_puuzSNY=I%QoO*p&9ezCP>w$3xd0iMCgKEsNGxPK-5f5B)$7<+8)+l+`BC zt~Cr~J*!jMzA$6GAlf|PQ><%cyuCf1=+I6g+0_|$IvuBK*Uosa9Zvh{tQX&80-Mwc zr=9nlcw&`yx|1Cpg~L^63SX)YP1{?PREN;*|oUu|~pv6;~5AZI-Pcs7?Yemeet zhx}cWF`f>+ARHu>K}jX4o7q}mT{FPmas&Lz)v5G=84CUAPPJ1Wy{kDIYsrPa&e#lZ bqz9S8w?R5(2E7rZeG`OZlSQ4iuVViIF|oL4 diff --git a/mayan/apps/documents/locale/id/LC_MESSAGES/django.po b/mayan/apps/documents/locale/id/LC_MESSAGES/django.po index 5596ae00b7..4f34303d37 100644 --- a/mayan/apps/documents/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/id/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumen" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Gambar halaman" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Cara cepat mengganti nama dokumen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Tanggal ditambahkan" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Bahasa" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Jenis mime berkas" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Ukuran berkas" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Ada di penyimpanan" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Halaman-halaman" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Jenis dokumen" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresi" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nama berkas terkompresi" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nama berkas dari berkas terkompresi yang mengandung dokumen-dokumen yang akan diunduh, bila pilihan sebelumnya terpilih." +msgstr "" +"Nama berkas dari berkas terkompresi yang mengandung dokumen-dokumen yang " +"akan diunduh, bila pilihan sebelumnya terpilih." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Jangkauan halaman" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Unduh" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Bersihkan representasi gambar-gambar yang dipergunakan untuk mempercepat menampilkan dokumen dan hasil transformasi interaktif." +msgstr "" +"Bersihkan representasi gambar-gambar yang dipergunakan untuk mempercepat " +"menampilkan dokumen dan hasil transformasi interaktif." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Deskripsi" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "Bahasa" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Halaman %(page_num)d dari %(total_pages)d untuk %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "namafile" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Pengguna" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "Hapus dokumen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Unduh dokumen" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +590,339 @@ msgstr "Sunting jenis dokumen" msgid "View document types" msgstr "Lihat jenis-jenis dokumen" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Jumlah maksimal dokumen-dokumen (dibuat, disunting, dilihat) baru-baru ini per pengguna." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Jumlah maksimal dokumen-dokumen (dibuat, disunting, dilihat) baru-baru ini " +"per pengguna." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Satuan dalam persen untuk memperbesar atau memperkecil tampilan halaman dokumen per interaksi pengguna." +msgstr "" +"Satuan dalam persen untuk memperbesar atau memperkecil tampilan halaman " +"dokumen per interaksi pengguna." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Jumlah maksimal dalam persen (%) yang diperbolehkan bagi pengguna untuk memperbesar tampilan halaman dokumen secara interaktif" +msgstr "" +"Jumlah maksimal dalam persen (%) yang diperbolehkan bagi pengguna untuk " +"memperbesar tampilan halaman dokumen secara interaktif" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Jumlah minimal dalam persen (%) yang diperbolehkan bagi pengguna untuk memperkecil tampilan halaman dokumen secara interaktif." +msgstr "" +"Jumlah minimal dalam persen (%) yang diperbolehkan bagi pengguna untuk " +"memperkecil tampilan halaman dokumen secara interaktif." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Jumlah dalam derajat untuk memutar halaman dokumen per interaksi pengguna." +msgstr "" +"Jumlah dalam derajat untuk memutar halaman dokumen per interaksi pengguna." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Tidak ada halaman lagi dalam dokumen ini" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Anda telah berada pada halaman pertama dari dokumen ini" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Semua versi sebelum versi yang ini akan ikut dihapus juga." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versi dokumen berhasil dikembalikan." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Masalah dalam mengembalikan versi dokumen; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Masalah dalam menghapus transformasi-transformasi untuk halaman: %(document)s; %(error)s." +msgstr "" +"Masalah dalam menghapus transformasi-transformasi untuk halaman: " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Semua transformasi-transformasi halaman untuk dokumen: %s, telah berhasil dihapus." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Tidak ada halaman lagi dalam dokumen ini" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Anda telah berada pada halaman pertama dari dokumen ini" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1128,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1143,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1170,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1191,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1260,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1288,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1313,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1347,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1408,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo index cb45cbbf757a5ad770c1aea87cb52a5f07188a40..77f04b7c0c449bb9d910d0c0b3b2b80e1b0da466 100644 GIT binary patch delta 4067 zcmYk;4N#R;9>?)>?E(t;!X*Sk<&yGd5M1yoYLJvK1%)q^Mp_$7NSfXY0;vIAZEe-E zvaV=qmS*K!CH2@iHPtxQT21cGy4z$gj#lgL%4}oJ_MTJr{qY=Ue8wN2bDsO$=bZC@ z&U44pT`OB7Cw<;-!_h;Aktbt}`C9D+{&0Le$e2y|3HHa9!N&OUUgT1<6$j!DEW-U5 z#8Wr`Q-&B*iJ3SR>v1~n#v6@^n4f59tf@)v0JHEi`g1W8@4;5wh$$HFGbRrGs0rm^ zG6rxcPQgoY9_soQWC*hwwZJDZ4`0Q2#y2Nv=)zuP409eeKoWN?#&nFuD%5o|Q8#SD z;kXQ|aHH*ifg|XjM{Z?CFdJPTKrQqd)WmDBfbq>7d%-H?JEj{|(ml3+5UIZT!1g~y zRp=~gLIe1t>oZaPLjDxswW#kkqb3l+bX<=)xECWlCUcC2O8o_vqK7*AF^GDGvr#L# z1G&VsqQ1A*x*4^iJ*ewm!Q=QB)WF+Pjq&13n1&AWkvW=5{k7tMaY8fw5q0BOuF`~t zqBhM~ROz}f5!a#~(MHt3Phk!2!cq7GhB1TX`tc#uqkRE2k+)D4dpn)_t8t7IRMVV7 zt@u0Cjeo;Mba-{WAM`C1!KJ+V)%UX8IjC3yj$VxoIzdJpOc!XA2pF6YDHIL8BWGr>_ScaIaK9(Z2t|^gx^Iyg2-QK zsFbHs1AK*=fS0YU3w@|Zl7<>E4|U@bWKO0WwI}LO1BFqQ>cGo!4Qil$xDXGc?pMew z!rq9OavHi}4Qe8F$UjrhAFX@^@;J?Q)NA+}YWE&OP58g4fzP7`PT)(rE)7dC6PM#G z)P0U(9{w8#==~q$cUPQ-T44@q=EbOISc^>BEJw|J6Y}`XF4U$vj5_}z>QS7w_M#Sa z*7kou?U{3^iFmVk-5K8ur=i^+K+Sj(>Wi(YFLdBuk1?yThknsW_x$I0CH-F8Ph;zA zLRlEZQk;MbP!oI>EARl$#BVV&m&O#9S%*7Nr96ikIF33O;t*>EK1_cRs`S60uJh%( zk1zwZIdf2ZV7XOXeZd24o_TZw8c<9sb@z;&oc z(v3cJkm8slScPYh#hFq@p*ZFi)WkZGZDJln?UkN<>OX+So19Q--bGC$cC`CboQnG5 z706G4nS@&Tt+u}eHPAZLo_HBm>Z9n#6R1b@E9%h{T;Wc*0`>XK2#sPIOHifSiJI~2 zI1x`GRW_FuxD%~Jy>8XkdeneRQ3I^TINWUeJMcsL4r*a*c%J?BIjVw@XK1K&hwOi$`?%Rv3$^2+P&knf%pD4lx zz5hFDEaQSWrmJVT0`-Nh=)?C>zXvCitg~&5$d`w>l)-&+eA^%vj#Q z{b#;GZQcxi99Ci}Mzq3LX=tGLFa-p&NdL8u)YD{~u}s-y@SZ8T<(7{hfiDaM<=& zVlw^hsEHgvHkbK_^*AQbKY^;`8Puctx{Uhkng7HI-8gx?yE{uzyM7w#b!tX^VHtXG zDY=2%PITNxG$HMi$)uR**hW!*CaGZ${g~W!p@Y|6)P9=wEW z=;-@>$10*tt2aZ(^Dbr@Y5_V_dR1AK(wm_payNhG^)=l;Q$U-q>7sM(v;*WR5+bXK z-sMe18&Ai5L>0S{gh@ZrN+_(kil}?4noRI-D#Y4C?h5osVgR*)rXaLgpvkSECt zB#Z1NI+l}?zLvX*)vP8lWDi+P9wZA%9eIi9*h#kZwOIUS+o(sqvsaQ9atYC~-^I+u zcycS5XwN;150QIFqCF>ulS|23GM(sHPrCbB#$0C&s`x2%t|m2Pk^LaoDrS&aGDIDF zWa3R^B>4k*k?bPrt<7M7Ix1HlPn#z%i1m7z0Z3QGe1z}N{T!Dv?YrokoS+ZH&Tfq1XC uCcL=OSrNRhUvy~M{AhVuf^(oOFD81ryeXl!Ash;~HY{jw3rDLew)_tJwXN&` delta 5108 zcma*q33OD|9mnxI0b~&fVM`zc9&1QQLKX-lC13<20tq_^fzrwFLPjPtVHS26p=@da z%M=2LXr&;~s?-rdskK$x+Z$1bIYBE;}p@0_v%)@QY@25~JI*XdvTTcHy>_|T)J^6bYDpLb7AMZfMHh$E78!)O9J7{Qt!>9*b zKuzQ-_P~#D5T<4jSc*!06_#K~D@tn{~ z??v6{#)}w6O=J>Rx5W9#GfW+_ShEV1i5;kkA3{CvIBJ5YQN{K)Dx-Os#A#6u(c7r4`77V;4IX@IjHMOu^20G1va6I z@=rJzTab4xC=a#bQl~!-xy006?=u;yo|J^F)l{-3BVX+wp| z4vw8sMU{@4h=qD9%201bHEP21P?^|{y1p5sM_m*Njbogc$ny2W=cpoTm7VMlLrtUt zhvQ@{$Bn27{{ZLUFK{&Gl7^}1#acXt`aPXW&BG-)9rx#uf2H^XPH5n37{=DQ$uHJw z$D_EF^OsOtQ$Hkm{aS2Ce>19hcc5zLNmOmT>i8xq6YnEKBxW%ba`VW)J}`5cmL9Yi zwKq#0_hD=Lub|$7GpLES$WMOL+oRr|T%>GF1x~;PNK(yFWY^3&)C5076=56F+a9x{ zG}_V_hDzON)P&Zc_HY~O#wU=Ep*exdzQf5-*qnd91A&-#UG`v1~qdVzl0B<-j36#3I7H4dVcKKz9>0?ewfPnS*YjKV;ZhO zWpcaIZ^mEh{XasZ6F;n_M3vg@$j8m>My2$5r+*1M)BhNinYJvKx-wZf8LO}(?m`WG z5H->7p`QCAtjBZ6BTVTq{t=@0-%EpSHJ@Tv%%;R!;wbEZm5!59zt6`m7)0&iCe(^! zPXB=O`!Uo6Uc=k)b=31NAZ1{Fuiy3lri#!S*Ijk|D{A7OmXUw$bvj=YT{zsa3UletM$LFV zuEV{k4D_NRHPBGh3M)|q%tmFP&T$JWGf$(o;ykkb<}zyB)KSj+pFb*DJfl&c;%X%O zW;!=NJN;>>3Cu&v$*f1c?Ma**gD`V%|cZurVpwtt`A^vW0 z+N-dS(^k%P^iGoaKZO&tpCG0Y2ZTvW*V)moHw?~N>aSt(v(6NGeh zzA)O*dx>U(%1dmZs%bYdnHWTTnb6UY#5{)6iElXl@z|I6I^lKB&BptQnS?g|`tcna zw_oote&RUA-}O#g=tVzF=*v(;sEkJtIwlZ4g5pe67nn7K-n|9taBL+O5xWRg=#7V; zPMio6iSa`;HWJx{jsr=|5p)xUL|ei`tR-~ZLF^?u5O)!!#6qH$&_lmQ+<44)I$yBN0nQhypc%7}@?RN^?HV_p)o6eCW1q~kzbLTn&TI_C=TPU3E-pCEpr z<3v}A&lfwMk<%}fXEnH&+E$%y`>lnx&koxQtx&|{u|uKyh|jm8Al|#vVAqJsu;sJe zp|BP3+t$K>C(>y9!&YO2Gj+BV;zkd57MQUOZvP_N3O5idn(SCw?;dG4JKMA3KWDj) z`)tqRP^8g}WtgDl_W2UeXmaaeLAO6t9|$(O!`^^DWYLWMHY;P$EnnI_B{U{JH*KFQ z{!ZuIlmSa3c7#>(7%TC7Pawitg0{!)^F(}!K?>q+x;^B&r7L4wy7!7T_eqWK?%vQM z-nQo}u4&auOH(kg)Vt8O+&9e}V=uLXA=Xo1{{Q6#u``)<8FjvZXR)cVmtDWrN}LJB z`}A7VGPcW_6Z?nt>kg&)MMe3=C01c^`S4+}-}KGYnZo>%LaVr_yl7;sRlnxgk$!XA zO=6=Wq_^C9w*Pak9y220u+1JT+sS0FWO8219jh6hF}Qpng%S$*16C;P<~ont@3DR4 zie|unyV>T@XK(`(s!6IA?ucOE-FNG!f8_f3+i+`6wQbk%f*Yb1Bp`c i1irY()I=!H, 2016 @@ -10,95 +10,116 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documenti" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipi di documento" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documenti nel cestino" + +#: apps.py:145 msgid "Create a document type" msgstr "Creare un tipo di documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Ad ogni documento caricato deve essere assegnato un tipo documento, questa è la via più semplice per categorizzare i documenti in Mayan EDMS." +msgstr "" +"Ad ogni documento caricato deve essere assegnato un tipo documento, questa " +"è la via più semplice per categorizzare i documenti in Mayan EDMS." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etichetta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Il MIME Type di qualsiasi delle versioni del documento" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Abilitato" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data e ora di spostamento nel cestino" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Ora e data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codifica" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commento" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nuovi documenti per mese" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nuove versioni dei documenti per mese" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nuove pagine di documento per mese" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Totale documenti per ogni mese" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Totale versioni di documento documento per ogni mese" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Totale pagine documento per ogni mese" @@ -119,12 +140,10 @@ msgid "Document type changed" msgstr "Cambiamenti al tipo di documento" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nuove versioni caricate" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versioni di documento recuperate" @@ -132,249 +151,266 @@ msgstr "Versioni di documento recuperate" msgid "Document viewed" msgstr "Documenti visualizzati" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Immagine della pagina" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Pagine del documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Rinomina del documento veloce" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data inserimento" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Lingua" + #: forms.py:122 +msgid "Unknown" +msgstr "Sconosciuto" + +#: forms.py:130 msgid "File mimetype" msgstr "File mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nessuna " -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "File encoding" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Dimensioni del file" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Esiste nello storage" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "File path in storage" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagine" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo documento " -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimere" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Scarica il documento nel formato originale oppure compresso. Questa opzione è selezionabile quando scarichi un singolo documento, per documenti multipli, il pacchetto sarà sempre scaricato in formato compresso." +msgstr "" +"Scarica il documento nel formato originale oppure compresso. Questa opzione " +"è selezionabile quando scarichi un singolo documento, per documenti " +"multipli, il pacchetto sarà sempre scaricato in formato compresso." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nome file compresso " -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Il nome file del file compresso che conterrà il documento da scaricare, se l'opzione precedente è selezionata." +msgstr "" +"Il nome file del file compresso che conterrà il documento da scaricare, se " +"l'opzione precedente è selezionata." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervallo pagina" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Anteprima " -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Proprietà" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versioni" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Cancella trasformazioni" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Cancella" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Sposta nel cestino" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Modifica proprietà" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Cambia tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Scarica" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Stampa" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Ricalcola numero pagine" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Ripristina" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Scarica versione" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Tutti i documenti" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documenti recenti" -#: links.py:144 -msgid "Trash" -msgstr "Cestino" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Cancella le rappresentazioni grafiche utilizzate per accellerare la visualizzazione dei documenti e dei risultati interattivi trasformazioni." +msgstr "" +"Cancella le rappresentazioni grafiche utilizzate per accellerare la " +"visualizzazione dei documenti e dei risultati interattivi trasformazioni." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Pulisci la cache delle immagini dei documenti" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Svuota cestino" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Prima pagina" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Ultima pagina" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Pagina precedente" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Pagina successiva" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Ruota a sinistra" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Ruota a destra" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Reset visualizzazione" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Zoom in" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Zoom out" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Ritornare" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Crea tipo di documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Modifica" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Aggiungi un'etichetta rapida al tipo documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etichette rapide" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipi di documento" - #: literals.py:14 msgid "Default" msgstr "Default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Tutte le pagine" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Quantità di tempo dopo il quale i documenti di questo tipo saranno spostati nel cestino." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Quantità di tempo dopo il quale i documenti di questo tipo saranno spostati " +"nel cestino." #: models.py:71 msgid "Trash time period" @@ -388,15 +424,15 @@ msgstr "Unità di tempo per cestinare" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Quantità di tempo dopo il quale i documenti di questo tipo nel cestino saranno cancellati." +msgstr "" +"Quantità di tempo dopo il quale i documenti di questo tipo nel cestino " +"saranno cancellati." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Tempo per cancellare" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unità di tempo per cancellare" @@ -404,99 +440,99 @@ msgstr "Unità di tempo per cancellare" msgid "Documents types" msgstr "Tipi di documenti" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Il nome del documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrizione " -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Aggiunto" -#: models.py:169 -msgid "Language" -msgstr "Lingua" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Nel cestino?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Data e ora di spostamento nel cestino" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Un documento troncato è un documento presente sul database che non ha un file scaricato. Potrebbe essere dovuto ad un upload interrotto oppure rimandato per caricarlo via API." +msgstr "" +"Un documento troncato è un documento presente sul database che non ha un " +"file scaricato. Potrebbe essere dovuto ad un upload interrotto oppure " +"rimandato per caricarlo via API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Documento troncato?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Documento troncato, ID: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versione documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etichetta rapida" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numero di pagina" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d di %(total_pages)d del %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Pagina del documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Le pagine del documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Nuovo blocco versione" +#: models.py:822 +msgid "Filename" +msgstr "Nome file" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Nuovi blocchi versione" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Utente" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Acceduto" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documento recente " @@ -509,11 +545,10 @@ msgid "Delete documents" msgstr "Cancella documenti" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Cestina documenti" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Scarica documenti" @@ -530,12 +565,10 @@ msgid "Edit document properties" msgstr "Modifica proprietà documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Stampa documenti" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Ripristina il documento cancellato" @@ -571,288 +604,344 @@ msgstr "Modifica il tipo di documento" msgid "View document types" msgstr "Visualizza i tipi di documento" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Numero massimo di documenti recenti da ricordare per utente (creazione, modifica, visualizzazione)." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Numero massimo di documenti recenti da ricordare per utente (creazione, " +"modifica, visualizzazione)." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Percentuale dello zoom di una pagina del documento per l'interazione dell'utente." +msgstr "" +"Percentuale dello zoom di una pagina del documento per l'interazione " +"dell'utente." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Ingrandimento massimo in percentuale (%) da consentire all'utente per una pagina del documento in modo interattivo." +msgstr "" +"Ingrandimento massimo in percentuale (%) da consentire all'utente per una " +"pagina del documento in modo interattivo." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Quantità minima in percentuale (%) per consentire all'utente di ingrandire una pagina di documento in modo interattivo." +msgstr "" +"Quantità minima in percentuale (%) per consentire all'utente di ingrandire " +"una pagina di documento in modo interattivo." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Quantità di gradi per la rotazione della pagina del documento" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Lingua predefinita per idocumenti (in formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Elenco delle lingue supportate nei documenti." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Cancellare la cache delle immagini documento?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Pulizia della cache documenti in coda completata con successo." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documenti nel cestino" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Cancellare il documento selezionato?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s cancellato." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Cancellare i documenti selezionati?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Modifica le proprietà del documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Ripristinare i documenti selezionati?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documento: %(document)s rispristinato." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Ripristinare i documenti selezionati?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pagine del documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Non ci sono più pagine in questo documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sei già alla prima pagina del documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Immagine di: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Anteprima del documento: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Spostare \"%s\" nel cestino?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s spostato nel cestino con successo.." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Spostare i documenti selezionati nel cestino?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documento di tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Tutti i documenti di questo tipo saranno cancellati ." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Cancellare il tipo documento: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Modifica il tipo di documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Crea etichetta rapida per il tipo documento: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Modifica etichetta rapida \"%(filename)s\" dal tipo documento \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Modifica etichetta rapida \"%(filename)s\" dal tipo documento " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Cancellare l'etichetta: %(label)s, dal tipo documento \"%(document_type)s\"?" +msgstr "" +"Cancellare l'etichetta: %(label)s, dal tipo documento \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etichette rapide per il tipo documento: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versione del documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Tutte le versioni precedenti a questa verranno cancellate." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Ripristinare questa versione?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versione del documento ripristinato con successo" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Errore restituito, al ripristino del documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Cancellare il documento selezionato?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Proprietà del documento: %s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s cancellato." -#: views.py:639 -msgid "Empty trash?" -msgstr "Cancellare il cestino?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Cancellare i documenti selezionati?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Svuotamento cestino completato" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo documento per \"%s\" cambiato con successo." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Invia" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Modifica le proprietà del documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Cambia il tipo del documento selezionato." -msgstr[1] "Cambia il tipo dei documenti selezionati." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Ripristinare i documenti selezionati?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Deve fornire almeno un documento o una versione." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documento: %(document)s rispristinato." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documenti da scaricare" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Ripristinare i documenti selezionati?" -#: views.py:828 -msgid "Date and time" -msgstr "Data e ora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Anteprima del documento: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Almeno un documento deve essere selezionato." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Spostare \"%s\" nel cestino?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Documento messo in coda per ricalcolo delle pagine." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s spostato nel cestino con successo.." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documenti messi in coda per ricalcolo delle pagine." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Spostare i documenti selezionati nel cestino?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Proprietà del documento: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Cancellare il cestino?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Svuotamento cestino completato" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Ricalcolare il conteggio delle pagine del documento selezionato?" msgstr[1] "Ricalcolare il conteggio delle pagine dei documenti selezionati?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Errore nella cancellazione della trasformazione della pagina per il documento:%(document)s; %(error)s." +msgstr "" +"Errore nella cancellazione della trasformazione della pagina per il " +"documento:%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Invia" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Tutte le trasformazioni alle pagine del documento:%s, sono state cancellate con successo." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Cancellare le trasformazioni per il documento selezionato?" -msgstr[1] "Cancellare le trasformazioni per i documenti selezionati?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Non ci sono più pagine in questo documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sei già alla prima pagina del documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Stampa: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Cancellare la cache delle immagini documento?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Pulizia della cache documenti in coda completata con successo." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Pagina %(page_number)d di %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Immagine pagina documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -916,9 +1005,6 @@ msgstr "Immagine pagina documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -929,11 +1015,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1062,10 +1148,8 @@ msgstr "Immagine pagina documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1079,11 +1163,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1106,11 +1190,11 @@ msgstr "Immagine pagina documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1127,15 +1211,19 @@ msgstr "Immagine pagina documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1192,11 +1280,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1220,11 +1308,11 @@ msgstr "Immagine pagina documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1245,9 +1333,11 @@ msgstr "Immagine pagina documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1277,11 +1367,11 @@ msgstr "Immagine pagina documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1338,15 +1428,17 @@ msgstr "Immagine pagina documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo index 5b18c653695f36b02d247c73256e2858b5b5783c..8ba897d593f24c0538ff9aa646ea87e87f7629e5 100644 GIT binary patch delta 3811 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 GoB0!!P@eMu diff --git a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po index 1745966c75..de143ee4f4 100644 --- a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po @@ -1,103 +1,123 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-09 15:56+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Johan Braeken\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documenten" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Documentsoorten" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "Een documentsoort aanmaken" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Label" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Thumbnail" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Type" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Tijd en datum" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commentaar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nieuwe documenten per maand" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nieuwe documentversies per maand" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nieuwe documentpagina's per maand" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -118,261 +138,272 @@ msgid "Document type changed" msgstr "Documentsoort veranderd" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nieuwe versie geüpload" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Documentversie teruggedraaid" #: events.py:29 msgid "Document viewed" -msgstr "" +msgstr "Document bekeken" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Pagina afbeelding" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Documentpagina's (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Snel document hernoemen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Datum toegevoegd" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Taal" + #: forms.py:122 +msgid "Unknown" +msgstr "Onbekent" + +#: forms.py:130 msgid "File mimetype" msgstr "MIME-type bestand" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Geen" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Bestand encoderen" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Bestandgrootte" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Aanwezig in opslag" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Bestandspad in opslag" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagina's" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Documentsoort" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimeren" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Bestandsnaam gecomprimeerde archiefbestand" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "De bestandsnaam van het gecomprimeerde archiefbestand dat alle documenten bevat die dienen te worden gedownload, als de voorgaande optie is geselecteerd." +msgstr "" +"De bestandsnaam van het gecomprimeerde archiefbestand dat alle documenten " +"bevat die dienen te worden gedownload, als de voorgaande optie is " +"geselecteerd." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Pagina bereik" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Preview" -#: links.py:48 +#: links.py:57 msgid "Properties" -msgstr "Eigenschappe" +msgstr "Eigenschappen" -#: links.py:53 +#: links.py:62 msgid "Versions" -msgstr "" +msgstr "Versies" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Verwijder" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" -msgstr "" +msgstr "Verplaats naar trash" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Bewerk eigenschappen" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Verander soort" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Download" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Printe" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" -msgstr "" +msgstr "Aantal bladzijden herberekenen" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Alle documenten" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Recente documenten" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Opschonen van de grafische afbeeldingen, die gebuikt worden bij het versnellen van de documentweergave en interactive transformatie resultaten." +msgstr "" +"Opschonen van de grafische afbeeldingen, die gebuikt worden bij het " +"versnellen van de documentweergave en interactive transformatie resultaten." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" -msgstr "" +msgstr "Eerste bladzijde" -#: links.py:172 +#: links.py:186 msgid "Last page" -msgstr "" +msgstr "Laatste bladzijde" -#: links.py:179 +#: links.py:193 msgid "Previous page" -msgstr "" +msgstr "Vorige bladzijde" -#: links.py:185 +#: links.py:199 msgid "Next page" -msgstr "" +msgstr "Volgende bladzijde" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Document" -#: links.py:196 +#: links.py:210 msgid "Rotate left" -msgstr "" +msgstr "Daai linksom" -#: links.py:201 +#: links.py:215 msgid "Rotate right" -msgstr "" +msgstr "Draai rechtsom" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" -msgstr "" +msgstr "Inzoomen" -#: links.py:219 +#: links.py:234 msgid "Zoom out" -msgstr "" +msgstr "Uitzoomen" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "bewerken" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Documentsoorten" - #: literals.py:14 msgid "Default" msgstr "Verstekwaarde" -#: literals.py:24 +#: literals.py:23 msgid "All pages" -msgstr "" +msgstr "Alle bladzijden" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -390,112 +421,107 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" #: models.py:106 msgid "Documents types" -msgstr "" +msgstr "Documenttypes" -#: models.py:158 +#: models.py:157 msgid "The name of the document" -msgstr "" +msgstr "De naam van het document" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Omschrijving" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Toegevoegd" -#: models.py:169 -msgid "Language" -msgstr "Taal" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Bestand" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Documentversie" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" -msgstr "" +msgstr "Paginanummer" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d van %(total_pages)d in %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Documentpagina" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Bestandsnaam" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Gebruiker" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -508,11 +534,10 @@ msgid "Delete documents" msgstr "Documenten verwijderen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Documenten downloaden" @@ -529,12 +554,10 @@ msgid "Edit document properties" msgstr "Documenteigenschappen bewerken" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" -msgstr "" +msgstr "Druk documenten af" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,288 +593,337 @@ msgstr "Documentsoorten bewerken" msgid "View document types" msgstr "Bekijk de documentsoorten" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maximum aantal recente docmenten (aangemaakt, bewerkt, bekeken), te onthouden per gebruiker." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maximum aantal recente docmenten (aangemaakt, bewerkt, bekeken), te " +"onthouden per gebruiker." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Percentage in- of uitzoomen voor documentpagina per gebruikeractie." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maximaal toegestane documentpagina zoom percentage (%) per gebruikeractie." +msgstr "" +"Maximaal toegestane documentpagina zoom percentage (%) per gebruikeractie." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimaal toegestane documentpagina zoom percentage (%) per gebruikeractie. " +msgstr "" +"Minimaal toegestane documentpagina zoom percentage (%) per gebruikeractie. " -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Aantal graden documentpagina rotatie per gebruikeractie." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Er zijn verder geen pagina's meer in dit document" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "U bent al op de eerste pagina in dit document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Alle documenten van dit type zullen ook worden verwijderd." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Bewerk documenttype: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versies van document: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle recentere versies na deze zullen ook worden verwijderd." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" -msgstr "" +msgstr "Deze versie terugzetten?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Documentversie succesvol teruggevoerd" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fout bij het terugvoeren van de documentversie. Foutmelding: %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Het geselecteerde document verwijderen?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Eigenschappen voor document: %s" +msgid "Document: %(document)s deleted." +msgstr "" -#: views.py:639 -msgid "Empty trash?" -msgstr "Prullenbak legen?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Prullenbak succesvol geleegd" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Documenttype voor \"%s\" succesvol veranderd." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Verstuur" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Bewerk eigenschappen van document: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Verander het type van het geselecteerde document." -msgstr[1] "Verander het type van de geselecteerde documenten." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Het geselecteerde document terugzetten?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documenten om te downloaden" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "De geselecteerde documenten terugzetten?" -#: views.py:828 -msgid "Date and time" -msgstr "Datum en tijd" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Eigenschappen voor document: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Prullenbak legen?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Prullenbak succesvol geleegd" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fout bij verwijderen van de pagina transformaties voor document: %(document)s ; %(error)s ." +msgstr "" +"Fout bij verwijderen van de pagina transformaties voor document: " +"%(document)s ; %(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Verstuur" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle paginatransformaties voor document: %s, zijn succesvol verwijderd." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Er zijn verder geen pagina's meer in dit document" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "U bent al op de eerste pagina in dit document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Afdrukken: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Pagina %(page_number)d van %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +987,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +997,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1130,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1145,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1172,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1193,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1262,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1290,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1315,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1349,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1410,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo index e0db89c20ea29ace8e1aa6fe504f3f6204349666..5850cc535ed8192fe5ba1f4baac8528a9d5a2743 100644 GIT binary patch delta 2607 zcmYM!ZEO@p9LMp27Nx*J9|UYmVQHbILgnsg=>vByXf2c$1fig|s0UmNwzsX&3T>*V z21rEH7%wCSA{fD7NHCC#8e=5E5FZ*1ydWW<@1iDwyO){HaeevIOM7{kffiEq@F%8XRoAniZfcg+>V24p197iT)KEW|~+O~gFz z67n;@a+-$Ma0X6dbW?FYs{f^N3VN^&HKTT{!cHu~Bd8aChfLaBu=QV11Na-K;6JFD zj%V6>K@MsFb5ZwIqux`8>aP*=F}{|9)}{y5(H`Vy-sPkv|>zaVqxXa?}!?K@H$1)WCjE)#K(mg+dzs!`WEK!W7^#^fF@YM9r|r)_02Rc zYF|XnWXSpsDwXe}GIv$s)mNkLf7SXn#i< zHPnOep$7CRDuv&mGH@By!4-T6Z`$@kdQpdd)Kb;qOk9eCxD}PL-%!urKz+8Oc&Xas zJ__?F6kr)H$70-xX?O^gnZu|Veu(PeBx+_~pfYdid6!!dBv8LPs6ZM64q!32nRu#0G-@4YP&N9?>x)g?DCR<~f3`U;>1W zWyJGdDRp|(mN(sLOH3YH6km0xX4T)Ij>m}@5h6N>Hlm%VB3cO@+8lgN-Z6)>){-^$ zcCR)<5urnCs6*e~BCnJ>wP+1y*@kL-lF$N2iCRJ*u6EdC#8RS!c$(1nrK2&0w|TTd z%84{$BT+#_2px+FZJ5o(d}1x3!}WShmAy|v#g(=mM14ovIZF~7GHxZ?$E{Br(-n0i zvBYP-+GPI3^P{Ik9jZ~MyWQ#C5_L9rZ|aLh-QL8N%r`Rod!nYLrLo?$xSekI4mYto z>jz(DnZKeeSmgvNYRan&dbVO^Mp00#1r!~H+ zt8ZJRtE{1WTWoucNiNg z3z8RdszxQJPtHppvobQUBa*1hU6K4K*GZe?RY_T=m$JUZ_tTDLt?lng K`xCng_WutZ`Wr_8 delta 2538 zcmXxke@xVM9LMpGA_@p1zd{7_D+Gvw9tY@op%988f`NjPMRa->9KjuNpaW^AmT9Z3 zc5YF#`lHt7mOmPEwY6n#%Bp2QmP*YPf4OSuW-T-GpPsMd%V+ogK0e>ieed(*{rP3-Xzn9lui)WkkQ7G*xgSR6-n__h80728SV zV}9q7hj%asvzgUmbYUj8g{f$OKGXn*P!o9-U3d%&@e*p_+sLA$%hG)!%hNcN;Z{eQG4?ys-x4$$Bc8)-d{!i;8)by_zMg0E^0y+ z50O<vMU%r$$YfxKJhdgUK zP?;D&tz-x_z(Lf6-?lx4e9Sp6EAa}lOD2}ibf1BGz81r(Y^S2V>_koADDp9*T=e~E zR0==0+rPk@+)tu1cZsy5QV4 zmZK(8i#1q}>fjaBo_%b4!S;L91b#tn(RI|s{zH;uVi<+@VJbQ- zji^)Kjr!pc)P&werSJ?Y1LLR;F5@zswA&NtL>(?bZB-#I!Ie0I&8XjfgL++mLS-_1 zok}s4+gO6R%%T9BP?^|^F*su1??-iT2(_ZuQ7a!s?fpsA#4n-)ucG#R&izvvOhMkh z=;R=5O1Zj;7Gk}Bhfz|Fq?>O zRqV3CcK38cBqJ^_+&q0}tNgDcnuuPal2B9>3RTc?PT=pNEEEz-M`by9axHfq@lce8(-jr)et4c~sOPpnv!|ARlk94GFtHn{`bXkto?y|DT;nbl>Qrgb^22Y@K z(9`L2TYWtVO+ADCo}QA8!T#Qm+Y0nWZ$oR#BH^@*ia>s;W8GS(RZw85TDi7d)upOC zDoY*K$VjwZ&p3*#Dy!6TTh6iEbk~g8ok8!gKQPvukvA(coYhdo;{2guR^s(sIBe|> sS^-aYZ@};Cwz_>@Uw|*3wwHJ@Ye`JxpPUm(n}eZYEpcjvXBNHnKQfUI=l}o! diff --git a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po index 049202eff3..b67047c488 100644 --- a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Wojtek Warczakowski , 2016 @@ -10,95 +10,118 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenty" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Typy dokumentów" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "Utwórz typ dokumentu" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Każdy przesłany dokument musi mieć przypisany typ dokumentu, ponieważ jest to podstawowy sposób kategoryzacji dokumentów w Mayan EDMS." +msgstr "" +"Każdy przesłany dokument musi mieć przypisany typ dokumentu, ponieważ jest " +"to podstawowy sposób kategoryzacji dokumentów w Mayan EDMS." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etykieta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Typ MIME każdej wersji dokumentu" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Typ MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniaturka" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Typ" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Włączone" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data i czas umieszczenia w koszu" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Czas i data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Kodowanie" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentarz" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nowe dokumenty miesięcznie" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nowe wersje dokumentów miesięcznie" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nowe strony dokumentów miesięcznie" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Liczba dokumentów w każdym miesiącu" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Liczba wersji dokumentów w każdym miesiącu" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Liczba stron dokumentów w każdym miesiącu" @@ -119,12 +142,10 @@ msgid "Document type changed" msgstr "Właściwości dokumentu zostały zmodyfikowane" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nowa wersja została przesłana" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Wersja dokumentu została przywrócona" @@ -132,248 +153,262 @@ msgstr "Wersja dokumentu została przywrócona" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Obraz strony" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Strony dokumentu (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Szybka zmiana nazwy dokumentu" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data dodania" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Język" + #: forms.py:122 +msgid "Unknown" +msgstr "Nieznany" + +#: forms.py:130 msgid "File mimetype" msgstr "Typ MIME pliku" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Brak" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Kodowanie pliku" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Rozmiar pliku" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Istnieje w systemie" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Ścieżka pliku w systemie" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma kontrolna" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Strony" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Typ dokumentów" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresuj" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Pobierz dokument w formacie oryginalnym lub w formie skompresowanej. Powyższa opcja ma zastosowanie jedynie w przypadku pobierania pojedynczego pliku. W przypadku wielu dokumentów zostaną one pobrane w formie skompresowanego archiwum." +msgstr "" +"Pobierz dokument w formacie oryginalnym lub w formie skompresowanej. " +"Powyższa opcja ma zastosowanie jedynie w przypadku pobierania pojedynczego " +"pliku. W przypadku wielu dokumentów zostaną one pobrane w formie " +"skompresowanego archiwum." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nazwa pliku skompresowanego" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nazwa pliku zawierającego gotowe do pobrania dokumenty w formie skompresowanej, jeśli poprzednio wybrano opcję kompresji." +msgstr "" +"Nazwa pliku zawierającego gotowe do pobrania dokumenty w formie " +"skompresowanej, jeśli poprzednio wybrano opcję kompresji." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Zakres stron" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Podgląd" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Właściwości" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Wersje" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Wyczyść transformacje" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Usuń" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Przenieś do kosza" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Edytuj właściwości" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Zmień typ" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Pobierz" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Drukuj" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Przelicz liczbę stron" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Wszystkie dokumenty" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Ostatnio przeglądane" -#: links.py:144 -msgid "Trash" -msgstr "Kosz" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "" -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Pierwsza strona" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Ostatnia strona" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Poprzednia strona" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Następna strona" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Dokument" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Obrót w lewo" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Obrót w prawo" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Resetuj widok" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Powiększ" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Pomniejszyć" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Przywróć" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Tworzenie typów dokumentów" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Edytuj" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Typy dokumentów" - #: literals.py:14 msgid "Default" msgstr "Domyślne" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Wszystkie strony" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -391,12 +426,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -404,99 +437,96 @@ msgstr "" msgid "Documents types" msgstr "Typy dokumentów" -#: models.py:158 +#: models.py:157 msgid "The name of the document" -msgstr "" +msgstr "Nazwa dokumentu" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Opis" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Dodano" -#: models.py:169 -msgid "Language" -msgstr "Język" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Pieczęć czasu" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Plik" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Wersja dokumentu" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numer strony" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Strona %(page_num)d z %(total_pages)d stron dokumentu %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Strona dokumentu" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Strony dokumentu" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nazwa" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Użytkownik" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Dostępne" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Ostatni dokument" @@ -509,11 +539,10 @@ msgid "Delete documents" msgstr "Usuwanie dokumentów" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Pobieranie dokumentów" @@ -530,12 +559,10 @@ msgid "Edit document properties" msgstr "Edytuj właściwości dokumentu" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -571,291 +598,337 @@ msgstr "Edytuj typy dokumentów" msgid "View document types" msgstr "Zobacz typy dokumentów" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." msgstr "" -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Strony dokumentu: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Jesteś już na pierwszej stronie tego dokumentu" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Podgląd dokumentu: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Wersje dokumentu: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Właściwości dokumentu: %s" - -#: views.py:639 -msgid "Empty trash?" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:704 +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" + +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Wykonaj" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" -msgstr "Data i godzina" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Podgląd dokumentu: %s" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Właściwości dokumentu: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Wykonaj" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." +msgid "Clone page transformations for document: %s" msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Jesteś już na pierwszej stronie tego dokumentu" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Wydruk: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Strona %(page_number)d of %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -919,9 +992,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -932,11 +1002,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1019,6 +1089,7 @@ msgstr "" #~ msgstr[0] "ee02f3189246f97d6734a407f6f9040b_pl_0" #~ msgstr[1] "ee02f3189246f97d6734a407f6f9040b_pl_1" #~ msgstr[2] "ee02f3189246f97d6734a407f6f9040b_pl_2" +#~ msgstr[3] "ee02f3189246f97d6734a407f6f9040b_pl_3" #~ msgid "Document page edited successfully." #~ msgstr "Document page edited successfully." @@ -1066,10 +1137,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1083,11 +1152,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1110,11 +1179,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1131,15 +1200,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1196,11 +1269,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1224,11 +1297,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1249,9 +1322,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1281,11 +1356,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1342,15 +1417,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo index 11695cce6be9f518612c3eee087f2a9b916b32ff..bfb38d61a870214fb2a0d7d57b4c5c63e46066ae 100644 GIT binary patch delta 1306 zcmYk*Ur3Wt7{~EvIrGod*0QwJ+R|y3E4McP6-W_MWPzduWyL6wYKo*4UC1bdsDz5q zRY=!Ck#jfQMI;y$Q4m2FSrp-wQIHo!Sl{0q(P7W~Iq$peobx>Ayvdpge|*N{ylu2b zqMUf+Fx!J;SzKrnPO}ImaR<&~8`fr<<>DX?;RVdWxy_cy0Lia;`n~d=YA*h z`?&3+!^gV0=np-pKb%1qj$$F+z-k=FJe;(TV)gvDG)&MHvPE3q2`*omWf0NKD@~`c3~^`UnpY- z`U}jO@jPmtB*us7Ow&=Rx05bo*=}5oov5vdp$|tg_ji$E*aVWCJ;E}4g4%-jsPVp` zD*78YViBukP1cM$YrBf5zkV3y!7A)WWqcXEcpcZ^ebhkHcnIHNErvM&%J?Xj;4RdG z?x8ZA#43D-s?;1RAqN*#(&MK7%D99Fr_hHda4d8G9krkyX4e~X9JP=;Tr|N0)Pzq_ z6?%aI{F-@QPC2xde$<5Rs0wtT67Gr9AsHJ&{qYjAb;gdQSFW1!3 zKJ$g%6eUEZ|FsZ3Rmo3O5Sxey!5Pw5W}69>Q}62*Vk@CWG1BE?7t-f}b7bMfYiDcf zSaw}jPTR>???ALabv4)HNIlLQauhZO>LYzX!->5Gv6Q>;V^->e`=BFr#M9;Y3qbF9T>t<8 delta 1493 zcmX}rTS!zv9LMq5G&3#R?pJfVsNGE6O)DcJ=z?HHQC5P+wmWv=xX0W*R!~R;J>)~h z7CmGT*h^4R?t}EyLp}u6Qv^lPL(mO^>ail|`&-wBo%5L)&YAhoe`X(4KCJG0KdtbZ zp{%1WpuP(kvkM0bcu-y!8qzg4OOBo39wZ$r&irY~W97HYLfiuuUEqo5ytm)79ui!rVH*gRB#8%wG z%S$wln(r|x+ap-Q`sS}1Sj6E^4Q>$mUHeF2i=zL>Kb*qjq)~wX@q8!7N_p zI6vVg`X?tDa{z~NH-_0&-+CH{X=uR#OydwL<<-naY$l3xaU<$T_TwTvn(tpkl4x!q zn>K?uAMc`$;wfsrx2Vj1#ufOhjQkUvS;_(GQq-beY{6N00JU=;E%xF(ypEb^2-|Q3 zmtzIdY3I#28_%Eux{BK1P1I3mQ5kz3CjUz1HwLuRpLiVqU;;Z?Mg3=}qiAG13aA~| zVgeP&0BV8zs0Bw*8G3;=_&q;f&Z?TH3bpQzJ{rov9@LK8k?fc>>cjKM5$4*E`$!Xv z72RwFq{X!X6=iT0b)h;G9nDIr{?R%XV#yV)tMzkds}VMB>Zsb8j-#AfPqkE)an#jR z1*oE19nG~yFQ$%QtmuZ<<~wV~22sbNe~}88z0FjNwoNtaY#OMGsY;(R!ez~!IhaO0 zC=sgC%stJeA996jU@ECA)XUr{+%(SfGR+f~FG{VlM`OLt9(FEi6V7vKm$0cI9(So! zXW)6KvmXm<3$o?K;n3n8K`L##d;H#G31?$z>$w;Me$v^59}l`*GM!yHF$hg=tf{ZB zi9~H(q^V&|=3dEsjnvgd*4etXP0?uPRms`Rq0+X}mRRyg5If?UY#^O=^DTk+ QDI0YCkIK)sO>GVR1MY*bzW@LL diff --git a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po index 669b1ffc55..048bf253c8 100644 --- a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documentos" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Nome" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentário" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,258 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagem da página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renomeação rápida de documento" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data de adição" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Tipo MIME do ficheiro" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nenhum" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamanho do ficheiro" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe no armazenamento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Caminho do ficheiro no armazenamento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Soma de verificação" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." msgstr "" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervalo de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Eliminar" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descarregar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Limpar as representações gráficas usadas para acelerar a exibição e transformações interativas de documentos." +msgstr "" +"Limpar as representações gráficas usadas para acelerar a exibição e " +"transformações interativas de documentos." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Padrão" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +416,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +427,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrição" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Ficheiro" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Página %(page_num)d de %(total_pages)d de %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nome do ficheiro" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Utilizador" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +529,10 @@ msgid "Delete documents" msgstr "Excluir documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descarregar documentos" @@ -528,12 +549,10 @@ msgid "Edit document properties" msgstr "Editar propriedades de documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +588,341 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver tipos de documento" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Número máximo de documentos recentes (criados, editados, visualizados) a recordar, por utilizador." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Número máximo de documentos recentes (criados, editados, visualizados) a " +"recordar, por utilizador." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Percentagem de zoom in/out por interação do utilizador." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Percentagem (%) máxima para o utilizador aumentar o zoom de uma página de documento de forma interativa." +msgstr "" +"Percentagem (%) máxima para o utilizador aumentar o zoom de uma página de " +"documento de forma interativa." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Percentagem (%) mínima para o utilizador diminuir o zoom de uma página de documento de forma interativa." +msgstr "" +"Percentagem (%) mínima para o utilizador diminuir o zoom de uma página de " +"documento de forma interativa." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valor em graus para rodar uma página de documento por interação do utilizador." +msgstr "" +"Valor em graus para rodar uma página de documento por interação do " +"utilizador." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Não há mais páginas neste documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Já está na primeira página deste documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Todas as versões posteriores a esta também serão eliminadas." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versão do documento revertida com sucesso" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erro ao reverter versão do documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Submeter" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erro ao excluir as transformações de página para o documento: %(document)s; %(error)s ." +msgstr "" +"Erro ao excluir as transformações de página para o documento: %(document)s; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Submeter" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas as transformações de página para o documento: %s, foram excluídas com sucesso." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Não há mais páginas neste documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Já está na primeira página deste documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1129,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1144,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1171,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1192,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1261,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1289,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1314,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1348,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1409,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo index cf5d0e3cdd52b697f385229f430d92be24058eb0..e38bae312dbde6b75fe2031c00f226422337247d 100644 GIT binary patch delta 4236 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 F{|%B(X%GMa diff --git a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po index 6ff0313c62..1d9708e313 100644 --- a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -9,95 +9,116 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documento" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipos de Documentos" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documentos na lixeira" + +#: apps.py:145 msgid "Create a document type" msgstr "Criar tipo de documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Cada documento carregado deve ser atribuído um tipo de documento, é a forma básica que o Mayan EDMS categoriza os documentos." +msgstr "" +"Cada documento carregado deve ser atribuído um tipo de documento, é a forma " +"básica que o Mayan EDMS categoriza os documentos." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Label" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "O tipo MIME de qualquer uma das versões de um documento" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" -msgstr "miniatura" +msgstr "Miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" -msgstr "habilitado" +msgstr "Habilitado" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data e hora do envio para a lixeira" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Hora e Data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codificação" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentário" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Novos documentos por mês" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Novas versões de documentos por mês" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Novas páginas de documentos por mês" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Total de documentos por mês" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Total de versões de documentos por mês" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Total de páginas de documentos por mês" @@ -118,12 +139,10 @@ msgid "Document type changed" msgstr "Tipo de Documento mudado" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nova versão carregada" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versão de documento revertida" @@ -131,249 +150,266 @@ msgstr "Versão de documento revertida" msgid "Document viewed" msgstr "Documento visualizado" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagem da página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "As páginas do documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renomear documento rápido" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data de adição" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Linguagem" + #: forms.py:122 +msgid "Unknown" +msgstr "desconhecido" + +#: forms.py:130 msgid "File mimetype" msgstr "Mimetype do arquivo" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nenhum" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" -msgstr "codificação de arquivo" +msgstr "Codificação de arquivo" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamanho do arquivo" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe no armazenamento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Caminho do arquivo no armazenamento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Verificação" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de Documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" -msgstr "comprimir" +msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Faça o download do documento no formato original ou de forma comprimida. Esta opção só pode ser selecionada quando o download de um documento, para vários documentos. O pacote sempre será baixado como um arquivo compactado." +msgstr "" +"Faça o download do documento no formato original ou de forma comprimida. " +"Esta opção só pode ser selecionada quando o download de um documento, para " +"vários documentos. O pacote sempre será baixado como um arquivo compactado." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Comprimido o filename " -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "O nome do arquivo do arquivo compactado que vai conter os documentos a serem baixados, se a opção anterior é selecionado." +msgstr "" +"O nome do arquivo do arquivo compactado que vai conter os documentos a serem " +"baixados, se a opção anterior é selecionado." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervalo de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Visualizar" -#: links.py:48 +#: links.py:57 msgid "Properties" -msgstr "propriedades" +msgstr "Propriedades" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versão" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" -msgstr "remover transformações" +msgstr "Remover transformações" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Excluir" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Mover para a lixeira" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Editar propriedades" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Mudar o tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Baixar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimir" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Recalcular a contagem de páginas" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Restaurar" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Baixar a versão" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Todos os Documentos" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documentos recentes" -#: links.py:144 -msgid "Trash" -msgstr "Lixeira" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Desmarque as representações gráficas utilizadas para acelerar a exibição e transformações interativas resultados dos documentos." +msgstr "" +"Desmarque as representações gráficas utilizadas para acelerar a exibição e " +"transformações interativas resultados dos documentos." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Apagar o cache de imagens de documentos" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Esvaziar a lixeira" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Primeira página" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Última pagina" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Página anterior" -#: links.py:185 +#: links.py:199 msgid "Next page" -msgstr "próxima pagina" +msgstr "Próxima pagina" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" -msgstr "girar para a esquerda" +msgstr "Girar para a esquerda" -#: links.py:201 +#: links.py:215 msgid "Rotate right" -msgstr "girar para a direita" +msgstr "Girar para a direita" -#: links.py:209 +#: links.py:223 msgid "Reset view" -msgstr "redefinir visão" +msgstr "Redefinir visão" -#: links.py:214 +#: links.py:228 msgid "Zoom in" -msgstr "mais zoom" +msgstr "Mais zoom" -#: links.py:219 +#: links.py:234 msgid "Zoom out" -msgstr "menos zoom" +msgstr "Menos zoom" -#: links.py:227 +#: links.py:243 msgid "Revert" -msgstr "reverter" +msgstr "Reverter" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Criar Tipo de documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Adicionar etiqueta rápida ao tipo de documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etiquetas rápidas" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipos de Documentos" - #: literals.py:14 msgid "Default" msgstr "Padrão" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Todas as páginas" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Quantidade de tempo após a qual se enviará documentos deste tipo para a lixeira." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Quantidade de tempo após a qual se enviará documentos deste tipo para a " +"lixeira." #: models.py:71 msgid "Trash time period" @@ -387,15 +423,14 @@ msgstr "Unidade de tempo de envio para a lixeira" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Quantidade de tempo após a qual documentos deste tipo serão eliminados." +msgstr "" +"Quantidade de tempo após a qual documentos deste tipo serão eliminados." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Período de tempo de eliminação" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unidade de tempo de eliminação" @@ -403,99 +438,99 @@ msgstr "Unidade de tempo de eliminação" msgid "Documents types" msgstr "Tipos de Documentos" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "O nome do documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrição" -#: models.py:164 +#: models.py:163 msgid "Added" -msgstr "adicionado" +msgstr "Adicionado" -#: models.py:169 -msgid "Language" -msgstr "Lingua" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Na lixeira?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Data e hora de envio à lixeira" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Um rascunho de documento é um documento com uma entrada no banco de dados, mas nenhum arquivo carregado. Isso pode ser um envio interrompido ou um envio diferido por meio da API." +msgstr "" +"Um rascunho de documento é um documento com uma entrada no banco de dados, " +"mas nenhum arquivo carregado. Isso pode ser um envio interrompido ou um " +"envio diferido por meio da API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "É um rascunho?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Documento rascunho, id: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Arquivo" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versão do Documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etiqueta rápida" -#: models.py:651 +#: models.py:664 msgid "Page number" -msgstr "página número" +msgstr "Página número" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d de %(total_pages)d em %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" -msgstr "página do documento" +msgstr "Página do documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" -msgstr "páginas do documento" +msgstr "Páginas do documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloqueio de nova versão" +#: models.py:822 +msgid "Filename" +msgstr "Nome do arquivo" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Bloqueios de nova versão" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Usuário" -#: models.py:800 +#: models.py:854 msgid "Accessed" -msgstr "acessado" +msgstr "Acessado" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documentos recentes" @@ -508,11 +543,10 @@ msgid "Delete documents" msgstr "Excluir documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Mover documentos para a lixeira" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Baixar documentos" @@ -529,12 +563,10 @@ msgid "Edit document properties" msgstr "Editar propriedades de documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimir documentos" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Restaurar documento da lixeira" @@ -570,288 +602,345 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver tipos de documentos" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Número máximo de documentos recentes (criado, editado, visualizado) à ser lembrado, por usuário." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Número máximo de documentos recentes (criado, editado, visualizado) à ser " +"lembrado, por usuário." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Quantidade em porcentagem de zoom em uma página ou documento por interação do usuário." +msgstr "" +"Quantidade em porcentagem de zoom em uma página ou documento por interação " +"do usuário." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Valor máximo em porcentagem (%) para permitir ao usuário aumentar o zoom em uma página do documento de forma interativa." +msgstr "" +"Valor máximo em porcentagem (%) para permitir ao usuário aumentar o zoom em " +"uma página do documento de forma interativa." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Valor mínimo em porcentagem (%) para permitir ao usuário diminuir o zoom em uma página do documento de forma interativa." +msgstr "" +"Valor mínimo em porcentagem (%) para permitir ao usuário diminuir o zoom em " +"uma página do documento de forma interativa." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valor em graus para girar uma página do documento por interação do usuário." +msgstr "" +"Valor em graus para girar uma página do documento por interação do usuário." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Os documentos padrão linguagem (em formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Lista de idiomas de documentos suportados." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Apagar do cache a imagem do documento?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Cache do documento apagado com sucesso." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documentos na lixeira" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Remover o documento selecionado?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s removido." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Remover os documentos selecionados?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Editar propriedades de documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Restaurar os documentos selecionados?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documentq: %(document)s restaurado." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Restaurar os documentos selecionados?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Páginas por documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Não há mais páginas neste documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Você já está na primeira página deste documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Imagem de: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Pré-visualização do documento:%s " - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Mover \"%s\" para a lixeira?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s movido para a lixeira com sucesso." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Mover os documentos selecionados para a lixeira?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documentos do tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Todos os documentos deste tipo serão excluídos também." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Remove o documento do tipo: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Editar o tipo de documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Criar uma etiqueta rápida para o documento tipo: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Editar etiqueta rápida \"%(filename)s\" para documento do tipo \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Editar etiqueta rápida \"%(filename)s\" para documento do tipo " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Apagar a etiqueta rápida: %(label)s, do documento tipo \"%(document_type)s\"?" +msgstr "" +"Apagar a etiqueta rápida: %(label)s, do documento tipo \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etiquetas rápidas para documento do tipo: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versões do documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Tudo versão posterior após este será excluído também." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Reverter para esta versão?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versão do documento revertidos com sucesso" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erro ao reverter versão do documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Remover o documento selecionado?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Pré-visualização do documento:%s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s removido." -#: views.py:639 -msgid "Empty trash?" -msgstr "Esvaziar a lixeira?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Remover os documentos selecionados?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Lixeira esvaziada com sucesso" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo de documento para \"%s\" alterado com sucesso." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Submeter" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Editar propriedades de documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Alterar o tipo do documento selecionado." -msgstr[1] "Alterar o tipo dos documentos selecionados." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Restaurar os documentos selecionados?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Deve fornecer ao menos um documento ou versão." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documentq: %(document)s restaurado." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documentos a serem baixados" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Restaurar os documentos selecionados?" -#: views.py:828 -msgid "Date and time" -msgstr "data e hora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Pré-visualização do documento:%s " -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Ao menos um documento precisa ser selecionado." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Mover \"%s\" para a lixeira?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Documento em fila para recalcular quantidade de páginas." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s movido para a lixeira com sucesso." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documentos em fila para recalcular contagem de páginas." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Mover os documentos selecionados para a lixeira?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Pré-visualização do documento:%s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Esvaziar a lixeira?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Lixeira esvaziada com sucesso" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Recalcular a contagem de páginas do documento selecionado?" msgstr[1] "Recalcular a contagem de páginas dos documentos selecionados?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erro ao excluir as transformações de página para o documento: %(document)s; %(error)s ." +msgstr "" +"Erro ao excluir as transformações de página para o documento: %(document)s; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Submeter" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas as transformações de página para o documento: %s, foram excluídas com sucesso." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Limpar todas as transformações de páginas para o documento selecionado?" -msgstr[1] "Limpar todas as transformações de páginas para os documentos selecionados?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Não há mais páginas neste documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Você já está na primeira página deste documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimir: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Apagar do cache a imagem do documento?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Cache do documento apagado com sucesso." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Página %(page_number)d de %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Imagem da página do documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +1004,6 @@ msgstr "Imagem da página do documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +1014,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1147,8 @@ msgstr "Imagem da página do documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1162,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1189,11 @@ msgstr "Imagem da página do documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1210,19 @@ msgstr "Imagem da página do documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1279,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1307,11 @@ msgstr "Imagem da página do documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1332,11 @@ msgstr "Imagem da página do documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1366,11 @@ msgstr "Imagem da página do documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1427,17 @@ msgstr "Imagem da página do documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo index b865e5a24327a274388733259b80233d9a0c2eda..3d2184c2db2333da4a399c6c89715543d53cae48 100644 GIT binary patch delta 1550 zcmZA1TSyd99LMqh=G}H%HSOYBt!ZV}mb>k0nUz}jP+=uqs0cH&u**uCln^ZyL2pGH zL~qeU8dPLUBq;O{l)hC$kX@c4@+E{!h#>m@)_LkM|M|>0Gjrz5fBw6DE5DcD2*>Ko zY$DC90Ym9#nb?C}co{Qr${GKQv*~9rSb#pv!5|i4J!WGwve^lC++v-m>w8ewU&onv zH^X8!i-U&@cyQ3UU<8-aAHytku_`alL@m(AE)PpF6{~O_)}R)+2Q_ayve|idjd%%5 z@eTU%S7yvCmxDPxMH7{w781aGT#szFlbt3yfF#RWo$+?uL%$1~a0K^a5oyqTUAPv{ zqcYRaPH#Ts^oL^{Xu?s{8-76MuyIt%exfpw#a&8e1@>SSmSI2Y`Z3f4zdDX1$+I6$ ze+reEKd8)j-F$A0E#%;}%WN0whWVUbkHxqj58+{aj#}V6b{DY>S)28u7Vs43;1Ft_ zQDjQ{h+61(WV2ifK$$E?u8UbY2Rad&9mH--A8`7^ zj_({l;e5`2L$>53x-XZ>GI_rFIM~2IDF*Qf`tcSjWzSG=G=f^lThyodf+WQzo$(YZ zQWNK(-mnl`umpGGRXm1csO##OJi_yB8wXn1CDfbTM1AXfjt@`|eBzvch0I~^F@)o& zPf?tqOSjqsy|C*cKv+3sOm4nAXXx!VVej|q^1Q{6RK)8 zJxGgCDFHZK!|3(f}AZlSELab58Y08M2GE_+T3AIw9l2A(d zRar4Hmsmjf2+AT^ANo{EziMb1v6@hJRZE+7^TPO}v@MC+^!AjDhW1l!(U#MR-mE-V z;&b)|S9ZIdJe{y&bpIud+(>rXzWh(=GC|o?)(8)c4J#>ceJCcwfk)RWkK6N D$ViT% delta 1713 zcmX}sZEO@p9LMoFN`;myEmRP#%78*Gw%T4>z*DT)>Kh9hsEuM8-QLaBtJ}MBy9*Ks zS2QuE#2~pCBEB$0W6(s2o-agAz^G~C8&O{vUudGfkXJsv&=}wN{oO52cIGoPyEprv zhrP>N&UU{zP~L5f`MuGYoj7!rG56y!T#kzv;8(Z|@1s!vE^NnfT!YithI4p5p2TK+ z2f5673WhMBpq^huJ^#ZpQ#LE8{6@!0{1;oWnYZYHb+{S3un8Z+R@{eNW}0F(2DlWT z!*zHZ72xZraX&yVvp}H1Ek1=B?-^uhGmi@N6zcaEkzFX8OH}mWckzuM9;yO8ksEe?jYqX7Qb8XpmCbaLpWNnvL zdRQ}FUwON6WQp%rPAu=*5Omuoy#vlpI#;k+=ey8lZ4hNLE(mgw?;ooE+UPe_Gfi!Y zjk}^Cw6mq+fqd3kFSNe%=qMJP%@#A!j4OoI{mn-cmA_ZK(XzFtudgT7Z+lbe!GX$K z$qx1O_N2Dk-fijr{>s$, 2016 @@ -9,95 +9,115 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documente" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etichetă" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tip MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Iconiță" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tip" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encodare" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentariu" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -118,12 +138,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -131,248 +149,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imaginea paginii" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Redenumire rapidă" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dată adaugată" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Necunoscut" + +#: forms.py:130 msgid "File mimetype" msgstr "Tip fişier " -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nici unul" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Marime fişier" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Există în arhivă" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Cale fisier in arhiva" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma de control" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagini" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tip document" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimă" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nume fişier comprimat" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nume fișier comprimat, care va conține documentele ce urmează să fie descărcate, în cazul în care această opțiunea a fost selectată anterior." +msgstr "" +"Nume fișier comprimat, care va conține documentele ce urmează să fie " +"descărcate, în cazul în care această opțiunea a fost selectată anterior." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Pagini" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Șterge" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descarcă" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Goliți reprezentările grafice folosite pentru a accelera afișarea documentelor și rezultatele interactive de transformari." +msgstr "" +"Goliți reprezentările grafice folosite pentru a accelera afișarea " +"documentelor și rezultatele interactive de transformari." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editează" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Iniţial" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -390,12 +420,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -403,99 +431,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descriere" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fișier" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versiune document" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numarul paginii" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pag %(page_num)d din %(total_pages)d din %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Pagini document" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nume fişier" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "utilizator" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Accesat" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -508,11 +533,10 @@ msgid "Delete documents" msgstr "Şterge" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descarcă" @@ -529,12 +553,10 @@ msgid "Edit document properties" msgstr "Editează proprietăţile" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Tipărește documente" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,291 +592,344 @@ msgstr "Editează tipuri" msgid "View document types" msgstr "Vezi tipuri de documente" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Numărul maxim de documente (create, editate, vizualizate) reţinute per utilizator." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Numărul maxim de documente (create, editate, vizualizate) reţinute per " +"utilizator." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Suma în procente folosită pentru a mării sau micşora un document interactiv cu utilizatorul." +msgstr "" +"Suma în procente folosită pentru a mării sau micşora un document interactiv " +"cu utilizatorul." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Suma maximă în procente (%), permisă utilizatorilor pentru mărirea interactiv a unei pagini ." +msgstr "" +"Suma maximă în procente (%), permisă utilizatorilor pentru mărirea " +"interactiv a unei pagini ." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Suma minimă în procente (%), permisă utilizatorului pentru micșorarea interactivă a unei pagini ." +msgstr "" +"Suma minimă în procente (%), permisă utilizatorului pentru micșorarea " +"interactivă a unei pagini ." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Ce rotaţie pentru pagină (în grade) este folosită în interacțiunea cu utilizatorul." +msgstr "" +"Ce rotaţie pentru pagină (în grade) este folosită în interacțiunea cu " +"utilizatorul." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Nu mai sunt pagini în acest document." + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sunteți deja la prima pagină a acestui document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Toate versiune de dupa aceasta, vor fi şterse de asemenea." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versiunea documentului refacută cu succes" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Eroare la revenirea la versiunea documentului; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Trimiteţi" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "Eroare la ștergerea transformări : %(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Trimiteţi" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Toate paginile transformate pentru document: %s , au fost șterse cu succes." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Nu mai sunt pagini în acest document." - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sunteți deja la prima pagină a acestui document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Tipărește: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -918,9 +993,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -931,11 +1003,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1065,10 +1137,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1082,11 +1152,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1109,11 +1179,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1130,15 +1200,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1195,11 +1269,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1223,11 +1297,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1248,9 +1322,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1280,11 +1356,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1341,15 +1417,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo index 736eed43151c2bc5423de01e3fad34fc56942cd1..68b6e0a16579a5e34c656abcf22711eb04d1a03c 100644 GIT binary patch delta 4060 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 diff --git a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po index 6d6710be91..06cdbd42dd 100644 --- a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,95 +9,118 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Документы" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Типы документов" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Документы в корзине" + +#: apps.py:145 msgid "Create a document type" msgstr "Создать тип документа" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Каждому загруженому документу должен быть присвоен тип документа, - это основной способ, которым Mayan EDMS распределяет документы по категориям." +msgstr "" +"Каждому загруженому документу должен быть присвоен тип документа, - это " +"основной способ, которым Mayan EDMS распределяет документы по категориям." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Надпись" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "MIME-тип любых версий документа" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Миниатюра" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Тип" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Доступно" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Время и дата удаления" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Время и дата" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Кодировка" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Комментарий" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Новых документов в месяц" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Новых версий документов в месяц" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Новых страниц документов в месяц" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Всего документов в месяц" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Новых версий документов в месяц" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Всего страниц документов в месяц" @@ -118,12 +141,10 @@ msgid "Document type changed" msgstr "Тип документа был изменен" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Новая версия была загружена" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Версия документа была восстановлена" @@ -131,249 +152,266 @@ msgstr "Версия документа была восстановлена" msgid "Document viewed" msgstr "Документ просмотрен" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Изображение страницы" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Страницы документа (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Быстро переименовать документ" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Дата добавления" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Язык" + #: forms.py:122 +msgid "Unknown" +msgstr "Неизвестно" + +#: forms.py:130 msgid "File mimetype" msgstr "Mime тип файла" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ни один" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Кодировка файла" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Размер" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Существует в хранилище" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Путь к файлу в хранилище" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Контрольная сумма" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Страницы" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Тип документа" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Сжать" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Скачать документ в исходном, или в сжатом формате. Этот вариант доступен только при загрузке одного документа, для нескольких документов будет использован сжатый файл." +msgstr "" +"Скачать документ в исходном, или в сжатом формате. Этот вариант доступен " +"только при загрузке одного документа, для нескольких документов будет " +"использован сжатый файл." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Имя сжатого файла" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Имя файла сжатого файла, который будет содержать загружаемые документы, если выбран предыдущий параметр." +msgstr "" +"Имя файла сжатого файла, который будет содержать загружаемые документы, если " +"выбран предыдущий параметр." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Диапазон страниц" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Предварительный просмотр" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Свойства" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Версии" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Очистить преобразования" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Удалить" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Переместить в корзину" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Редактировать свойства" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Изменить тип" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Скачать" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Печать" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Пересчитать количество страниц" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Восстановить" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Скачать версию" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Все документы" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Последние документы" -#: links.py:144 -msgid "Trash" -msgstr "Корзина" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Очистить графику для ускорения отображения документов и интерактивных преобразований." +msgstr "" +"Очистить графику для ускорения отображения документов и интерактивных " +"преобразований." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Очистить кэш изображений документа" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Очистить корзину" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Первая страница" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Последняя страница" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Предыдущая страница" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Следующая страница" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Документ" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Повернуть влево" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Повернуть вправо" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Вернуть вид" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Увеличить" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Уменьшить" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Возврат" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Создать тип документа" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Редактировать" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Добавить быструю метку к документу" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Быстрые метки" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Типы документов" - #: literals.py:14 msgid "Default" msgstr "Умолчание" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Все страницы" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Сколько должно пройти времени, прежде чем документы этого типа будут перемещены в корзину." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Сколько должно пройти времени, прежде чем документы этого типа будут " +"перемещены в корзину." #: models.py:71 msgid "Trash time period" @@ -387,15 +425,15 @@ msgstr "Единица измерения периода жизни" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Сколько должно пройти времени, прежде чем документы этого типа будут удалены из корзины." +msgstr "" +"Сколько должно пройти времени, прежде чем документы этого типа будут удалены " +"из корзины." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Период удаления" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Единица измерения периода удаления" @@ -403,99 +441,99 @@ msgstr "Единица измерения периода удаления" msgid "Documents types" msgstr "Типы документов" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Название документа" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Описание" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Добавлено" -#: models.py:169 -msgid "Language" -msgstr "Язык" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "В корзине?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Время и дата удаления" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Заглушка документа - это запись в базе данных без самого документа. Документ может оказатсья заглушкой, если его загрузка оборвалась, или выполняется его отложенная загрузка через API." +msgstr "" +"Заглушка документа - это запись в базе данных без самого документа. Документ " +"может оказатсья заглушкой, если его загрузка оборвалась, или выполняется его " +"отложенная загрузка через API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Является заглушкой?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Заглушка документа, ид: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "временная метка" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Файл" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Версия документа" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Быстрая метка" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Номер страницы" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Страница %(page_num)d из %(total_pages)d %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Страница документа" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Страницы документа" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Блокировка добавления новых версий" +#: models.py:822 +msgid "Filename" +msgstr "Имя файла" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Блокировки добавления новых версий" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Пользователь" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Допущен" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Недавние документы" @@ -508,11 +546,10 @@ msgid "Delete documents" msgstr "Удаление документов" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Переместить документы в корзину" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Загрузка документов" @@ -529,12 +566,10 @@ msgid "Edit document properties" msgstr "Редактирование свойств документа" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Печать документов" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,243 +605,235 @@ msgstr "Редактировать типы документов" msgid "View document types" msgstr "Просмотр типов документов" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Максимальное количество последних (созданных, измененных, просмотренных) документов, запоминаемых для каждого пользователя." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Максимальное количество последних (созданных, измененных, просмотренных) " +"документов, запоминаемых для каждого пользователя." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Процент увеличения страницы документа пользователем." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "Максимальный процент увеличения страницы документа пользователем." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Процент уменьшения масштаба страницы документа в интерактивном режиме." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Градус поворота страницы документа в интерактивном режиме." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Язык документов по умолчанию (в формате ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Список поддерживаемых языков документов" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Очистить кэш изображений документа?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Очистка кэша документов успешно помещена в очередь." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Документы в корзине" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Удалить выбранный документ?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Документ: %(document)s удалён." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Удалить выбранные документы?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Правка свойств документа: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Восстановить выбранный документ?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Документ %(document)s восстановлен." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Восстановить выбранные документы?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Страницы документа: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr " Нет более страниц в этом документе" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Вы уже на первой странице этого документа" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Изображение для: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Предпросмотр документа: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Перместить \"%s\" в корзину?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Документ %(document)s успешно перемещён в корзину." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Переместить выделенные документы в корзину?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Документы с типом: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Все документы этого типа будут также удалены." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Удалить тип документа: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Редактировать тип документа: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Создать быструю метку для типа документа: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Редактировать быструю метку %(filename)s\" с типа документов \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Редактировать быструю метку %(filename)s\" с типа документов " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "Снять быструю метку %(label)s с типа документа \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Быстрые метки для типа документа: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Версии документа: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Все более поздние версии после этого будут удалены" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Вернуться к этой версии?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Версия документа восстановлена" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Ошибка получения версии документа %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Удалить выбранный документ?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Свойства документа: %s" +msgid "Document: %(document)s deleted." +msgstr "Документ: %(document)s удалён." -#: views.py:639 -msgid "Empty trash?" -msgstr "Очистить корзину?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Удалить выбранные документы?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Корзина успешно очищена" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Тип документа для \"%s\" успешно изменён." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Подтвердить" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Правка свойств документа: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Изменить тип выбранного документа." -msgstr[1] "Изменить тип выбранных документов." -msgstr[2] "Изменить тип выбранных документов." -msgstr[3] "Изменить тип выбранных документов." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Восстановить выбранный документ?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Должен быть хотя бы один документ или версия." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Документ %(document)s восстановлен." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Документы для загрузки" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Восстановить выбранные документы?" -#: views.py:828 -msgid "Date and time" -msgstr "Дата и время" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Предпросмотр документа: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Хотя бы один документ должен быть выбран." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Перместить \"%s\" в корзину?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Документ отправлен в очередь на обновление количества страниц." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Документ %(document)s успешно перемещён в корзину." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Документы отправлены в очередь на обновление количества страниц." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Переместить выделенные документы в корзину?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Свойства документа: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Очистить корзину?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Корзина успешно очищена" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Пересчитать количество страниц для выбранного документа?" @@ -814,50 +841,107 @@ msgstr[1] "Пересчитать количество страниц для в msgstr[2] "Пересчитать количество страниц для выбранных документов?" msgstr[3] "Пересчитать количество страниц для выбранных документов?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Ошибка при удалении страницы для преобразования документов: %(document)s; %(error)s." +msgstr "" +"Ошибка при удалении страницы для преобразования документов: %(document)s; " +"%(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Подтвердить" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Все преобразования страницы для документа: %s успешно удалены." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Очистить все преобразования страниц для выделенных документов?" -msgstr[1] "Очистить все преобразования страниц для выделенных документов?" -msgstr[2] "Очистить все преобразования страниц для выделенных документов?" -msgstr[3] "Очистить все преобразования страниц для выделенных документов?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr " Нет более страниц в этом документе" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Вы уже на первой странице этого документа" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Печать: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Очистить кэш изображений документа?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Очистка кэша документов успешно помещена в очередь." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Страница %(page_number)d из %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Изображение страницы документа" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -921,9 +1005,6 @@ msgstr "Изображение страницы документа" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -934,11 +1015,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1069,10 +1150,8 @@ msgstr "Изображение страницы документа" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1086,11 +1165,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1113,11 +1192,11 @@ msgstr "Изображение страницы документа" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1134,15 +1213,19 @@ msgstr "Изображение страницы документа" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1199,11 +1282,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1227,11 +1310,11 @@ msgstr "Изображение страницы документа" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1252,9 +1335,11 @@ msgstr "Изображение страницы документа" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1284,11 +1369,11 @@ msgstr "Изображение страницы документа" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1345,15 +1430,17 @@ msgstr "Изображение страницы документа" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo index 2a47c9c84e0e8a203068faef2f210d221cad0537..8e7bf419d86a2b86ab12512f4157afe6af950409 100644 GIT binary patch delta 1163 zcmXZaUr19?9KiA4Wz)@n%~on**)acR7q+?OQo{@rL{m`;${<%=WT;cvECONm5J7a{$uU@!Az%! zJaUV4<4^QrEKekbo#??QsQ)kH4t#-S_#R8~2kt>5U!)MLP{$il$2+hH2T}8!#S*mg zB_nloQv6YXchQFns1ujakIT3VS5Y^xf!pv8_G2--ticfs;8om?_fQvda3`*yuJaBx z|GFn5!scZoH}D-#^1O*dIKZq^cpoW_Y+?-mqMo#cZ0a%8JSR|3K8$skz$-Y94Oqxz z&C`r}kXVL}o}>@MID&5tkvTlT^MztIfpa*DA5iCaaI9oXd{P^71RY@p)U9t_5BUpjlWSVP{uv# zRW|X{i*2YCxRLWQ@?J*P=x8avpeEk>KOp67TX))kx=<8#W9=Bn<2Z^B@H~3SrUw|u zcAQ3ie=+A%)I2Y7FTTcFX%qQMM-%$_(zHZr)I>JwM{@^RLl!ZB&(T1S9d}in-cQd( z=*%Xfkq8oXL@l9Bzx{ebm#-!?yEZ)zi)SxNpDPKHXY1Zzzi~Bn>bm;~ikfYF6%xwz zl^P;ULukA~4Ci6~tl{ZSOjybIq*LSd8_t=6 zPe!!G3`WgxED(yeMh=_7NHAD9IA9K0mlCPORMPB)jNI2dAH#0)nFLWf!-&GvNB zOmT&Zn($ZEE=&d7TV!-^vKXblQJ2&LeYLcyXhDpE>Cq~G7=hRl6thn?Td?>Cz# z$%|Xg_wG2Pl)4^MY8Sr8y|{CsQY|=zA)d!L#+v8n6S$n`l^4z|udZh>#6&BO<4XJ% zJMbK~;bmNmzhXDu#zpuP+wld;hHr5hHnH0WxC&*Xk8ug^Mmg{>ZpPWTsw&Ok9urIP zZ##3QD}+7FFjn zzQIH{6A$ndzQ(OM#wrPP5haruluWK+7VqF6j#4l2BcAUjl=>WB;$h5@&2c=7vhEq4 z!GDmms*_b_shav8SK$<{#$Qmb;3jUwIV7ffhEm!$C>2Xke>vbrB&O=Z6lRbd)Cfvk z7wh|=tee6$Se;=YcOD^s>OMaQ@G(jSlAJ<3gtG7?N+o_o3H)hz9?} z<2bUPNH=U2Lp1OP~(xjf!i_i!+S2(B*zwYc_UZf#=oM z#(Oq}z4{wdu{v+9uM5_*C0o#8d34l<;n!u)I~84v-EyMw=Fo|r$2*+PgXOTKCnkf6 zTd>-cv}X+yfp2vo7%h)mzZCu3@|TnAPh~Qx>?b;%9nAHm(tYW4>(JrUu&ubE8~CX` zrep_oHl3-zm-$qu2L^MW)!N&Bs$Fe6*8YX@Pn69GUJ1RCFZb6LB&PQq2@MflIi_p1L>Cl6ITREP zLHH+xL($S2P1TV9K(q*bpX#`~&%Fh620!`^o+=&@sX9cwxQi=ja1ooB#wn)= zOEH+l6Kun0q{}N)0N+seePai<@YE7%cZp2%edQJ@;wSnr?UBmwfeotYCy>W(tYQ}) zq8~3Xhcy#&fgm%V?F zaEZ>%n@{KDOMmn}u8{TdeOm+AVYIZ1^W4V~I#C8IC4W@kvv4 zg)|b6#G>Kocq*1K*RK7}`D`h_oz3S`;qvBsdcnlpnfjUAV>_1bZ%Xx=cfvAGU+o7< C*+#Gc delta 619 zcmXZYO=uHA6u|M9wP~6y{W54%KXBATy{v4KMoUhDUW96;&?*Ybnl5R;Osd`FR#Jr? zR0PWwM7>%(MGt!rDtOR?mtMShHqeXURXi#FUv-$B-|S=N&70Xh_-g#=PA4lOYkeZ~ z_z36l8!lieEpk%hNJ!q`G$!cc52VX4h6DH;bzQDsWEk`KA|*13=lK7a5ozGQ0g*wx zJ0P9C4XXt51RmfRzQj@N;t+noaoqVI-$lCoWY~{?P!o=E8(nu4C$NlK;4EtXdDQ$C zwa~R}=ikP40yzR3NS7^!oA?$j4s+dWxQeIoD{6u?r_P{@`XX0R54?>>a0&G#)^P+k zkp~fnPusEhqBA(8C2P~t@^RqY(8mwq6?q3EKWfTAa diff --git a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po index ef1d4d0f27..b2b97bc907 100644 --- a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Tài liệu" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Chú thích" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,256 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Sửa nhanh tên tài liệu" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Ngày thêm vào" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Kiểu file" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "None" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Kích thước file" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Trang" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Kiểu tài liệu" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Nén" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." msgstr "" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Dãy trang" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "" -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Sửa" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Mặc định" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +414,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +425,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Mô tả" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Trang %(page_num)d ngoài phạm vi của %(total_pages)d của %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Tên file" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Người dùng" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +527,10 @@ msgid "Delete documents" msgstr "Xóa tài liệu" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Tải xuống tài liệu" @@ -528,12 +547,10 @@ msgid "Edit document properties" msgstr "" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +586,332 @@ msgstr "Sửa kiểu tài liệu" msgid "View document types" msgstr "" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Số lượng lớn nhất gần nhất (tạo, sửa, xem) số tài liệu để nhớ mỗi người dùng." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Số lượng lớn nhất gần nhất (tạo, sửa, xem) số tài liệu để nhớ mỗi người dùng." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Số phần trăm phóng to hoặc thu nhỏ một trang tài liệu mỗi tác động của người dùng." +msgstr "" +"Số phần trăm phóng to hoặc thu nhỏ một trang tài liệu mỗi tác động của người " +"dùng." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Số phần trăm lớn nhất (%) cho phép người dùng phóng to một trang tài liệu." +msgstr "" +"Số phần trăm lớn nhất (%) cho phép người dùng phóng to một trang tài liệu." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Số phần trăm nhỏ nhất (%) cho phép người dùng thu nhỏ trang tài liệu." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Gái trị góc quay trang tài liệu mỗi lần tác động." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." +msgid "Clone page transformations for document: %s" msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +975,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +985,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1117,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1132,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1159,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1180,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1249,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1277,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1302,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1336,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1397,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo index 366bed20c64ac989426e05ce7cc2df774b84db57..66772a2a8dba815f525626f9128e0f9aa2b0f942 100644 GIT binary patch delta 1306 zcmYk*TS!zv9LMolUDM6gRnuD2Y`v!0*6!+h>!D1N!cYu~poiK*OfsR1Q4uUfB1B2B z8AT6WAfX3)SrV!@3qr6r! zrGY3Wrd`JD#*3+3DEHmQMDYQ(;w-jfVVW@+co;6E0ys{zOff%`BS8&qeK0+=sQe7cb#{oI#CK%S}xfLNYad z)-%Yam^c+|0g5=X8lW0AQ3Q2Zn^6;W+5Y3$P5TsTfv-@n zY|j4w5w+kisBwQ|1$yF~JYJczZRMyeHE;=`vW6%lbYN7Jh03~RoZV5iiU`?0C9s9i z*;!2#5?YLk&V>@GB}$37vQ8l?2^D3lqSa}o{}*M(!kxpX{s5sbWCNk?|5w6P_z0Zh zeCxK(hvbw^T(ygvweBF5h||5iMf&#HeY2jZC-iC7CC1%blZ|QHQ`6h~`g;aqCz691 zURUyw=c_BLF&K&lBTa#Dw57f|aWAt-J@vszI1p}Vi9{2xGlzV8VgtQ{vEH7Rz=dOn m+By>*-h+t=Z+EgTYdFQTcx!n6#l*sm>xpN+m&wtbPS;-q8heod delta 1464 zcmX}rTWC~A9LMoV+-OXq+s6C-B*sf@RyVszw23bo4OJS`1{Bc;U6Z2;th?gw#-=K( z(hwCT)iqv9t39O+GI6^cu=iVkYq*$Cx#EY!p9~0go}&cm>ztFs{IwJYyR0E6m5=Fot(=3@#u2 zzI_!=;JFbeVF*9MJ;;1XbC^m24VP_)0o&mY7SjF*HNYT_!#6k|^O$8UR-hMaP#@BO z#n^;XaU1IWy*M6wPzyPaWz28>q2ka`%-bJh5Lu*Ijhb*RPQ;C<33poe;Ch}9VlzI% z4Y-I-bJdO-=Q1wCe$+w-ts|Jn{N`UOO3ho;$|li^MVjT?LYt z9?})S33!TaY`{f4|50SjCpenb_%MJqxD}JkY0gktjeV$zhpi*1RKB+6GYeyx8L0M! z_PNeJe`cRIqsD1NUNuqMz8|$ENA3TY#*=>y*l!!I+K#tS6Wp^tw(YM_hw(q0j#X^D z25dt0Z$nMI7wKXS;S4;1n&&4ZS>`%^inqPwecpU4ULxs?MPXxR1)% zpP0=QYU@T&6L~m5YIpEUT!0#{6SZ|GQU9Moeen4t6%Bj^%kUPmb=j|n?4Y`qbM!#b zU^-kHM1?KRmf2RHbv{6${e>eTar2$TmVx+loI;NTw)%fqI9X~N5Na%+Wpr)*;%p!CsRk$#E?R}~z;}T*q5hPS}x|JQWo4umi zd!?-^^@FD_HylnijwvsRRXA;-4%gY{x)G<<4ZCr-)rloqTHIJ{dm&05Tz0xU(|4)XnHL-W?wg^Wvzg-;|LXfS(>pM9^_SrrJ([0-9]+)/$', - APIDeletedDocumentView.as_view(), name='trasheddocument-detail' - ), - url( - r'^trashed_documents/(?P[0-9]+)/restore/$', - APIDeletedDocumentRestoreView.as_view(), name='trasheddocument-restore' - ), url(r'^documents/$', APIDocumentListView.as_view(), name='document-list'), url( r'^documents/recent/$', APIRecentDocumentListView.as_view(), @@ -279,32 +267,33 @@ api_urls = [ r'^documents/(?P[0-9]+)/$', APIDocumentView.as_view(), name='document-detail' ), - url( - r'^documents/(?P[0-9]+)/versions/$', - APIDocumentVersionsListView.as_view(), name='document-version-list' - ), url( r'^documents/(?P[0-9]+)/download/$', APIDocumentDownloadView.as_view(), name='document-download' ), url( - r'^document_version/(?P[0-9]+)/$', + r'^documents/(?P[0-9]+)/versions/$', + APIDocumentVersionsListView.as_view(), name='document-version-list' + ), + url( + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/$', APIDocumentVersionView.as_view(), name='documentversion-detail' ), url( - r'^document_version/(?P[0-9]+)/revert/$', - APIDocumentVersionRevertView.as_view(), name='documentversion-revert' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/$', + APIDocumentVersionPageListView.as_view(), name='documentversion-page-list' ), url( - r'^document_version/(?P[0-9]+)/download/$', - APIDocumentVersionDownloadView.as_view(), name='documentversion-download' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/download/$', + APIDocumentVersionDownloadView.as_view(), + name='documentversion-download' ), url( - r'^document_page/(?P[0-9]+)/$', APIDocumentPageView.as_view(), - name='documentpage-detail' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/(?P[0-9]+)$', + APIDocumentPageView.as_view(), name='documentpage-detail' ), url( - r'^document_page/(?P[0-9]+)/image/$', + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/(?P[0-9]+)/image/$', APIDocumentPageImageView.as_view(), name='documentpage-image' ), url( @@ -320,4 +309,16 @@ api_urls = [ r'^document_types/$', APIDocumentTypeListView.as_view(), name='documenttype-list' ), + url( + r'^trashed_documents/$', APIDeletedDocumentListView.as_view(), + name='trasheddocument-list' + ), + url( + r'^trashed_documents/(?P[0-9]+)/$', + APIDeletedDocumentView.as_view(), name='trasheddocument-detail' + ), + url( + r'^trashed_documents/(?P[0-9]+)/restore/$', + APIDeletedDocumentRestoreView.as_view(), name='trasheddocument-restore' + ), ] diff --git a/mayan/apps/documents/views/document_page_views.py b/mayan/apps/documents/views/document_page_views.py index 45de60424b..4ab01dadb1 100644 --- a/mayan/apps/documents/views/document_page_views.py +++ b/mayan/apps/documents/views/document_page_views.py @@ -5,7 +5,7 @@ import urlparse from django.conf import settings from django.contrib import messages -from django.core.urlresolvers import resolve, reverse +from django.core.urlresolvers import reverse from django.shortcuts import get_object_or_404 from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _ @@ -13,6 +13,7 @@ from django.views.generic import RedirectView from acls.models import AccessControlList from common.generics import SimpleView, SingleObjectListView +from common.utils import resolve from converter.literals import DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL from ..forms import DocumentPageForm @@ -103,7 +104,7 @@ class DocumentPageNavigationBase(RedirectView): ) ) - return '{}?{}'.format(url, urlencode(query_dict)) + return '{}?{}'.format(url, urlencode(query_dict, doseq=True)) class DocumentPageNavigationFirst(DocumentPageNavigationBase): diff --git a/mayan/apps/documents/widgets.py b/mayan/apps/documents/widgets.py index 31a9dd0eef..9c6f3f1d4b 100644 --- a/mayan/apps/documents/widgets.py +++ b/mayan/apps/documents/widgets.py @@ -101,9 +101,21 @@ class InstanceImageWidget(object): # Click view def get_click_view_kwargs(self, instance): - return { - 'pk': instance.pk - } + """ + Determine if the view is a template or API view and vary the view + keyword arguments + """ + + if self.click_view_name.startswith('rest_api'): + return { + 'pk': instance.document.pk, + 'version_pk': instance.document_version.pk, + 'page_pk': instance.pk + } + else: + return { + 'pk': instance.pk, + } def get_click_view_query_dict(self, instance): return self.click_view_query_dict @@ -141,7 +153,9 @@ class InstanceImageWidget(object): # Preview view def get_preview_view_kwargs(self, instance): return { - 'pk': instance.pk + 'pk': instance.document.pk, + 'version_pk': instance.document_version.pk, + 'page_pk': instance.pk } def get_preview_view_query_dict(self, instance): @@ -254,20 +268,46 @@ class CarouselDocumentPageThumbnailWidget(BaseDocumentThumbnailWidget): class DocumentThumbnailWidget(BaseDocumentThumbnailWidget): def get_click_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { - 'pk': instance.latest_version.pages.first().pk + 'pk': instance.pk, + 'version_pk': instance.latest_version.pk, + 'page_pk': instance.pages.first().pk } + def get_click_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_click_view_url( + instance=instance + ) + else: + return '#' + def get_preview_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { - 'pk': instance.latest_version.pages.first().pk + 'pk': instance.pk, + 'version_pk': instance.latest_version.pk, + 'page_pk': instance.pages.first().pk } + def get_preview_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_preview_view_url( + instance=instance + ) + else: + return '' + def get_title(self, instance): return getattr(instance, 'label', None) def is_valid(self, instance): - return instance.latest_version.pages.all() + return instance.pages class DocumentPageThumbnailWidget(BaseDocumentThumbnailWidget): diff --git a/mayan/apps/dynamic_search/api_views.py b/mayan/apps/dynamic_search/api_views.py index a592a411c4..0932b046e9 100644 --- a/mayan/apps/dynamic_search/api_views.py +++ b/mayan/apps/dynamic_search/api_views.py @@ -5,7 +5,9 @@ from rest_framework.exceptions import ParseError from rest_api.filters import MayanObjectPermissionsFilter +from .classes import SearchModel from .mixins import SearchModelMixin +from .serializers import SearchModelSerializer class APISearchView(SearchModelMixin, generics.ListAPIView): @@ -15,11 +17,6 @@ class APISearchView(SearchModelMixin, generics.ListAPIView): GET: omit_serializer: true parameters: - - name: search_model - paramType: path - type: string - required: true - description: Possible values are "documents.Document" or "document.DocumentPageResult" - name: q paramType: query type: string @@ -55,11 +52,6 @@ class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView): GET: omit_serializer: true parameters: - - name: search_model - paramType: path - type: string - required: true - description: Possible values are "documents.Document" or "document.DocumentPageResult" - name: _match_all paramType: query type: string @@ -94,3 +86,15 @@ class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView): raise ParseError(unicode(exception)) return queryset + + +class APISearchModelList(generics.ListAPIView): + serializer_class = SearchModelSerializer + queryset = SearchModel.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the available search models. + """ + + return super(APISearchModelList, self).get(*args, **kwargs) diff --git a/mayan/apps/dynamic_search/apps.py b/mayan/apps/dynamic_search/apps.py index 4a3fc58685..44f2495171 100644 --- a/mayan/apps/dynamic_search/apps.py +++ b/mayan/apps/dynamic_search/apps.py @@ -11,8 +11,8 @@ from .links import link_search, link_search_advanced, link_search_again class DynamicSearchApp(MayanAppConfig): app_namespace = 'search' app_url = 'search' + has_tests = True name = 'dynamic_search' - test = True verbose_name = _('Dynamic search') def ready(self): diff --git a/mayan/apps/dynamic_search/classes.py b/mayan/apps/dynamic_search/classes.py index ea4635a103..bc706fd8bf 100644 --- a/mayan/apps/dynamic_search/classes.py +++ b/mayan/apps/dynamic_search/classes.py @@ -47,6 +47,10 @@ class SearchModel(object): self.permission = permission self.__class__.registry[self.get_full_name()] = self + @property + def pk(self): + return self.get_full_name() + @property def model(self): if not self._model: diff --git a/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo index f7441269bab7f6d597a30f07e62c4f044a51dae6..edcf06c875cd4b102f3bfc13b58b2006f3d58ff6 100644 GIT binary patch delta 242 zcmeC;_`+I$Pl#nI0}!wPu?!H~05K~N#{e-16acXS5ElY58xSu7Vjdt~3B>mq85p(! zX$v5p#>BwD1*FddX-Ob`3rGW{8GsbnY-S)02EK_EnYpF83W>S-rFkV2k1GoYrzRF9 zXD~o0g_6{w+~Ua|jJ~Gkx(24YMivT&rdB4Fx&|f&23!IDx(^b delta 491 zcmYk0zb^w}7{}jMi_nrt5Mg+23~jE5RytcGI$<%8tGud-Q|@{RQxlYEEX~DVAaPBp z5^3nbV7EW-fWcJIH3Y>61fmJvy=8TNqxu~4HrCr2L8ncSm>JmyH7RClX)NGs$}^=F_$HM&4smZ&O=oT_v! v_vuC+k>ghParMR-dS&p$wQPKI;YE)TMXm&i+?cOy2ic%, 2013 @@ -9,76 +9,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "مصطلحات البحث" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "البحث" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "مستخدم" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "أقصى عدد لجلب وعرض نتائج البحث." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "الحد الأقصى لعدد طلبات البحث ليتم تذكرها لكل مستخدم." - -#: views.py:25 -msgid "Search results" -msgstr "نتائج البحث" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo index 186753429181be7d1c9930abd00b96e65f4178f9..3d35259102a0ffdeacbffac202e40113373303c2 100644 GIT binary patch delta 256 zcmZqTxW-z4Pl#nI0}!wPu?!H~05K~N#{e-16acXS5ElY58xSu7Vjdt~3B>)33=G?V zbSx0NF)=Xk0qG?`S_w#R2GT%j1|S7Cn;A%hfp20(W^QS&LSk-yX7?|@u1wLB*D`hUF1pxtvEgFlg{>F% LUf4SMB(n+tlx;dd delta 461 zcmZvWO-lk%6o&6iT0vG2wTKFC;UWTKW=sXwK?J(0AcBH1t|l~EGY+%}GM6Ek46TiR zfeDfoS?gA3HbI+yK+u2az4k$i4m|VBIp@81<|SAeJb4=nTrkuCm zCNIURSMn$2$JM$O+ew>8dCRqU!L>5N=EW>`glX^Y@k3YGdExL, 2012 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Термини на търсене" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Търсене" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Потребител" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Максимален брой резултати от търсене за показване." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Максимален брой заявки за търсене на потребител" - -#: views.py:25 -msgid "Search results" -msgstr "Резултати от търсенето" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo index 41865c3849ac69c48edb0e951789432fdf6b100e..c635e865ba4a4ca1f2336b07d6ff5e2fffe1f30e 100644 GIT binary patch delta 268 zcmey(-ojRYPl#nI0}!wPu?!H~05K~N#{e-16acXS5ElY58xSu7Vjdt~3B=zR85p(! zX^@_^ObiShK>8Js768(pfizH>0Z4((W(Lw=;G0;HnOmBxkeHianpZOMxUz6?YGP4x z1_OjrC`m2KEuQSb=xb`OYhbEtWT9YaYGq=nYhYqvz!l)H8S)7@lr|Xhfl4_-3 zWMBwXXQFFls9z!cGsC5k$~C=Ha20= zCsEK|Ti-yz*3!bp#(!fJ4}5%c=KOQHNPeZxUo(kohDw2HumwiJ6^QB{{;8}PKuD}U+8U6&TU>^O#5MwLwDLeu{!5R1&o{X-18w@^RocXKa!792Gqkcu7 zj2@5oRB5-yPo%PnT&o&FlXpNyaJ_#>M^+Mbrim2FGbmjNeBz7~PzU5Qak(&MF|h72Tixz80k hSLRr~A8B&7A-eb}$N1+|Q?R<%Qr_{ujkUoG>>JjQbOZnZ diff --git a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po index e413cc0158..a903bad2c2 100644 --- a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # www.ping.ba , 2013 @@ -9,76 +9,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Pojmovi pretrage" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pretraga" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Korisnik" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maksimalni broj pretražnih hitova da se rezultati prikažu." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maksimalni broj po korisniku upita u pretrazi koji će biti zapamćeni." - -#: views.py:25 -msgid "Search results" -msgstr "Rezultati pretrage" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo index 14864216a3ef7cabe0ec2962d7427c0c558b5ae0..0225b08c3934600dcbb677116aa16c4c05a49f99 100644 GIT binary patch delta 119 zcmaFGe2m%Ro)F7a1|VPrVi_P-0b*t#)&XJ=umIv7prj>`2C0F8iJ`u{=DG%^x<(cX xhNe~~mJ`=Yg9J=;jSLkG&8&>fCSI@P@kz`}FHKBOwNgk)ob1mSJ$XB$4gkn<6@mZ& delta 179 zcmX@c{E9jBo)F7a1|VPpVi_RT0b*7lwgF-g2moRhAPxlL9!3U+Fd)qa#E*e&AOZuB zUN{IXPA!^f;cIH9YiOuzWUOFdWMyiiYhYqvz!l)H8S)7@lr|Xhfl4_-3WMF8j vYha;kWT0SZX=P|IaaZMJ2gWEKpTxZM(!_M2ij>63GZ}T+or+4+Q;Qe?ulgY{ diff --git a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po index 615dbb0ab5..533a419ab9 100644 --- a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po @@ -1,82 +1,86 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2015-08-20 19:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Bruger" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" -#: views.py:25 -msgid "Search results" +#: views.py:64 +#, python-format +msgid "Search for: %s" msgstr "" -#: views.py:32 -msgid "Type" -msgstr "" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +91,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +117,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo index 04eb54cd7b8605140dab062d65c6fd10be639e2e..ca6bea0ce93b8f2686d1ca0e934da4ff9d02d172 100644 GIT binary patch literal 1424 zcmZvbJ#!;P5QY~xz68Zr00}|gRZ(RZ9(^H$S!3$VNv7^V*mV|MNR4(|yW`uP5i_%v zWymRh009XZ2@yq10{j9p0*Z`)KS0botCht8TQz!ST0QS{&vgI(!nH3Wd{1M%jPV)9 z^BBKjgpVGIqG!SD;4@$kd=k6~cELN~4e(R&G4N|JXng|)|L?&U!5o z%)?Ri9M(6kt@s-F6xKuVb?^iX`k#Z3g5QE6zVE=G{}cEU_zM`${S*8O{0oHq)z@lf zLF4f&>nfLU9>S>iKLI|1f$eoZ(P4Tnb;2n*mNvj zXl86ouekNnva1Rl^)It$Te|38&YF^(llz?RkkQ4G*8V=1esyw4f@X?~)X_p=K4p0M z%4$yAR7+I45&7Tko(h)EL!VbV|CNbOtU2Svi`%LAh^o#^r^=j|n3!58#}jeOvh?s5L+LrDez*6A=A{w!>j%`^-fu-CyI_Sn@=T`{-oNPp zhiPLtEDEM06b{=}7f7rR^`*=U!u?Dv&k%#&LFqFL8DFx>JT2I!s7q(iJnym6G?&h? zPTAGEVqAAc#i>U0E7!_HII*vcj8aM2jX_=Sr8AuT#@)I?hq_NDn6-&qJB6CI2B; WDs-9(`QZ&6A!9D;?V3cXpBO?Cn+GO*d5a6pQXr@N-xq1)Zq z?##}-0S~|d#0zlYk>JFU7vRL-J-w4e!jk=Sxjt>zpYL4ySzx?{c@6V7%=g3o1uPin z;G5tI3^qT3SHWMwOW^Nd4E_P$0RIAC2H$&8h&RA%VDSG4d<9Iv*TF+D#QD0HAAup> zuL zMc_-|E$|9>8$|kUgmaX!9j{^+at|Z6=OZMpZh!(0{4D6H|4rtF|Il)vfWpiVCR6*R)`t7Nkr@nRZR7 zR>Q4>X{$L~suveNKelW&cW#y|?z9aoTE})M9zeSir=0RO%kvUDaki;@15&xtravRg zt}Rh+uk&mxCuXaL#Y2P_C$@gfsh7u@{FbfLwMl5IR?5)iXnHm{<)*e?PF=1ud8f^t zoYe^pPQIDRyWwqMFT-mkG>%6%#-k)2 ze;i{B?knfz%qrtbpCrd!oUp5LxMbHlk_e-0Ouw<>2jV^t;e1ullF zcQ#z@(oW%hlSI*Sxg7csSugl}nATNfYp1NPZB&JeO3o@5m3_1*u9s7favwQO9Q@fCK!B$R8T4&ni3EiA)zb!nW zF4y3sY^^Hgy&6B0kZC&69gO#Bvpv``^uYm*cJ~KjVwbG(ho0%IO$)|>^IVp#$=w>7 zrZqqKzFi&kz17U}0+no9P~klf%~};D`jdK<`2>y1ILH}sa!*UP85?qSS^l3}$gbuK zix22s8(ZVIOzYQZ-JD&+8U@(rBC!#N8z*s}{d#+gX9aX_ce8G#rRI!nQI~M-PHfI| Uqn+bUoO5n9t`<64Tx1vj0rTx-5&!@I diff --git a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po index 85563090fa..141577476c 100644 --- a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,10 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # tetjarediske , 2012 # Tobias Paepke , 2014 @@ -11,75 +12,82 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:45+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Dynamische Suche" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "Kein passendes Such-Model gefunden" + +#: forms.py:9 +msgid "Match all" +msgstr "Alle Felder" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" +"Wenn aktiviert, werden nur Ergebnisse angezeigt bei denen alle Felder " +"zutreffen. Ohne diese Option werden Ergebnisse mit mindestens einem Feld " +"angezeigt." + +#: forms.py:29 msgid "Search terms" msgstr "Suchbegriffe" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Suche" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Erweiterte Suche" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Suche wiederholen" -#: models.py:24 -msgid "User" -msgstr "Benutzer" - -#: models.py:26 -msgid "Query" -msgstr "Abfrage" - -#: models.py:28 -msgid "Datetime created" -msgstr "Erstellungszeitpunkt" - -#: models.py:30 -msgid "Hits" -msgstr "Treffer" - -#: models.py:74 -msgid "Recent search" -msgstr "Letzte Suche" - -#: models.py:75 -msgid "Recent searches" -msgstr "Letzte Suchen" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maximale Anzahl an Treffern, die angezeigt werden soll" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maximale Anzahl an Suchabfragen, die pro Benutzer gespeichert werden sollen" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "Suchergebnisse für: %s" -#: views.py:25 -msgid "Search results" -msgstr "Suchergebnisse" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "Suche nach: %s" -#: views.py:32 -msgid "Type" -msgstr "Typ" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +98,8 @@ msgstr "Typ" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +124,3 @@ msgstr "Typ" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo index 02525e9a90c2f5a05c3e5cf289e323c469d4db25..202bb92ec9308b51962b09ab187020e88560f17c 100644 GIT binary patch delta 186 zcmX@l*3DXfPl#nI0}!wPu?!H~05K~N#{e-16acXS5ElY58xSu7Vjdt~3B>)33=G?V zG)Uf!2_jz(q(Sm^KpH5`0HnZXGXrTb@J+19%q`7TNX*SI%`2I>U70O7HL)l;W3n1! l6tB6ifvK*Mg@U1}m5Jr%Ud9YY5r`}UgiyIAYKW?WSLF%1=G*GD;kO={-P?`lu1LfcVq?u`A zuBnf2Vnt?dX|6(EX>L+#kwSi&LUC$hQF4YtVQFenW@@oQNxni+YHli6wg9N2v^cd$ zk0BVW2ucAJ6qn|d6i-|c#cQT(XsBystYBbdWoojSpD}|mikeoyY%EDF$}MI90J3UM A{r~^~ diff --git a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po index e0bf116c3c..afc167ef41 100644 --- a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -23,67 +23,72 @@ msgstr "" msgid "Dynamic search" msgstr "advanced search" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Search terms" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Search" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 #, fuzzy msgid "Advanced search" msgstr "advanced search" -#: links.py:11 +#: links.py:15 #, fuzzy msgid "Search again" msgstr "search again" -#: models.py:24 -msgid "User" -msgstr "" - -#: models.py:26 -#, fuzzy -msgid "Query" -msgstr "query" - -#: models.py:28 -#, fuzzy -msgid "Datetime created" -msgstr "datetime created" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -#, fuzzy -msgid "Recent search" -msgstr "recent search" - -#: models.py:75 -#, fuzzy -msgid "Recent searches" -msgstr "recent searches" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maximum amount search hits to fetch and display." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maximum number of search queries to remember per user." - -#: views.py:25 -msgid "Search results" +#: views.py:24 +#, fuzzy, python-format +#| msgid "Search results" +msgid "Search results for: %s" msgstr "Search results" -#: views.py:32 -msgid "Type" -msgstr "" +#: views.py:64 +#, fuzzy, python-format +#| msgid "Search error: %s" +msgid "Search for: %s" +msgstr "Search error: %s" + +#, fuzzy +#~ msgid "Query" +#~ msgstr "query" + +#, fuzzy +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#, fuzzy +#~ msgid "Recent search" +#~ msgstr "recent search" + +#, fuzzy +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #, fuzzy #~ msgid "Results" @@ -123,6 +128,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo index 71a6b1a99db13e9329e535165a16d13510ee2e1a..e43eec8f780d4228a18b66b028f506631ab2e09a 100644 GIT binary patch literal 1483 zcmai!Pj4GV7{&)E{|w?!h2X;BEvQl}y0#NFBHbtwG)bjaHAIOi=hr*0?Sb7HGc%jS zz!%`aktesBsw?8k)iy4k)7Zp7(a}(vIIBsUFe!Q3R-d_(pvq|}sY+7Djwp_WzNy7e)&4x^ z9K<6wcCki7=X1ImPNrT$T_V+mdUcMD#lWLE&2vITTbaDK8`ugGp9q)&`7BR z9U6=Wf~Z(~E4odML~R!$Pu(7=6b=#kGS~UPjN0|?D=A`jS7#5z2jgr`J)W|qo$cO! zYfmQ5$E+7dMrXI{QONo(r`GQ0{cOt%N5p5_93`jK?#jnmcP(38rsKs;X4o(t@aLx3ICJd&(0T;;SsVQa#e zu8m`ycNz0&Tsww#S( zVPrbNiJ~0E4l2Xg4ZJJ%LE`2Y{X5zEGA?BtiqCdz;WR2Gr}cq}r)G1K(Aq6)&t-PU z;l<}+h{avs%FP1dM2GpB^4keBFzR%WjrZ(fbCPNT)?e)ls?SQ9$74)@ZI?hFhqqj zwm=39ER_u!^`$-az?BE$iD^)Wg8lLdP1tkuY3!Y|1ev9))0qD3S6>->!L{0|+3NIt z;#W#hprH5$h1o;6#iEvjCjIOf_OSQN;m_K~M+g7SwKZV{R}&Z7v~S2>5P!A|;~zqj N(HgQz=)94(`VY9IyMF)x literal 1374 zcmZ9L&5j#I5XYO4@L@iJA`&DNiQ<+7wLNx16wPXdlHE;+6vM{r>@A1#OxfF+jydkwWK)7riGR6lJ1dw&m`rC`&v>TQqB*sQV&ue z)&25_Z6PHEVP8zuE=P%`5-PmlwN$$c%atk4^xv8oRG&{wRaeB7t8HvlG=++yqp`$d zN^DCiO_sZ5m39t`I*4zpr_e6cKnhuB`TtIWIykNS z6vPuYwmBm&p`M}KMi<3bK@AskQO^)w?R)n^il`r#`cQl@&gRtT1zXzN?H{xTGIu`e zewdh2Kd2``4_!{J{qKi*C-nyQI&~|jUe>*;`X!QLw#>!mokpU>pfez(%4B(_eLhJi_J+wYkyXIp6Q1UjnB!> zSKF}N+oIFg?HiW9+@|i$t(JPQd>t?iB@<&Jf8>(YSdg0*G(m9cMJO%2W5Va!*xsQ&, 2014 # Lory977 , 2015 # Roberto Rosario, 2011,2013 -# Roberto Rosario, 2015 +# Roberto Rosario, 2015,2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:55+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -26,61 +26,66 @@ msgstr "" msgid "Dynamic search" msgstr "Búsqueda dinámica " -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "Ningún modelo de búsqueda que coincida con la consulta" + +#: forms.py:9 +msgid "Match all" +msgstr "Parear todos" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "Cuando se selecciona, sólo se devolverán los resultados que coincidan con todos los campos. Si no se selecciona los resultados que coincidan con al menos un campo se devolverá." + +#: forms.py:29 msgid "Search terms" msgstr "Términos de búsqueda" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Búsqueda" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Búsqueda avanzada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Volver a buscar" -#: models.py:24 -msgid "User" -msgstr "Usuario" - -#: models.py:26 -msgid "Query" -msgstr "Consulta" - -#: models.py:28 -msgid "Datetime created" -msgstr "fecha y hora creados" - -#: models.py:30 -msgid "Hits" -msgstr "accesos" - -#: models.py:74 -msgid "Recent search" -msgstr "Búsqueda reciente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Búsquedas recientes." - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "La cantidad máxima de resultados de búsqueda a recabar y mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "El número máximo de consultas de búsqueda para recordar por usuario." +#: views.py:24 +#, python-format +#| msgid "Search results" +msgid "Search results for: %s" +msgstr "Resultados de la búsqueda para: %s" -#: views.py:25 -msgid "Search results" -msgstr "Resultados de la búsqueda" +#: views.py:64 +#, python-format +#| msgid "Search error: %s" +msgid "Search for: %s" +msgstr "Búsqueda para: %s" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -116,6 +121,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo index ca67602f6098bf7503eb410ee2f7851689faf00a..33608af513736f7f67b8ce7855067780c0df905d 100644 GIT binary patch delta 277 zcmaFKHJz>go)F7a1|VPqVi_Rz0b*_-t^r~YSOLWRK)e!&4S;wj5QEgd0%9H@{s^W2 z0qHhIpk5%B2C^qHF)(NY>2*Mw3rODr(vm>>DUcQi(*J=pP^l#YE06;+5C&La3@8m$ z$G{9?JEoK+<|U`5C={nA7A0p)?qf8XEX^d%T9R6nTRb_0$(Pq$*T7WQ$U?!;)XKzi z@;WAIkcf${k)eX2nU#^*7|M3sa6VUiIe@AqbF}?cABipqBEJ5Rb{e0 Gs{{b^nJkL{ literal 1385 zcmZvZO>Y}T7{><)Z*HLo300^FJwhC)s`0MfQdJuT1Z^rRurRIzH>BzA*k0t_HM6r# zd;~QwLXo(@XGj`CEE6uhATE3Z4zmg31Mmglg2exET*r|ZY4$hI%>Q}aKVM$>USM6o zehvFO?2FjvpTGyJ2l87Cz61`z1@Ift2fqccgTI1LgMWiBfd7K*ckW3co&hg`=fO9? z7eQ}ozXNi-52tK`8}MBLFX8@=r-XPN{0C(Jix6J{-vlk#1UcSs;49$o;H%(YUfwoOMjdU#9;q~< zD9#6cHLT7Y(jvL14P~9jK3^8v#CqapbfPD(11O4Io2vK(uS3z&p`K+qYw29vJt_1A zq`E3jr*~v@Ui4A!^v!CM-?*-UZZ*~@atE6tjb3!x3XOhBy+Gr}BOS*}c+L6CL})zz}CRT5B>YekW7 z^{gEPp0~QXTD9yRcl25{%o5L>I2teEZlsQq-0M$+cpc?kt~Bm6mQS0mRsG7%EVY=j z*92g!k#j@wo5DR+w#V#jx%<&k;`eAMRD2<=*GR+&Wa7FqbkjQVN_q< z&M^3Z(!s>cmuic2a$NEkE5hx&L$~Ml%dO*WDt|fNc0apu`IXx%HwEr@+!$8}0?nlDyy0JSbxA29r??!It=%M?;jj7yVR~AzFHMG0s1Ke>0jxXGgb6O}L zvFS!gk5GqHZV}f*, 2014 @@ -9,75 +9,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "عبارات جستجو" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "جستجو" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "جستجوی پیشرفته" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "جستجوی دوباره" -#: models.py:24 -msgid "User" -msgstr "کاربر" - -#: models.py:26 -msgid "Query" -msgstr "پرس و جو" - -#: models.py:28 -msgid "Datetime created" -msgstr "تاریخ زمان ایجاد" - -#: models.py:30 -msgid "Hits" -msgstr "برخورد" - -#: models.py:74 -msgid "Recent search" -msgstr "جستجوی اخیر" - -#: models.py:75 -msgid "Recent searches" -msgstr "جستجوهای اخیر" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "جداکثر نتایج قابل نمایش" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "حداکثر تعداد پرس و جو های هرکاربر که بوسیله سیستم نگهداری میشود." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "نتایج جستجو" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "نوع" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "نوع" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "نوع" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo index 48d5db55ae8076274c7902db5533348b3309f6ce..bff8cca607093788b6c61324e7e17ed35ca11174 100644 GIT binary patch delta 367 zcmYL@Jxc>Y5QZoB5s8T(M6FJ7EmaQg&LrxIO29IL=oNz1dbcJ4a|gSppp957SSD%XdF@>zNP}U=c*13LZfbZ(s(zgK01X9{2)f zP$?1B;MuX4;0Le<>gc~3M04;EZo}Vj1zt9Z7Kl!16-jYnAI8k+(PEh*&?0-3{U4Yo zt0>#aHBV!aFeSK*dvtJ<@_X}%^GyGm cd-}+7^sTj{S8O&P;ZvblBA66$PhdSkf3K88-~a#s literal 1409 zcmY+D%Z?jG6owlJHxn)jHwk5NV3iP+-F7aDdYA|^7bOx7!^D#nENZ%s?TWgqI#ty( z<452D*dP{c2MKmOf!_mOfh{}!N9`MMo2k`HZwJ zs4$@}^}M@suuXN$p4{Zp=Vim*@Y2n5#mmzg7ENH^O}@wJJUQf?S6QyEI3&+5>b?N! zsW!IVBhR5JQEqz{*;gSM&udPO5I#BZ?gi&jJt@?4_Q5!t(MZp=rM=zJv(6#c&PO#0 zQ&XsKnrTpDmr>{7yRq7l-oRc-w=x=}{RgVwSA)Bh4zm0ARC+H>VWODybIbJ=X;fWuHvE!y|Rtb zoA}=C&gjW#Z{3xCH|^{=8*vRv`j=7Uv)IGk8oNa($On$wN8^3+*VSBJe7q8p5EIp$B?X8a7`;4JbCM}9xobytv z#F1v)c&0)$yEtE7%!YNb)Gu_FJayIah22R5;k3)D)iT`SErQXIv8+}J7rznuXP_U+ zrY934rF5@E(B&1MKya!S=as`3)lunuC-O>%gp_EN9QPsY$aezDC@YX5?bg8m0M%YgU* diff --git a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po index 5f7d8ea9c9..af92a22a87 100644 --- a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Christophe CHAUVET , 2014-2015 @@ -11,75 +11,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Recherche dynamique" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termes de recherche" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Recherche" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Recherche avancée" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Rechercher à nouveau" -#: models.py:24 -msgid "User" -msgstr "Utilisateur" - -#: models.py:26 -msgid "Query" -msgstr "Requête" - -#: models.py:28 -msgid "Datetime created" -msgstr "Date et heure de création" - -#: models.py:30 -msgid "Hits" -msgstr "Nombre de vues" - -#: models.py:74 -msgid "Recent search" -msgstr "Recherche récente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Recherches récentes" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Nombre maximum de résultats de recherche à traiter et afficher." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Nombre maximal de recherches à mémoriser par utilisateur" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Résultats de la recherche" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Type" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +94,8 @@ msgstr "Type" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +120,3 @@ msgstr "Type" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo index 3c0ca9262a365874aed8f04a52fbcf9e7c53cb03..0996de828e3ba47adb0916da2dd5713aa5e6028a 100644 GIT binary patch delta 270 zcmZ3TBQV`5<70Me6yv?!3C4Wxn63_uEOHZzb01K-4o%-qskg~Z(a(!7$1$CZVHQxl7l zGZ-M0LP=^-Zt-LfMqg8NT?12HBMSvXQ!5ioT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KD0m>j4i-ha1O4*X?PEQ00*Fs{a1>y9e8twu{oIF71)E9lgK+P@@PE4xbt6`@hS<$ z(WsJ7CXc5EqI}k{Zfv0h_mns%pLd#ElI35t`L!b7Cdq>i_es#`^a>M7l3!#;qoJ`d zAe9@)$u=NgNOpq3!D}O5DHukAdTb3Aly$z?Ad3X3<%ZCkSEp&7q;4(5U) gtB-H9X%I*2@-N0_({x-9;wT`O9JW7+$|PCr7kH_BO8@`> diff --git a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po index 40a344f0eb..6f7f97a483 100644 --- a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Dezső József , 2013 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "keresési feltételek" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Keresés" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Felhasználó" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "A letölthető és megjeleníthető keresési találatok maximális száma." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "A keresési előzmények maximális száma felhasználónként." - -#: views.py:25 -msgid "Search results" -msgstr "A keresés eredményei" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo index a679fe5e4b5967258ab3678677ca5f396b092d17..d83ca56697c81fabfe8f97139d93bf6561eaeb26 100644 GIT binary patch delta 119 zcmaFKe3;qdo)F7a1|VPrVi_P-0b*t#)&XJ=umIvtprj>`2C0F8iJ`u{=DG%^x<(cX xhNf1g1{2pyg9J=;jSLkG&8&>fCSI@Q@kz`}FHKBOwNl7TnHS)7@lr|Xhfl4_-3WMF8j xYha;kWT0SZX=P|IaaZkR7se<%KH6`s`|mC9nIKlc4#>b7cmyWqU=zH84X^+q_yjGm z+90F@`%CY_PhcPT=+B)$FW^(uUvLxNcJ16Hp-9Z)0LF}6YK}31mi=st<%4S=HTDp9q=Xi7I^(lr9J>}fa3oJ_%>L8?}PV2(K+bWzks6m zw4(=KKr4X~_fu?2UO6c1hv2*5&)~OU32uXbfuj2ol(_$bV*ei~d0oXI@jnJd?{iS> z3lJu11WKLG^ zCX_R^XA&ptn99JIR%&n27-!4%{zIFh8k;lgT1UqDwn^O<&9Ftu(+Q_?My9E#vTBk(R^-V!zvoH+xDGgp2$b;j0N>D@Q*Zl|~%!J5k=Xml!-+g5#5l=Yi{igJlZKeg?ePYul*@Cb* ztlMB}{lMc@3To!dW!xEV(`veNv!Ty+XmD%0r;cpNp)_Prtmh^fDN{pCJ{T0)vR2P= z&%7~2P^nsj4^jhoE!1F))_Fn=a_|&7$*?w{%AjJ(7UgFGLmY3{;x^CEvCK#vto&Rj zgRoM(3yHth5(QiOP>H~@jOE%mQzMKa_^Ek4ON5jCF6$Xfe0;EKS5CVc@gqU;!a=Cw Xx?TplU?jC|8%t_p=UyEz!>a!QSaE2V diff --git a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po index 2b7025be3d..6676f8384a 100644 --- a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Carlo Zanatto <>, 2012 @@ -12,75 +12,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-09-24 09:51+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Ricerca dinamica" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Cerca termini " -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Cerca" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Ricerca avanzata" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Cerca ancora" -#: models.py:24 -msgid "User" -msgstr "Utente" - -#: models.py:26 -msgid "Query" -msgstr "Interrogazione" - -#: models.py:28 -msgid "Datetime created" -msgstr "Data e ora di creazione" - -#: models.py:30 -msgid "Hits" -msgstr "Risultati" - -#: models.py:74 -msgid "Recent search" -msgstr "Ricerca recente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Ricerche recenti" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Massimo numero ricerca risultati da recuperare e visualizzare. " -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Numero massimo di query di ricerca da ricordare per utente." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Risultati della ricerca" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -91,7 +95,8 @@ msgstr "Tipo" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -116,6 +121,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo index 3a0ac8dea51cd7dda1eb3ffe2d70abfaa921a5ee..d27a718e5488c7d5c4abda04e1ecc524664d0cb2 100644 GIT binary patch delta 383 zcmYL@y-EW?5XU!nmx!krO<|+rl1h|?y~~H;Dg!pc`9Vl!im)b2JQ8@V&U$j5q={DS zSY$GyArJ7c$-;mJ?I>&?aD*R=G-G`uR5}xxHWBUVD`_$fr@|!KemkRTEY##yOt3`F lhG(%Ix&ym#kL<43s9$P1C3&JsPpFiNPNg(OCqGas@(X2WNy-2K literal 1284 zcmZ{i&u<(x6vs_l`eT8%v=t|W9z7*O-kA+))l3K~ZMJQsZi$j@rE)>e%*(8^GxpZ@ zBw7B3UXl14koXUJ?-U}SZoj85#kcK1zrZ9f>C<_rr;F33H}Iv0KNgE{#WoU_!sy-c=psR?kX6^*TFMj zGUqDz0@^k33jDvH7UCLs0iw9?C*bv{2m9a-80UWgKLURO@rj@D`w)By#ynqv9q<G3*a9hwrl(6z}Vh}y$6fBnB$@$mG*3Lo%67GE~MG656s$E#i24e7vx#Fd?Yqi z;Gk=!+%dX^*qjwGakP{+D%YErdrOqhFVq=TnmX`e$rB4r9Hw4YRJ+7*ic)6{$H z$nGy~PL+*Z=2;z1W>4I|HdwX*2hcW8YL^A)&yo_F_1l zuy~Ax#kR8toCmp8$S3T)wkD&2nkqy6&B1PGhbPtrIq;<}dd`{^~c4Jkht7!_M+~GqV*Zr3+U8CNOY<2Ck6s_}6`5=c*8DFVj zT}J&wuJnPSU8Sm^&6vL6na9r^x64}Ts+-&TOGKNpQ6i@z z)6yt}NtPr>M@QWd_tE=&9HSFwy>i;Rq>jgyT+}{6P`hAas&5}XOqM%?twI0ff_mMw zbJv=H7m@KQGhFL&NbtbgtW!Qx&U4s!JiI4wo#^7G`|M=j, 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-09 15:49+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Dynamisch zoeken" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Zoektermen" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Zoek" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Geavanceerd zoeken" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Zoek nog een keer" -#: models.py:24 -msgid "User" -msgstr "Gebruiker" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "Datumtijd aangemaakt" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "Recente zoekopdracht" - -#: models.py:75 -msgid "Recent searches" -msgstr "Recente zoekopdrachten" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Het maximum aantal zoekresultaten." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Het maximum aantal zoek-opdrachten dat per gebruiker wordt opgeslagen" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Zoekresultaten" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Type" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -89,7 +94,8 @@ msgstr "Type" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -114,6 +120,3 @@ msgstr "Type" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo index 3d15ba3e621bdd005b206a66d56f906d2619b31b..f354348c046a2d6afcdaf91f896125ff29b80095 100644 GIT binary patch delta 580 zcmYL_J4*vW6otn;3~GEJ5)qY*g~2EbJDbGEnpFg`kO*Q#1*>c zfDfR8Z_p10`UnX_$2vL-jrs^#gigWV^%F7)%|ln9O{koEhK>_*Lf()}!1#h<#%s#Q z$bdzHUe^0yHwnmcD}T*J&dgKC^=@ed^O(-8UVqn0Co=9pB#YilU|z zZI!Z=o>JXU-*f^_QqdS?%euC_q#_10+^HysHWyBjS1enn2iBQsS1hQ*?Skd%{%knI z#d(#Vn>sBQ-8=tjYrj~vc~RN1aFQ1A2Rj6@MFx`j1+Ef-Lza+<=&);up*%DSwc5i}_KP2RR9RL6T literal 1446 zcmZvbTW=gS6vqve+j3RKMMxDoFH{N0yEB_ms!2AbG^wb>(lpr+sfY(>#=Gn6j6K+% zPG;2?P$k3%0EyCPBwqLgJT_mWJn=pFd$ZZ36_z|d``moavFFLf3%@Xow=pkaKEixI zte?XN;|P2UY`|diGx#R>5WE2X2}a;w;1%#6@I~;w=NWqgyaWdSkHMF~1biL54u&{i z&-dSfA>QGf2K*PXJoo|RccBb%JQ(tO0KN)70zU))0Iz{h=JF4b#Jkup&A9=F^9SHX z@Y^{x_zw0zfG>c*g0F!OK^#9DL5?&QBb@s(W(zaa66(OQi}4Cpa9@njhmd=S8*&JJ zWY@EMLZ>n#CxuPNY*TpYRUs+063dKjHd+)aJ=K4yykmWFq>8E_QJ6~mxr)Y6kvBAy zJ{^ll_TA`&P!W3HfT!8_7I+JTXQH=&u?Y?8)=;~I-$O3gr=>{{%&hW zmd1MCcO#YYFRGE_1Cvl|`}Tm}2)%(l58X^U^55d(?9tDSvHBMM%Y^Mmda+wvblh0#x z%Dl7O>fh>bowX!xN39!1d)xsJ%}dD3BM(b-dX3Vtuul5k-ry#`dS(|+97@Z#bZRoC zM+sd$P=1kXLS^3C&MPZ&e$(Ju64K>t>v}6|PzFtJN%wj&U89Jg{wR(%dR@AFdA3~d zt%l`N5J&5AMECE{b>pVhL}9IDcGUmH7>T8Yz_ zK7G~>cQaHoi@un+rVzOnl&f@lAPB96?)U*^2EmViua)$9uqD{Y3EH4!c>d4&og^Yo z9H*khFZTF159^s@Ox5wc>EKU gMu&(JBE&r(0>;NbqD3cVgdT-d!oR}y&N5;D0h`Z>O8@`> diff --git a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po index 5000f72507..18c6cf7978 100644 --- a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -12,75 +12,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Dynamiczne wyszukiwanie" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Słowa do wyszukania" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Szukaj" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Zaawansowane wyszukiwanie" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Wyszukać ponownie" -#: models.py:24 -msgid "User" -msgstr "Użytkownik" - -#: models.py:26 -msgid "Query" -msgstr "Zapytanie" - -#: models.py:28 -msgid "Datetime created" -msgstr "Data utworzenia" - -#: models.py:30 -msgid "Hits" -msgstr "Trafienia" - -#: models.py:74 -msgid "Recent search" -msgstr "Ostatnie wyszukiwanie" - -#: models.py:75 -msgid "Recent searches" -msgstr "Ostatnie wyszukiwania" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maksymalna liczba trafień do wyświetlenia na ekranie." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maksymalna liczba wyszukań do zapamiętania na 1 użytkownika." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Wynik wyszukiwania" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Typ" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -91,7 +97,8 @@ msgstr "Typ" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -116,6 +123,3 @@ msgstr "Typ" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo index 976debfc74e4965454a80bbc66a01ebdaca45d85..f29d67338cd218542e920d4b1e034c1effa779ca 100644 GIT binary patch delta 251 zcmXBNKM%n`7{~FaRVva%Ff#NFTyoba(wU8D7)^~7P5cXG6S1)fxfr|-Mytg@ya6x3 ztMJ2IjE1c2g}!52TwpKHEMba*V-@6ESr}Ds*qwP@JdZ=!QCsq^julsKBiRou?k+|E delta 486 zcmYL@yGjE=6ow}^BS}z1DD`KI17959gtuN_wO_zHeAXOvJP*+$lN9)99Ga6!)5pZF2GMP-jX~p zWx`D5fC(^Vmd1ZcW^%iA(&CrWk9|6b{WGCxa89-0%Dte&SSTqpjRLBKFQ#8ZOvGBK zHL^b)`V|Ir+>i9^8VTiV(#7E9qgAV0wrx2T%A7{6YOyL~h4!A+5hJN(Ft9dxBpTFV zcHLqX%dx3rH<**0rmmB()KPJl4|*~0VI)kNX_efhmt8j)m^`j2N3rXHu^tbKqbO-uZ@x_{5f57nG-6aWAK diff --git a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po index de9de3e71c..d4efd4b619 100644 --- a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -10,76 +10,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termos de pesquisa" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pesquisa" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Procura Avançada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Utilizador" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Número máximo de resultados a buscar e mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Número máximo de consultas a recordar por utilizador." - -#: views.py:25 -msgid "Search results" -msgstr "Resultados da pesquisa" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -89,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -114,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo index 1a206e225053170d6a89a55d2be5b1e3b63fac17..4a31952d75162b098106435f62e06836c6b90d24 100644 GIT binary patch delta 381 zcmYL@Jxjwt7{{-9sajtm?bsG>RS6`~R0&eBh*Mok2Ejqja5G;aQQ05s};03IJ32?wW zsDgzGAxrS;%x(Aqtb;oG6YX#Q6W&Gr4bQ`CIw1{0j);d#`S1Y7%=FW8nKEb*b9(zf zFi(uK+>5VR8u6G)&O~%Z_ODYmN}^e*o+_RSw5FMJF_KDZhs)cxjK)d&`iM=KIybtiWwsk3cE}`+IURF(StOE?U!m$s%K!iX literal 1393 zcmZ9L&2C&Z6vquMA00kg6{&2pI2)t{61Ly7sA z*cMcnP)&H+TshdfJQYuFce z!pIbQza9lWa2YlFUkvo4R2%HqsahFz+nu|*)6w1A)b3`V-qGzl?KU>*V>vS^?*I06 zKBI0o>u!J2Mr(Y|A?kr=8zvl`&uDLAtk97c6FJa*PSc0;?{Kl!%w5?$^$*}`M>UT` z4}{B%`pCB))e?j@_dS1WCR?;QjdG5a8K_u1e`Z?E^ILx?ot{QxjLYXEZ;n(Vx_wC;G_YkutK?d>VGUJG26euV}#WtFP3!!rM3PMJlTtaYxDn=Bh zRs7Qw!Xs|!0*VJkKArthig!y-M+lNTn`DNk!er$-4~2)AK-2IfXbGaOXRlE5CT`$I z_;YxD6+aibtQG>)n`94#_m|gQ**sZy#$~eNcbFeuAp2sSxf($0X=$C28kovK_=^, 2016 @@ -11,75 +11,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 22:28+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Busca dinâmica" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termos de pesquisa" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pesquisa" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "pesquisa avançada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "pesquisar novamente" -#: models.py:24 -msgid "User" -msgstr "Usuário" - -#: models.py:26 -msgid "Query" -msgstr "pergunta" - -#: models.py:28 -msgid "Datetime created" -msgstr "Hora e data criada" - -#: models.py:30 -msgid "Hits" -msgstr "visitas" - -#: models.py:74 -msgid "Recent search" -msgstr "pesquisa recente" - -#: models.py:75 -msgid "Recent searches" -msgstr "pesquisas recentes" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Quantidade máxima acessos para a pesquisa buscar e mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Número máximo de consultas de pesquisa para se lembrar por usuário." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Resultados da pesquisa" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +94,8 @@ msgstr "Tipo" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +120,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo index 088aa8c54a9a4ffb23877721fe7e347298d137ed..c14c8cf775d7271bf756bb685f09ac450ccdbc25 100644 GIT binary patch delta 264 zcmcc4ex9}do)F7a1|VPoVi_Q|0b*7ljsap2C;(yuAT9)AHXvRE#5_Q}5{Qp8GB9id z(w0D6$Hc(E4y1PgX+9u*07wI+8GsbnY-S)02EK_EnYpF83W>S-rFkV2uPX}&rzRF9 zXD~o0g_6{w+~UcxjJ_u3x(24YMivT&rdFl~x&|f&23!IDxri}K@x{3oX|MNhuS)GzLQq`9=@NHc?T NB8URpl$w{x008N=J3IgY delta 488 zcmX|*y-Ncz9ENkXwW8I6gNqKC#O0*dFSTny7pqX~poki4tbxm2&0SEtICOHe94_MI z|KQ+Wu!7Lh%|FD+H}&j~d+y1{FUdPheWmZd=aY{FH3gQy5tsqbz|;Wbzy~OUA210V zi;y{Z9nQd8a1w6BK7ilBG1$QR^2DD{;WXw?@B$&5C lA0ew|qu(WU-a$MTayM=^Ck3f8vrA1{?g`QmZKB7g$uDW`c9{SG diff --git a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po index 0ed1fba0ba..68764412af 100644 --- a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,75 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-04-17 13:16+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Caută termeni" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Căută" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "utilizator" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Căutare suma maximă hit-uri pentru a prelua și afișa." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Numărul maxim de interogări de căutare per utilizator." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Rezultatele căutării" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tip" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "Tip" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "Tip" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo index d73434dd4c6a7efd62f1cb4623e7c0d5b66045e2..f9ef60ec85b37e01aa5518ac8adcc948765efa7e 100644 GIT binary patch delta 278 zcmZqR`ps5`R!U6;g?R4WA| z14E!X6I~-i1w%6{BeTi(8LN1F67$ka6VrjxMWvG?n4&iyV6tUYn}1>7g&h|gFYIEt Xuoy_~268t61^N{(?1#x**uVe)Giynb delta 562 zcmZXOO)o=17=_>4`U*v2gOp_afHu7-(uE}(U132)Qq8C)u8(_r1)CP>ibR?lk%)x& z1&z;!YBv_Fyz>Xd&VRtdxoz2)S)sSgUzjf3d5mpn_1I=`xqNpmz8kyj1%tEBKD{Tviz_ z!G>8guq|?dA8~oZ#cJ}JAJm~hH_x|xjl>m~1iK?2)B)z8&3Uzp0&+p(GdPvUh|gi( gsl9GDi3Cz=zgn&SChyF9dj((M$#S*$f8+uE08aPHpa1{> diff --git a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po index a5a53b29bd..94b98432d0 100644 --- a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po @@ -1,82 +1,88 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-23 01:14+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Условия поиска" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Поиск" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Пользователь" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Максимальное количество отображаемых документов из результатов поиска." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Максимальное количество поисковых запросов запоминаемых для каждого пользователя." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Результаты поиска" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Тип" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +93,8 @@ msgstr "Тип" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +119,3 @@ msgstr "Тип" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo index a38aad318193a7edfccdd1414672f5a1702189c4..b6a481b423b1cade0558e29c83ffd8b9e00d7ec1 100644 GIT binary patch delta 87 zcmeBU>0_DDYHF@)V5)0mpnU}9jv72vNMlvylWKYNcRgU0_DDYHFryXsBystYBbdWon{pU}9jv72vNMlvylWKYNcRgU}&mq pV4-VdpkQceWoR&QSJ&ha#wdQD#Ju#<#B`vF;+*(k&&g{U69ETw88-j` diff --git a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po index d7f1f67e7c..958c21f9d4 100644 --- a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po @@ -1,82 +1,87 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2015-08-20 19:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" -#: views.py:25 -msgid "Search results" +#: views.py:64 +#, python-format +msgid "Search for: %s" msgstr "" -#: views.py:32 -msgid "Type" -msgstr "" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo index 39ab23e3960a45baf6f82234ccc5c0906129f95b..7af83bc5d371a63966c50ac94dd8aa0e152d5b67 100644 GIT binary patch delta 190 zcmaFO`ky)co)F7a1|VPpVi_RT0b*7lwgF-g2moR>APxlLS&R$}5kQ(7h(80_Km-RM z{a_HBnpl*aG4YnKskyF!sjiWQf}yFEse!J6iGcxEfWK}~YFTD+W`3ToOJYf?m4cCh zAyA!(u92aFp_!GD+2k0;ZhoJ{y!6tFbn!Y9dy?LD1bxI z2Ohu>cm^5p3Qkjuy~8u0*~8cXd<&1lk8n5t0V9^Y1F>|sFt*AtPcC95XV(*2kkn$G z`_$N^fIEJ*Mmw7O9uG)0$mfD5yW2?UfculIl7xPRK%na?V2jubmrH|%tYu~GJmu`- z^i+5=hCwc$wJox(V$KfVj#?_UGCc1{S352*Qqx;oDz{!z6S`vJkd&|YsA-}LNp%yq zCCM5ZMO71BCQaO?YOO)S#3vp}_vzZiXC7^I?xf2WI#+_WJQLjuHixS46BC`2`ZF*8 GKk@@=czG27 diff --git a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po index 7737c0f1bd..416192858d 100644 --- a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Tìm kiếm" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Người dùng" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Số truy vấn lớn nhất cần nhớ cho mỗi người dùng" - -#: views.py:25 -msgid "Search results" -msgstr "Kết quả tìm kiếm" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo index c375b730c54648f6f0c8995847e29e89f37272d5..063cf8b60c7cdb4427d50423aef1d6cacea06952 100644 GIT binary patch delta 258 zcmcb{*2r3aPl#nI0}!wPu?!H~05K~N#{e-16acXS5ElY58xSu7Vjdt~3B*$v85p(! zX%!&$W`f8U0BKGjzZ^&dr5S(}*lcDX4F!XKlTR_W^7|y_rI#kA1Es4n;+_2_`!PjN-pS-GFk#N~EsGeQfvJ}Z HcQOC~ZO}QR delta 431 zcmZo;Pf|Al?bYWqv`tODfUV`5;?1=7sS5PgO~8l>I=NOOXWbcIUz18JZhIADdc zK!yUPzyRb(kmXDhb4}xX6Du-vOLGpeRhfK(*7rZz z(ePx)s^?QyJnPv0th3=o^WG=>=RRFKO_SPkuIU4wUn9;Z6pK5exuZh, 2014 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "搜索项" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "搜索" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "用户" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "搜索的最大查询和显示数量" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "每一个用户所能保存的最大查询数" - -#: views.py:25 -msgid "Search results" -msgstr "搜索结果" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/serializers.py b/mayan/apps/dynamic_search/serializers.py new file mode 100644 index 0000000000..91e60ad6a1 --- /dev/null +++ b/mayan/apps/dynamic_search/serializers.py @@ -0,0 +1,11 @@ +from __future__ import unicode_literals + +from rest_framework import serializers + +from .classes import SearchModel + + +class SearchModelSerializer(serializers.Serializer): + app_label = serializers.CharField(read_only=True) + model_name = serializers.CharField(read_only=True) + pk = serializers.CharField(read_only=True) diff --git a/mayan/apps/dynamic_search/tests/test_api.py b/mayan/apps/dynamic_search/tests/test_api.py index e8483a90a4..9c5fdf24a3 100644 --- a/mayan/apps/dynamic_search/tests/test_api.py +++ b/mayan/apps/dynamic_search/tests/test_api.py @@ -6,23 +6,22 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.search import document_search from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) +from ..classes import SearchModel + @override_settings(OCR_AUTO_OCR=False) -class SearchAPITestCase(APITestCase): - """ - Test the search API endpoints - """ - +class SearchAPITestCase(BaseAPITestCase): def setUp(self): + super(SearchAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -55,3 +54,13 @@ class SearchAPITestCase(APITestCase): content = loads(response.content) self.assertEqual(content['results'][0]['label'], document.label) self.assertEqual(content['count'], 1) + + def test_search_models_view(self): + response = self.client.get( + reverse('rest_api:searchmodel-list') + ) + + self.assertEqual( + [search_model['pk'] for search_model in response.data['results']], + [search_model.pk for search_model in SearchModel.all()] + ) diff --git a/mayan/apps/dynamic_search/urls.py b/mayan/apps/dynamic_search/urls.py index 1300f2fa61..3c78896e71 100644 --- a/mayan/apps/dynamic_search/urls.py +++ b/mayan/apps/dynamic_search/urls.py @@ -2,7 +2,9 @@ from __future__ import unicode_literals from django.conf.urls import url -from .api_views import APIAdvancedSearchView, APISearchView +from .api_views import ( + APIAdvancedSearchView, APISearchModelList, APISearchView +) from .views import ( AdvancedSearchView, ResultsView, SearchAgainView, SearchView ) @@ -24,6 +26,10 @@ urlpatterns = [ ] api_urls = [ + url( + r'^search_models/$', APISearchModelList.as_view(), + name='searchmodel-list' + ), url( r'^search/(?P[\.\w]+)/$', APISearchView.as_view(), name='search-view' diff --git a/mayan/apps/events/api_views.py b/mayan/apps/events/api_views.py index 37c56e6054..35cc03c14c 100644 --- a/mayan/apps/events/api_views.py +++ b/mayan/apps/events/api_views.py @@ -1,7 +1,6 @@ from __future__ import absolute_import, unicode_literals from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import PermissionDenied from django.http import Http404 from django.shortcuts import get_object_or_404 @@ -9,7 +8,6 @@ from actstream.models import Action, any_stream from rest_framework import generics from acls.models import AccessControlList -from permissions import Permission from rest_api.permissions import MayanPermission from .classes import Event @@ -38,18 +36,14 @@ class APIObjectEventListView(generics.ListAPIView): raise Http404 def get_queryset(self): - object = self.get_object() + obj = self.get_object() - try: - Permission.check_permissions( - self.request.user, permissions=(permission_events_view,) - ) - except PermissionDenied: - AccessControlList.objects.check_access( - permission_events_view, self.request.user, object - ) + AccessControlList.objects.check_access( + permissions=permission_events_view, user=self.request.user, + obj=obj + ) - return any_stream(object) + return any_stream(obj) class APIEventTypeListView(generics.ListAPIView): diff --git a/mayan/apps/events/apps.py b/mayan/apps/events/apps.py index 620171d205..b866d0d459 100644 --- a/mayan/apps/events/apps.py +++ b/mayan/apps/events/apps.py @@ -13,8 +13,8 @@ from .widgets import event_type_link class EventsApp(MayanAppConfig): + has_tests = True name = 'events' - test = True verbose_name = _('Events') def ready(self): diff --git a/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo index 638915ddaa57d118dbe88b7dce636b92b13d759c..1778eb79f0ac2f7cb3136f93477cec0044e4d1aa 100644 GIT binary patch delta 44 zcmaFM@|I=7US4xu15;fi3k5?{D^r7sr&ja$B<7`;CZ?xaDI^w6E@6zGe1~x&08%Xv Ai2wiq delta 44 zcmaFM@|I=7US2a@LqlC7V+8{vD^rt+r&dpHVvOSPNz6+xO-xU\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "اسم" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Event type" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo index 1919fbabde72828cb29a322237564421b5e33781..ccc56cb9327440ab6b55881293181f64b78a09d4 100644 GIT binary patch delta 44 zcmdnUvXN!NUS4xu15;fi3k5?{D^r7sr`GZKB<7`;CZ?xaDI}#&E@zCMe4jB006onP A(EtDd delta 44 zcmdnUvXN!NUS2a@LqlC7V+8{vD^rt+r`AnwWsKtSNz6+xO-xU\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Име" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Тип на събитието" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo index 54b4822e9c45c125ce1a9b11471bd9027e1083ac..4fb824e09cc1330e415983e7a2bcbbbbc8f5e252 100644 GIT binary patch delta 47 zcmZo+ZDF0Tm)Bg^z*N`BLc!3~%G6-usT2G@iFxUziRr0U3Q5KBPL7i&GDc7S!`J}; DUW5\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Ime" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tip događaja" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/da/LC_MESSAGES/django.mo b/mayan/apps/events/locale/da/LC_MESSAGES/django.mo index 6adf76f67b9dabdb08777a306a6e95ab037e0eac..35d7ea9ca115613f8ac885da280736a8cd03ce94 100644 GIT binary patch delta 44 zcmbQkGKXctUS4xu15;fi3k5?{D^r7sr&ja$B<7`;CZ?xaDWoJ$E@6zGe238i05&TQ AhyVZp delta 44 zcmbQkGKXctUS2a@LqlC7V+8{vD^rt+r&dpHVvOSPNz6+xO-xU\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Navn" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Hændelsestype" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo index 2da539b583a2770515680ab2764243fc35411d61..84e80f5a10ba63ad65ea17ba59523e94c4106c98 100644 GIT binary patch delta 49 zcmX@Xae`xmA``E{62|!>7|M3sa6UpsqrqZlixB$PmW;z F003Oo4}t&y delta 49 zcmX@Xae`xmA``EfuA!l>k+Fh-k(H^*WId(>lm9VA@%tp^rI#kAr&=kbq{h3rP7Y`O F2mocr4~YN( diff --git a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po index 6d89566f11..682aa9c65d 100644 --- a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Ereignisse" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Zeitstempel" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Akteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verb" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Unbekannter oder obsoleter Ereignistyp: {0}" @@ -42,11 +43,11 @@ msgstr "Unbekannter oder obsoleter Ereignistyp: {0}" msgid "Name" msgstr "Name" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Ereignistyp" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Ereignistypen" @@ -54,16 +55,16 @@ msgstr "Ereignistypen" msgid "Access the events of an object" msgstr "Auf Ereignisse eines Objekts zugreifen" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Ziel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Ereignisse für %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Ereignisse des Typs %s" diff --git a/mayan/apps/events/locale/en/LC_MESSAGES/django.mo b/mayan/apps/events/locale/en/LC_MESSAGES/django.mo index d15d45dedaf563da3f42b1d2338a376644e275ed..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +42,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +54,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/es/LC_MESSAGES/django.mo b/mayan/apps/events/locale/es/LC_MESSAGES/django.mo index b18574b7e9360d49572e52c7164b93b9340f76eb..86adf84f3152e608bb75d1f6e29ae7eb7eb42827 100644 GIT binary patch delta 46 zcmZ3*v5I4ZA``E7|M3sa6W9#gor7MNc+o{tN&m C1r87Z delta 46 zcmZ3*v5I4ZA``EfuA!l>k+Fh-k(H^*WId)ulkYM`@%SX>rI#kAr&=kb7Ed-~{sI6g C`3@8S diff --git a/mayan/apps/events/locale/es/LC_MESSAGES/django.po b/mayan/apps/events/locale/es/LC_MESSAGES/django.po index 57148077aa..c121ee38dd 100644 --- a/mayan/apps/events/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/es/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventos" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Marca de tiempo" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Actor" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo de evento desconocido u obsoleto: {0}" @@ -43,11 +44,11 @@ msgstr "Tipo de evento desconocido u obsoleto: {0}" msgid "Name" msgstr "Nombre" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipos de eventos" @@ -55,16 +56,16 @@ msgstr "Tipos de eventos" msgid "Access the events of an object" msgstr "Acceder a los eventos de un objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Objetivo" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventos de tipo: %s" diff --git a/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo index 1986fe5661463f933ec2ee1d679da0aea7ad0328..cac92a7facd96a0fca4a6c971575413e1b3ee255 100644 GIT binary patch delta 47 zcmcb?af4%nA``E7|M3sa6VUiIdMWMQ=7|R%8SK DLGcZ$ delta 47 zcmcb?af4%nA``EfuA!l>k+Fh-k(H^*WId)ulkYM`@%SX>rI#kAr&=kbC2lrjR$>GI DM=cGm diff --git a/mayan/apps/events/locale/fa/LC_MESSAGES/django.po b/mayan/apps/events/locale/fa/LC_MESSAGES/django.po index fdbecdb7c0..d6e62b0780 100644 --- a/mayan/apps/events/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/fa/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "رویداد" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "علامت زمان" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "فعال" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "فعل" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "نوع رخداد ناشناخته :{0}" @@ -43,11 +44,11 @@ msgstr "نوع رخداد ناشناخته :{0}" msgid "Name" msgstr "نام" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "نوع رویداد" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "انواع رخدادها" @@ -55,16 +56,16 @@ msgstr "انواع رخدادها" msgid "Access the events of an object" msgstr "دسترسی به رخدادهای یک شی" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "هدف" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "رخدادها برای : %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "نوع رخداد ها: %s" diff --git a/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo index 77337e191549cf8aad59c06e0869ab9204643a0a..12e1dcbe6d658b8647e47dc2c5adeb7d46d39b20 100644 GIT binary patch delta 47 zcmcc1ahGF*A``E7|M3sa6VUMUy`=MQ@H|W?=*X DNYf4u delta 47 zcmcc1ahGF*A``EfuA!l>k+Fh-k(H^*WId)Mlm9bC@%SX>rI#kAr&=kb6>W}SW@Q8b DPlXN= diff --git a/mayan/apps/events/locale/fr/LC_MESSAGES/django.po b/mayan/apps/events/locale/fr/LC_MESSAGES/django.po index c78acee5ab..f58be34d7b 100644 --- a/mayan/apps/events/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 # Thierry Schott , 2016 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Événements" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Horodatage" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Acteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbe" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Type d'évènement inconnu ou obsolète: {0}" @@ -44,11 +45,11 @@ msgstr "Type d'évènement inconnu ou obsolète: {0}" msgid "Name" msgstr "Nom" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Type d'évènement" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Types d'évènement" @@ -56,16 +57,16 @@ msgstr "Types d'évènement" msgid "Access the events of an object" msgstr "Accéder aux évènements de cet objet" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Cible" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Évènements pour: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Évènements de type: %s" diff --git a/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo index 57aedc7ac1a0ee1bdcb593c3f8c1e4d8d4c836f5..9ed93d2a9046525348df6efcc2038caff9d723ef 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8rqRN$Yrg67$ka6Vp?z6f#OD+cQQ_Ue2fk06Do1 AApigX delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8r?ZN$V#2GDh+EB<7`;CZ?xaDP)vRUdE^k05?Sr AB>(^b diff --git a/mayan/apps/events/locale/hu/LC_MESSAGES/django.po b/mayan/apps/events/locale/hu/LC_MESSAGES/django.po index 4e89537548..0af102f610 100644 --- a/mayan/apps/events/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/hu/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/id/LC_MESSAGES/django.mo b/mayan/apps/events/locale/id/LC_MESSAGES/django.mo index 4e637dac22f1c8ba6f57b864bfce4ab5c3690989..fc681bab0a4ed4789e9d6566c1660b8e83dc1c5c 100644 GIT binary patch delta 44 zcmX@he3p4aE3dh(fvK*Mg@U1}m8rqRN$Yuh67$ka6Vp?z6f#pLJ1|C1Ucsme05?Al A0RR91 delta 44 zcmX@he3p4aE3cWZp`oskv4Vk-m8r?ZN$V&3F-GzDB<7`;CZ?xaDP*QhUe2fn05up6 A1poj5 diff --git a/mayan/apps/events/locale/id/LC_MESSAGES/django.po b/mayan/apps/events/locale/id/LC_MESSAGES/django.po index 0848f551e6..8787eba9e1 100644 --- a/mayan/apps/events/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/id/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/it/LC_MESSAGES/django.mo b/mayan/apps/events/locale/it/LC_MESSAGES/django.mo index 1829b983835063ff1efab7154512c6d791708970..3442d52647394354d5c3581b7acaf1b3cf229ea2 100644 GIT binary patch delta 46 zcmdnVv6EwiA``E7|M3sa6V^C6nJUMNbZ4ehL6C C4i0<( delta 44 zcmdnVv6EwiA``EfuA!l>k+Fh-k(H^*WId++lYcQqarq?XrI#kAr&=jY4rG1-02kv8 Ap#T5? diff --git a/mayan/apps/events/locale/it/LC_MESSAGES/django.po b/mayan/apps/events/locale/it/LC_MESSAGES/django.po index f0aa989ff6..fbc0d414d1 100644 --- a/mayan/apps/events/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/it/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 09:51+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventi" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Attore" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo di evento obsoleto o sconosciuto: {0}" @@ -43,11 +44,11 @@ msgstr "Tipo di evento obsoleto o sconosciuto: {0}" msgid "Name" msgstr "Nome " -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipi evento" @@ -55,16 +56,16 @@ msgstr "Tipi evento" msgid "Access the events of an object" msgstr "Accedere agli eventi di un oggetto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destinazione" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventi per: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventi di tipo: %s" diff --git a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo index 5b66b506362749c627953b4719f31c19a5f709ed..643eee3741aa0e302e7475b291c37f957cac5148 100644 GIT binary patch delta 49 zcmaFD@q}Z8A``E7|M3sa6VkIq`lzlYcWsPflb0 F2LNiu5EK9a delta 49 zcmaFD@q}Z8A``EfuA!l>k+Fh-k(H^*WId*HlX;k<__&8a^n4bCZ{t0 F2LN3r4;%mh diff --git a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po index 22e933bec6..afc428905d 100644 --- a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-10-28 12:33+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Evenementen" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Acteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Werkwoord" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Onbekende of verouderde evenementsoort: {0}" @@ -43,11 +44,11 @@ msgstr "Onbekende of verouderde evenementsoort: {0}" msgid "Name" msgstr "Naam" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Evenementsoort" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Evenementsoorten" @@ -55,16 +56,16 @@ msgstr "Evenementsoorten" msgid "Access the events of an object" msgstr "Benader de evenementen van een object" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Doel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Evenementen voor: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Evenementen van soort: %s" diff --git a/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo index e9c0269e7bcbf1769618cfec21b8bee0ac8d7b5e..db5eccc22b0f3c118656dc128700d2975853b5fa 100644 GIT binary patch delta 47 zcmcb|agSqzA``E7|M3sa6UFIg`&ZMQ=7^)?fqx DMBok2 delta 47 zcmcb|agSqzA``EfuA!l>k+Fh-k(H^*WId*ZlkYG^@%SX>rI#kAr&=i#, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Zdarzenia" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Pieczęć czasu" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Czynnik" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Słowo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Nieznany, bądź przestarzały typ zdarzenia: {0}" @@ -43,11 +45,11 @@ msgstr "Nieznany, bądź przestarzały typ zdarzenia: {0}" msgid "Name" msgstr "Nazwa" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Typ zdarzenia" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Typy zdarzeń" @@ -55,16 +57,16 @@ msgstr "Typy zdarzeń" msgid "Access the events of an object" msgstr "Dostęp do zdarzeń obiektu" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Cel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Zdarzenia dla: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Zdarzenia typu: %s" diff --git a/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo index cd38e9345cfd6de4c7c60661886a060ff403b224..d4755b5fd3946744e556573b5ce2c902946f94ad 100644 GIT binary patch delta 46 zcmZqYXy@3#&cti3YhbEtWT9YaYGrCLS%hglk56J=dTC;Ms+B@P$>c*!(UY~9?*af5 C8V!E{ delta 45 zcmZqYXy@3#&cth`YiOuzWUOFdWMyhHS%hi*7|M3sa6UFlQo#{0{{ta B4GsVR diff --git a/mayan/apps/events/locale/pt/LC_MESSAGES/django.po b/mayan/apps/events/locale/pt/LC_MESSAGES/django.po index fde6da4894..31f07dbfb2 100644 --- a/mayan/apps/events/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/pt/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Events" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Actor" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo de evento obsoleto ou desconhecido: {0}" @@ -42,11 +43,11 @@ msgstr "Tipo de evento obsoleto ou desconhecido: {0}" msgid "Name" msgstr "Nome" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipo de eventos" @@ -54,16 +55,16 @@ msgstr "Tipo de eventos" msgid "Access the events of an object" msgstr "Aceder aos eventos de um objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destino" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Tipo de eventos: %s" diff --git a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo index 4bcc7bdbf124087076c6193518e28b0115dd4e39..7742fe96d9dae36317f2e3200167df680ff72cd5 100644 GIT binary patch delta 49 zcmdnMv4LZQA``E7|M3sa6UFCGk!{lkYJ_PxfSf F4ggbd4?+L{ delta 49 zcmdnMv4LZQA``EfuA!l>k+Fh-k(H^*WId*hlixE%@%tp^rI#kAr&=i#l*Bs)P4-}Z F0RURs4@m$3 diff --git a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po index aa020a2ac5..a2f19eb158 100644 --- a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 # Rogerio Falcone , 2015 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventos" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Ator" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Desconhecido ou obsoletos tipo de evento: {0}" @@ -44,11 +45,11 @@ msgstr "Desconhecido ou obsoletos tipo de evento: {0}" msgid "Name" msgstr "Nome" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de Evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipos de Eventos" @@ -56,16 +57,16 @@ msgstr "Tipos de Eventos" msgid "Access the events of an object" msgstr "Acesse os eventos de um objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destino" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventos do Tipo: %s" diff --git a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo index be7128e4d1c690d932aa403f06f459d68b7338ee..119b89e1f60d36008f1199fb678a5e8401b7fe67 100644 GIT binary patch delta 47 zcmcb{a*bueUS4xu15;fi3k5?{D^r7sr*`rCB<7`;CZ?xaDHP?$2l-EKW{jTvjxhrO DdsYy0 delta 47 zcmcb{a*bueUS2a@LqlC7V+8{vD^rt+r*=)A!WhNxlbDxYnwXwyrBIX~ALKvzEn_AC DeBls! diff --git a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po index 01cfb63d8c..c8e7d0b151 100644 --- a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Nume" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tip eveniment" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo index ee66c977d914e7c7d5eccdfdfbfa2247c2292ebc..547366a0cca4ed61528257a185933ac939aa3b9d 100644 GIT binary patch delta 47 zcmdnSwT)|oA``E7|M3sa6U_rISxFMQ=7@W?=#V DHqi}V delta 47 zcmdnSwT)|oA``EfuA!l>k+Fh-k(H^*WId+2lW#CZ@%SX>rI#kAr&=i#m2Ng=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "События" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "временная метка" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Субъект" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Глагол" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Неизвестный или устаревший тип события: {0}" @@ -43,11 +46,11 @@ msgstr "Неизвестный или устаревший тип события msgid "Name" msgstr "Название" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Тип события" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Типы событий" @@ -55,16 +58,16 @@ msgstr "Типы событий" msgid "Access the events of an object" msgstr "Доступ к событиям объекта" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Объект" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "События для: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "События с типом: %s" diff --git a/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo index d37939c3eda2b38923695364a8235b761ecff255..3d73e2761e5487acaf37e6a7f24555ca16381a8b 100644 GIT binary patch delta 47 zcmdnVvXf=PB3^S{15;fi3k5?{D^r7s>-X^cB<7`;CZ?xaDHP|#2YXJ=VvL@Al`#bX DXs-{* delta 47 zcmdnVvXf=PB3?6HLqlC7V+8{vD^rt+>-S8qW{l$ZNz6+xO-xU\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Ime" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo index 26f50e67a33ac4e2bca8159ca970726c5a0a332f..11afdfa3fb1265f4440a9de4a361074d6dd13853 100644 GIT binary patch delta 47 zcmZ3-vW{iKUS4xu15;fi3k5?{D^r7sr}pyuB<7`;CZ?xaDU@Z#hxtuzV~n2sks&KSk-lbDxYnwXwyrBId`ALcjt1EU=P DZuSrf diff --git a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po index 228280c72f..d5f637a8fa 100644 --- a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Tên" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Loại sự kiện" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo index f6bcb07fd9d3ec6d620617236637a6f5c6c88b81..b26565ae3f1fcbba84c5cf3c6fa83901a8540fdd 100644 GIT binary patch delta 47 zcmZ3&vV>*AUS4xu15;fi3k5?{D^r7sr?&I^B<7`;CZ?xaDO6>|JNr#;V2qypn$Z#f DXgd$c delta 47 zcmZ3&vV>*AUS2a@LqlC7V+8{vD^rt+r?yX?$QZ@%lbDxYnwXwyrBIa-@9a1E6{8gZ DY0?kR diff --git a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po index 9b71cf75b7..87c507adc4 100644 --- a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "名称" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "事件类型" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/tests/test_api.py b/mayan/apps/events/tests/test_api.py index dadc0f531a..63cea28c6c 100644 --- a/mayan/apps/events/tests/test_api.py +++ b/mayan/apps/events/tests/test_api.py @@ -2,10 +2,10 @@ from __future__ import unicode_literals from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase -class EventAPITestCase(APITestCase): +class EventAPITestCase(BaseAPITestCase): def test_evet_type_list_view(self): response = self.client.get(reverse('rest_api:event-type-list')) self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/folders/apps.py b/mayan/apps/folders/apps.py index 0d1a0eed95..8de30eb12b 100644 --- a/mayan/apps/folders/apps.py +++ b/mayan/apps/folders/apps.py @@ -28,8 +28,8 @@ from .permissions import ( class FoldersApp(MayanAppConfig): + has_tests = True name = 'folders' - test = True verbose_name = _('Folders') def ready(self): diff --git a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo index 00b45bf3bfb34e762e5035171b6b13b8c40bda9d..39909d5bde9e6493477009861c814df06a154fc1 100644 GIT binary patch delta 390 zcmXYrzfZzI6vwYWl?I49xClvSwFzx(Z5jtLj1K;oj4q8-282dqNmxJ<9bJ4nIud1I zVQ@nK2e)IYQHrpJtR*$XxYC`{ozyoYY$!Xdl}pTSFT zG_SYd4dgu-z0%OIiXp{7D5vkCG{jIc5JQQ6tX!?KN_?I)qUKFNbtzB2RHip+oo3Ri zeiSw0RzxRqJ-2O@T+8uI+YQ_jeaUO0vSm58X?ua=(VyJT?uX4<64s)?46o@*Ii-nm nYxMa$f1ULBfYDejQlk3wp%zHicIZOeG8%d_1wHhKiA6m~J@gOg*~1$s?a8B{BJ|QjzY~=9;-L@Ter9H8-oDv(&t|%@lS#f4 zh%~Yn`3iX+xs5bImJoMgKg_{ra0D*GD{u?;z#lLP_h2{NhbN$&5aKFK!5i=v?1N>v zYl()K!r(C$p5U}8+=7qbcQ^otyM#CcpTbkH3Qxi*cn&tu+0@rm;b^PHh;oI3W-``@z2-=Px`VhNrqt%mgw5`&R{T7MeE*0%p(eA zHJFqhMRBDfqi8(#{b^OT=;4Dns?*Cbn0)R@a_i(v7Yjj6k{49ss;t#>;{SWb1K*S3 z;Z~)r7pI4_j+4z7XeeJQ-d3r^C9Dh;vU!K{PRVgpAu+8s66N%Lw>A;G6S72Zs4{j_ z{kD76S9|2_2mZoK#4CE1KXaSZFS{>w^j1IZ@@2iC-|(ur8ZYrD%w~Aa9GT-5FLPUs zCW{TdfXNCr=sDswJ+GVmkx+D*up1AQ&@;pvc&+F8{oj%pq5!Y+YEB%d!YsE?cHNZf KoX@G($?O5GuhSp^ diff --git a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po index b858b60f3a..f7a478b115 100644 --- a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "المجلدات" @@ -28,51 +30,55 @@ msgstr "المجلدات" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "الوثائق" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "مجلد" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "تحرير" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "مجلد" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "إزالة وثائق من المجلدات" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,44 +110,86 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "الوثيقة %(document)s تم اضافتها للمجلد %(folder)s بنجاح" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "إضافة" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "الوثيقة %(document)s موجودة بالمجلد %(folder)s مسبقاً" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "الوثيقة %(document)s تم اضافتها للمجلد %(folder)s بنجاح" + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "إزالة" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -151,30 +197,54 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "يجب أن توفر ما لا يقل عن مجلد واحد." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "الوثيقة %s أزيلت بنجاح" +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "خطأ بمسح الوثيقة %(document)s : %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" +#~ msgstr[4] "97c0d1f6a737e93c542fd20ae2682559_pl_4" +#~ msgstr[5] "97c0d1f6a737e93c542fd20ae2682559_pl_5" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" +#~ msgstr[4] "81c6b0124b038e876c41a6794709629b_pl_4" +#~ msgstr[5] "81c6b0124b038e876c41a6794709629b_pl_5" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -222,11 +292,11 @@ msgstr[5] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -259,12 +329,12 @@ msgstr[5] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo index f4126e9631d9d3fde8be8899e27c18e13f4a6820..7bccdb201a4adca22cabd863d4aa446876dd08e1 100644 GIT binary patch delta 388 zcmXYrJxjx25XYaqG_jI8w55YDki|s^B*DZGL~OB}Ah@YhwIM@ov$TRxS}AlChpV%z zIMqVHp?-%a;3$5EI&^UJpU{Kf{hqsrJ1)^i`QcAderAYuunlfO0n9-f3m}1Ca155f z1FpbW9*$rczK0cf0ITqLRX@Tzs3-6fm;nuS4NET>8?rMz>S(;dMR);MUN8DrT&XlHZT2U2>J2-2h00IN2e>?FGBwS!LArY1(k<7wUHTLI+G(Q`_8MW}>(?Q5r7QZD nEcKmF`HX*%D);G2cBz)LN-xO+kNKQWlQI9~aWdjDm6W4@LM}%S delta 754 zcmZ|LL2DC17zW_kY}D4I2a8%ng^5;BAu+qLR)UC#?MaIVFAZMO>@qh=uHsBgYPUB^^gxfo|$FlotcfsRlfIaGW&+1^5}Eu z74!-8SF|o}Fm?wPUg5}V4U&xlh7aoK`hd=YZ?h{AwdWXBBjt^d2aK~$eEz$0j*yuIOp6dwz?@}p^ zrxQ1dmQ}PXylhuzuFG8JEWVU0Mcd-GRkbWx$*jozOf7%E-fo8Vrl|6zraWcZ@{!ps ze^9HGs8_T{F{e+M^f~qEql)y9wkf6oCI3Eg!JL*~%*s^y%ydUW`xL8nER0no-t*T9WuM;@!q~SDFFVP#+R}m#RjfOg$Q-TG38t8RH+EZ)DOK6~?5~C3@2#66q XI;ik}5~po_UW~>=_3o0qm%aTP&ZGDY diff --git a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po index c8e0310035..aba6e09643 100644 --- a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Iliya Georgiev , 2012 @@ -10,18 +10,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Папки" @@ -29,51 +30,55 @@ msgstr "Папки" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Документи" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Папка" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Редактиране" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Папка" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -86,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -95,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Премахване на документи от папки" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -107,67 +110,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Документ: %(document)s е добавен в папка: %(folder)s успешно." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Добави" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Документ: %(document)s е вече в папка: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Документ: %(document)s е добавен в папка: %(folder)s успешно." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Трябва да поставите поне един документ в папката." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Документ: %s премахнат успешно." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Документ: %(document)s грешка при изтриване: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -215,11 +276,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -252,12 +313,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo index a84f5c05521823e2aef39a861e4be0a3e0030a0b..36cc2b70c4485b0deb2e507904611aba8bd44994 100644 GIT binary patch delta 381 zcmX@W{f49do)F7a1|Z-9Vi_RL0b*Vt-UGxS@BxUKf%qd3I{@)lAhrNvGe!mmP9U8R zq*;J;C6HzV(se+Z9Z0uA`Mp3|7Ra9hq`v|2CaCyIprN)54D}2ffDBWhf_Fd~WS|Pr zG>`#$KpJGA8I*4eq&a|mS0D{C&<{uh%>n~fAPI6LNIy^*>=_^h1|Tz-fEZ*ZNI!#P zN(zHZesXDUYF>%eC h`96!p}svCNJ}Y}C_YAPt&r5+Xpulc#Y2&%P`DU# zKZ6YIz1~Ie6ZFzczkwj)2hf8Tz4YLJ5}WqY2cG@S%QJ6#G4dn7clOBp$`E77N#qyg zL*yya204ta!WmeGb+`ieVG;g<_u(b<;0+vxzu`UT<`|oWdAI;y!YQ}~uN}6>KBMs( z0}`tPcnFu_Ih=t{hWZDrK)c~OvTjtr zPW0ea$@fb^g%*SA@{-Bt3K&_elmeduzv}y@lKW;(a$DnXdD6^yQ&g$0KdrBs!0no2 z_d}tn#Lw>$r@Crsp0xQt4>L#Zgc}4cFK?$ diff --git a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po index c25394f916..729c5c6971 100644 --- a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # www.ping.ba , 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Folderi" @@ -28,51 +30,55 @@ msgstr "Folderi" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenti" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Folder" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Urediti" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Folder" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Ukloniti dokumente iz foldera" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,69 +110,129 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument: %(document)s uspješno dodan u folder: %(folder)s ." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Dodati" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s je već u folderu: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument: %(document)s uspješno dodan u folder: %(folder)s ." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Ukloniti" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Mora biti makar jedan folder dokumenata." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument \"%s\" uspješno uklonjen." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokument: %(document)s greška brisanja: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +280,11 @@ msgstr[2] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +317,12 @@ msgstr[2] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo index 2de6d19193f958824a9e10b2ffc0d2d853f9ddf4..dde260b712f42f6f9cc4336e59d958c2b34ff0d9 100644 GIT binary patch delta 291 zcmZ3-wT!*~o)F7a1|VPuVi_O~0b*_-?g3&D*a5^2K)e%(Er9qJ5OV^tF(U&58<4gI z(jdJqKw1_^`vB=4AkG3}MQ3y=-}cY9ybYY_f0FPgAaN5ByYZX-#ka@lg!plSIdDweMI-5 zB|3|~LdW$fA;bjC!eO`s^Y9n!gMVN@E-b*x^O;pCl6-`t05mNQS*r=k8 zs%mC&L0RI^@-5d6k+98xnRqgpCAGwGDAkgAqrVv_S?Nw?d3xJ, 2012 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mapper" @@ -28,51 +29,55 @@ msgstr "Mapper" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenter" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Mappe" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Mappe" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Fjern dokumenter fra mapper" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,67 +109,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument: %(document)s føjet til mappen: %(folder)s med succes." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s er allerede i mappen: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument: %(document)s føjet til mappen: %(folder)s med succes." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Skal give mindst ét mappe dokument." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument: %s blev slettet." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokument: %(document)s slettefejl: %(error)s " +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +275,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +312,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo index 749888c41cbbc7c892f62839529a384224475da3..20a54cf1f0103ec60d64139f7b47d1c3e230e2c5 100644 GIT binary patch delta 935 zcmZY7&ubGw6u|L`Ns}gRO%tQ3#_Apv>yNZaOlysjR@;D;f+7n30Ch>GOTu=8n^?gf zdh+DWLBx|6k0M%-_7Ct@C?3722Lq9=<7zpn-_4!nG3CbRQq-tKbxXJYAnGW1Z< z_7b~^R6wbN*t>-v+6xTgOB}#g*pKVD6+d+T|B8K#e{|;Mp$OwR%K9{haR}wP5!|8F zk}A`QGjR!Jp~gvEz;Rr`D1OH@ZeR$L{K#`@?8O5p35qC*PoP|C3cIk1Ls&;y_W%dU zuO8Fc#>5KBMr*iC72aYGn?;9oj!U^n9)P9gItl<|I)0}rF* zE6e}nR~Mv%Rh+^$j^QfG&A%a~Qok^U{p^;)3??v#U^ zb6k>**6GN}J|Y)ay9lcMUz6L*Hy}x+q*5(;CA{*@3&7@0C8>N1vbVhJorEMFBr=5L zk^}R-9f!Z=kP}Pel4=hjrI+$bOA>P8f9+JQX5zsCGZ9RrT8fd?Zd!9qx2AoDu4}Fb z-_y-9TCUx0`X%eEZrKgnsw`;Vt$U7jvY|WONoU@!yTjGyeA#S-Z^mbB&$(?o zx@6V#jp>TH61iqxM~(!}n0?)sL!3>U#qKxeUUb5IjxL(DSRq>R+H>0Xv}bV_aj4Wg9+de}XmeFYs}&db<$!gGa%8!8bCV0q;XU1b2WJzz4v0!8^f= z+59E&QS?6pSZJmMNYtmk|19`F~C z?fnk2AAf_-g4^y80*{!%=Q*$nz5p(PRd59E20sROfmcBbUISV0B9vZ2Zcc%(qW>F| zOR#>I5RZT>8T%l|b0OmgARh5i*8eo?e+jbRUxN>U*RuJaGyVY{$M_BeeF%IVJOI82 zaz3trc*KwRa6W$pDv@#w7S^fx!N4$kk6YPSl|HG{REy#KM2V{M_ zcM1`KEs*{G1VlQLT(KWd;pO~s<2vAml1Xv{6-8s)Tt}>94_=O)<9QM7UL2CL(nhi$1s>_C zVe{YPCRu>x?xccJ-EmE>rF?FxXGGfd!~#UDACl}P(iotCEM>?Ro4jj>xxTjCYv#p5 z9z+(wb$zVM1R!3`Bc3(V^*r**2zfTufH@QQdSpyL4uWxQD+ONSr6jE*&8w3ivs>Ep zVKP8~-dOr73u@BnlpP~Ah0z8aytyl-6*HyHh>qvmWrqDeL;m zSA(K1;GPjnZkGbF92+awb+qAoBwZ^5axoAoDuipdkVz9eA-bad(A8skmc}ybOWxCb zYj{h#u)*6?6RSxYib*5;Itq(Wve}8Td;x1T*r1+84hz+Z;8Xz>dp>{5m6_eGmY()$ zR5-PwqjzA}IpH~{NgF>>ZMp1@T_rmU%cm-s{eESrJvImhCGan_=?tgM_|bCLrA zd52F#Tecd_15UH)wD!qHtNrqRr?J1$fS|KV8$RoulxysBT20w%wwuit8)%g!Y>>02 zU1b8-a)qu&UD8PIYGhpPM-Whh*d36wMsC=auaOSnV>RV?R#u1BuD9#;(P&h&tjF)u zxmqs@>pIn->mi5bkQbVIkZG%XbY`JbpRFvPSniYwXx18)&b_&|=o~EN*l3@$(^0+1Lt(b%!LDx$$J;WoRapsQ?FPzy8d1x^C7+>)1XO3Nyu9dOka^@ z4kqqK(m2fnO@42fMm``;o)wEU43N$)`Jv3+lN*tex%nyO(>G?eDN`4;j|&DBOTNV& z7v{TFdQwCoXZD&I+{2|`s4~=zvV{o#O!6G?eVHX1x7#stH9SUL=GjN)x;G5oFp^2< zi$dQ{gvn~pbAnJ_qGMzj8+?4_5q4S`NpK(>ds zQ#UVbltr+4#o+S8@i6HY<@F8qg<->gI9XjtH#S*Pl+2Qcj2taSrw0c#+PpjrEY#;J jCNxa`krukLBxu&a, 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Roberto Rosario, 2012 # Stefan Lodders , 2012 @@ -13,18 +14,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 22:43+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Ordner" @@ -32,51 +34,55 @@ msgstr "Ordner" msgid "Created" msgstr "Erstellt" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumente" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Ordner" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "Aus Ordner entfernen" -#: links.py:20 -msgid "Add to a folder" +#: links.py:27 +msgid "Add to a folders" msgstr "Zu Ordner hinzufügen" -#: links.py:24 -msgid "Add to folder" +#: links.py:31 +msgid "Add to folders" msgstr "Zu Ordner hinzufügen" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Ordner erstellen" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Löschen" -#: links.py:36 -msgid "Remove from folder" -msgstr "Aus Ordner entfernen" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Bearbeiten" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "Alle" + +#: models.py:18 msgid "Label" msgstr "Bezeichner" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Erstellungsdatum" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Ordner" + +#: models.py:56 msgid "Document folder" msgstr "Dokumentenordner" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Dokumentenordner" @@ -89,7 +95,6 @@ msgid "Edit folders" msgstr "Ordner bearbeiten" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Ordner löschen" @@ -98,7 +103,6 @@ msgid "Remove documents from folders" msgstr "Dokumente aus Ordnern entfernen" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Ordner anzeigen" @@ -110,67 +114,125 @@ msgstr "Dokumente zu Ordnern hinzufügen" msgid "Primary key of the document to be added." msgstr "Primärschlüssel des hinzuzufügenden Dokuments." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Ordner %s löschen?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Dokumente in Ordner %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Ordner %s bearbeiten" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Ordner mit Dokument %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument %(document)s zu Ordner %(folder)s erfolgreich hinzugefügt" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Hinzufügen" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument %(document)s ist bereits im Ordner %(folder)s" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Dokument zu Ordner hinzufügen" -msgstr[1] "Dokumente zu Ordner hinzufügen" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Es muss mindestens ein Ordnerdokument angegeben werden" - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument \"%s\" erfolgreich entfernt" +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument %(document)s zu Ordner %(folder)s erfolgreich hinzugefügt" -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Fehler beim Löschen von Dokument %(document)s: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Ausgewähltes Dokument aus Ordner %(folder)s entfernen?" -msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +280,11 @@ msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +317,12 @@ msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo index 68442b990eb11af1dbe3213da6157c4a7e2a6c1a..5383fad5ca2ffbc5c3a9d90ca00098bbbc28e252 100644 GIT binary patch delta 247 zcmbQp)y`gjPl#nI0}!wQu?!IV05LZZ*8njHtN>yMAYKW?7C`(8h(T(V85tPZfwUHo zmIcyAK)N4@1Ay28$bY~DQLo4hQ6B}QLFyBMG)R3WkOnH%1RKTz6acD60YG^MRwR+h zhKv%EA22&k4q#E@bIZ?3NiAZ4P{os_n6i1zbq!2)jVu%lO|47~Hcw*eXT+{j9stlj BAmac4 literal 1297 zcmeH_-)huA6vm_0e*tg2RpF=zU1c`e?H}5dg<`vff{SHcy`Ls$w~=Hf%uL$uQ+U-I z@zTf8J1-P`2A`qg3;0d8wic}5y@!1KPLh*v&Y8@&+jB<&B82Wj1#}Dg0QoqE)}ilE z8|q#Pf)!AL55TwJHSi;N9sC471iylh!DH|qc;|8uyg|MSuH*j8m6=~SH}hKsy`KTS z-x28j-htllJ?Q;DgWm542)p1abOVBIGXoI7I=JZ*g!e*e6W%Y_)M;I^atS?}&rb4| zC7ETMk<&ERMaIUzon?4u>ojF+$8}Lm+ZP#RT(DzeV|4R%leFwb=^x;Qzy1F@rsSjwMu9pr&3XWbMPV@a;1$E13Sqx@wA>;G13WzJI_aA17kbX zi%sb`p>Et+7M+ghE>PS}mKH_47{@3SL*CE5?^#_}bo@o}auP2+i4oy5j3`D%DqBeB zcYdgM+2B78wUs8Jc6^*M#YIu#42i?nkK|59BdEzXM50T$Ki%n4o6IkrWFQseCVR8khxl;bWa+~ zuJ>}ZC05Srd;?=PqOVe&aliU}&u(22l|7CKeHtrMnGE+q6le;3d8R zwK@pm#d`512!iCIXT3--MFh1MUx9)bQSkeVTYSjuXP@1fd3I*9G5mI*wKe2EGQ?QY ze&Yn~OBWYnx!V{AS8xQINq!G=Z5QCivl!~iwX2`-~}I?1o0K5QQM;!WIz4{$d=$20f_k7GB*dhsNVQQw^7 zhIeKjhj0-!;T_~>*0}WGV?2b71=r-$&EAX~lyyeTY`6(8sddhNJ9+{zD3_UPq`^ZijYMp&c=mC{pvI zn$0_dUc*!t7VK5$tG(e)+P1r5Z+S=TQ*Yd!O-!B|yXC_#pU}C}a3xqxkhASOw33i(nPp2A>1J08fD5gBH96lH3Id{S>iT1!pn;4Z`XC z>0^vN4$gv)fbW15hbxXlknFh%J_CN{<~KmH`y23Sa2I?G`~@U=e}QfA7@WQUz5z~w zS3$D>2e1PE2~yr}gQVv;7RmmTAjv-iQXET~HnSM)9CQ{?i!2N4`K*HYoR0M`YV6e2?Oz{89|aPLfT7 zYJ%(~pJ-5Q(?NCjJU)((Vn+FW3LjDx#{!54N-3@tm|7Yr2^6sJb6<4^JsDYU72i;y zFLi0z{QtU%FW|Z;3dqIHX(_Bs_ewLvlBv(;al{5a$vg3BEXYt=>EJG#bZR$Kc`g2u znPKy(6V8KubKG+WaJ-s&JZ8A?ed*^O(rzLFduGt-NMkkzVK}TECcuxa300b z*rECYs0`ttKjcB=oGL0U=`mc(p4x(e2b+>>F(qk+wf(@xzj77HViw1RB-05DbL1Tr zSrJ4*)XnMw<{7pq)@8_+2FCKfR$GBDxv)Hx0t+gV+2Pt9&Ln{?99`ByPv{|kPY$`- z;FQxeHI$Nd=%Dn}*h(CRY}4=!t$LX&ZnvMmEmfu|S z;s=5A9=(VbA8#~Y@tRF<{AJ!4Z=Ij;8WW8M4tgtcDN? zL+;c%s#n*^MP2WaH=gu+rXD&Wb!qBjm8DBd?cC{Rtx=gnRiVRpYr{S~vU11P`yt9~ zigz}JHquVNy|&;@=I2P`hSXj=>L?$@*y5Axfz6CYhu)kMkF`LzS4zG4d!Vc|o*skGql576oGQCq~`tkPO&hg{I^&2|{{f(XKM zzv$)8u(`xZjwhQw0hKPo-Qw!JYmz9%a+i#K_sdZ$wk_%#eDC^BU{&71_DhLdBPo=L zshwc&TfB;_XY#Da?!P${NVwhmlFO*1sZp9ND{=0qqXsg95*g+RNQBt{*+u=$OY}PQRrG`oUNm%ykmG+cj2lGx zB{=C0Zb^B_8H%qfwi;Uu#TE&sHX8_R6)ZsY8WQ4CTVq)PWmOVaM_6#kbw@k`S;zw` m6kkb0+^w@O6u>Sx#vP;7N diff --git a/mayan/apps/folders/locale/es/LC_MESSAGES/django.po b/mayan/apps/folders/locale/es/LC_MESSAGES/django.po index acaa5a9978..5fb2b69aa8 100644 --- a/mayan/apps/folders/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 @@ -12,18 +12,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-05-09 01:41+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 17:50+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Carpetas" @@ -31,51 +32,55 @@ msgstr "Carpetas" msgid "Created" msgstr "Creado" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Carpeta" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Añadir a una carpeta" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Añadir a carpeta" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Crear carpetas" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Borrar" -#: links.py:36 -msgid "Remove from folder" -msgstr "Remover de la carpeta" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Fecha y hora que fue creado" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Carpeta" + +#: models.py:56 msgid "Document folder" msgstr "Carpeta de documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Carpetas de documento" @@ -88,7 +93,6 @@ msgid "Edit folders" msgstr "Editar carpetas" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Borrar carpetas" @@ -97,7 +101,6 @@ msgid "Remove documents from folders" msgstr "Eliminar documentos de las carpetas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Ver carpetas" @@ -109,67 +112,125 @@ msgstr "Agregar documentos a carpetas" msgid "Primary key of the document to be added." msgstr "Llave primaria del documento a ser agregado." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "¿Eliminar la carpeta: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documentos en la carpeta: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Editar carpeta: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Las carpetas que contienen el documento: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Debe proporcionar al menos un documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s agregado a la carpeta: %(folder)s con éxito." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Agregar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s ya está en la carpeta: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Añadir documento a la carpeta" -msgstr[1] "Añadir los documentos a la carpeta" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Debe proveer al menos un documento de carpeta." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s eliminado con éxito." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s agregado a la carpeta: %(folder)s con éxito." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s error de eliminación: %(error)s " +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "¿Eliminar el documento seleccionado de la carpeta: %(folder)s?" -msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -217,11 +278,11 @@ msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -254,12 +315,12 @@ msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo index aa8f61db7d4b41b80fbebb70d5b51d874be2a7ff..ab910ffa60b2fe138c208e5ca78486f2074666fc 100644 GIT binary patch delta 585 zcmZ9}&nrYx6u|MvyfKXNYi42L*ApT&H8af6WI-(1C^n)d@6BwC$&axRjghdwY$z#P z%utq;rj(TI%#>_oW8rV`Jx?}Ho%^}(_U?J--k0@0dou4{{ZJ#kWHWhAwva<*3`8Cs zc!f21gDxy!Jw9OtzTq%_;2?IEYg!e~Vk0I{#|+lt4ze$!9WarC$JmBv=)}VB3)&+} zLoc{X@o)6-oTi!--bNoDVLM);H1vW~_==Gm3umd;H!}qmQCh~y`dw~;S1J6b5 z!7r4JKB`LLRt8z`Li(|rsl`f?SM8A7ls$3-67*mPz1ydko0D3u0fuVwFXW2cQFVE@g|?rTt>A Xw5z5o?$wwppiW#lN4}I*ca^@K5ta>Han`e2Bd@*kc=O`` zB7tmj$Pq3G#HmUerCriQqp8-Dup8{J6zXTt{d>ecg{1$u^yav7p?t`@d zA8-OZ_b_9xfeYZ{;0pK>xDJkh--8tACy@MfLGphad<8rP9|7-zuY-SrZ-A$<`8+rd zo&i4sJIKKTb>6$h;6C^kcnTt>!2&o2N-zih z2$GIn@JaADkaVbI{xA3(<|C&W8wJmTwC`Q81bzTs0>1!9!Cyh@#b033f~c;vhjh^( zy%eiAp1{KkxM<(gxTrr=TN)^Pe?Uq!P_n4TRHyVfn@kWostroVUc^Q9ra^hIOP0kg zuhwn~H{gNC>z-o?KeH_FS%;OGwj1o4_JtXU-n)2au^Frdc2n?L^coAo5rJScNmzql z80|?Iliai{VGTmk+gKFd$#$(Kq^!3cXElF62Ug^s3*YyA+8sTN$@`hx2GIi`^2fP~XnB61m1V=WwD;Q$sZ~9L=jK1GYSD>+y+%jE;H9Ge zj;8BcX`B~J#@iRQ;>BVShFV1|+2l8ER~*+$Ixp#luD@Bt$X!9!TGcmQ>6ig^y5cPg zABVBxNz=DI7`TnL*$`S)m`#JvlU9fvy&429qfl60Ud{)!-L8w3e9dbX{CJ~ZXi_$s zu$r>qBu)x-voMw`UoOuMlGgLZ+%#H+Pe-e+wvbUER)RvyLGLDc?W*ZZ5lk&q=d_7| z9Yw4QUz>Gno`nt@d}7fK`eF@UH*@n&+czC;&hwkn;BG6L$|-%4$B$FR$s7xJ!b8=; zz01RcaEFJxYLlyDwG|%W0qeKJ9kqtXlk2K;XFKfDj^0{g93H4G_~@$5|9c4s`%x@) zoZfVZwVUCd+Wh0I?eHjew1>3=*x%%8i-)(=26S{FsON%(H^QIQ8jIw2Gv7W(7Dz>H zK-QXC$Bw;TUW2Hq{{z^kazgz4P_K~q3&rPgcoyGkqGs#-gA46JdX2R8GxPz7CRM3pd zaD diff --git a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po index 1380366ecf..9be9867035 100644 --- a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po @@ -1,25 +1,26 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "پرونده ها" @@ -27,51 +28,55 @@ msgstr "پرونده ها" msgid "Created" msgstr "ساخته‌شده" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "اسناد" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "پرونده" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "اضافه به پرونده" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "اضافه به پرونده" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "ایجاد پرونده" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "حذف" -#: links.py:36 -msgid "Remove from folder" -msgstr "حذف از پرونده" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "ویرایش" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "برچسب" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "تاریخ و زمان ایجاد" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "پرونده" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +89,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +97,6 @@ msgid "Remove documents from folders" msgstr "حذف اسناد از پرونده ها" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,66 +108,122 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "اسناد داحل پرونده:%s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "ویرایش پرونده: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "پوشه های شامل اسناد : %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "سند%(document)s با موفقیت به پرونده%(folder)s اضافه شد." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "افزودن" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "سند%(document)s درون پرونده%(folder)s. میباشد." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "اسناد را به پوشه اضافه کنید" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "حداقل یک پرونده سند باید ارایه گردد." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "سند: %s با موفقیت حذف شد." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "سند%(document)s با موفقیت به پرونده%(folder)s اضافه شد." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "سند%(document)s خطای حذف%(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "حذف" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -211,11 +270,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -248,12 +307,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo index 768c59ea0a89daf1c2b17286c38ce66624ca84e6..54c7c913b1d5450d2f9d39134ad30fec5057794c 100644 GIT binary patch delta 766 zcmY+>Pe@cz6vy#9&Yw5qsH0XkHl>fqL4+Y^aBLVt6d?tLf>shlgY!m5%BJ^_2qJfG zs@0{HQG}a_aHHa)O}jusH!WOLAheGn_kMq33lH4)nR)Ntd(J&~C%xOg{IfIi$`BdG zMaDlyALDC?2XU{-m@rl_jUKk*Gi<{b=-?{0;~K_r^W^&{?Bf3prtknY?+=a|vuv8! zy~K-gOyE;Ik1H6#H>ibc*n%6V1fNlfzhE!!VHAI3KOUmy^{~k$>_e>|$LAdG7CPiN z-&u8;55KSj9af#eZqx=j9v5&3Rp3q3iDpn8YoO-8#5lgg3H*Rl_!qTqglg5nNz}Xw zX2@?A_;C(bFo~~GmA*$6wuM@-kGh%z)P@c(v)F-JU&51HGoAcbko&lMDp=i7D2J|2 zU7pvy>pqlF_u9Y1FL0|5gP`vDfjI)g%U87k literal 3146 zcmb7_%WoS+9LI-JC>RQ~KzWqM5L!qI>sJCqPD2QJpg^n!$K(iXcE|CC^{$zjbz%gZ z-~wEWgv24-FdVocAtVl1`~l^_2^9$>{sAtO6W`yy9gjrgMWf_ z-d`Zu@elYYc16AEN$@N1B6t-% z51z%QC%}2|987K)jX4~BMt)L@3 z&9%>4zH19PvaGJZuEGu2Zsrwa>K3FhwMgEL%oK~JHd};DMnm)*(wmnnPa4$G!YUGEG^Ob&*VI&@4S!Qe1h?TUQ#w8bysg085=K*)of==3!n4|ZysdS&Rx0i6 z>=ZTac3NV$X!)IzjP}V=hnz8l-BBes)=_H7(nO)YQeVn^t`y6K1r!w;jM40O;gA-) zy3}=1Wi#Arn^Flq`&x6^n9k(r#Fmi8l4togYO%(rHyxeYT0{N|Yi=M-*I4#tN7cC3 z4X0|hI>V!%v*R9ro>wMj3T%Gc544ax@UkK>11^VyF2%x;A{B9kN@Z|W4;Hfb3GHHw zQV!Cb>KX1ur-jSuD)hyYXnVs!Vp1d&uSCjYb+k4dguRgq&D$c7xFggfhXYe1`D{Jt zc5#i+w9{X>mgGdN;=pB2mzq=C45heDhDCn^$y(N2s6Qodsbx|$hXZc*gcUZX;g|a( zb!bP+>p`c4JLHWbAJA#TOLE;7D$sK5;b0pf?jj6|{<>@w4BXDA^iUh9v4=6+=R?+d zGuIKvG-VVrR!2Rykm>Zte^1SXMibGY)9)sDu@l zlmFguKz~gpN|yrI@&oBPlIpeNI|xOt(u-`v58#LBiFb|^qQOkBqc%9nlxaCCpvi%p_OPor?)q p!vS@56bvGf%TfOCd+vW|&RadAJ6`~!%I8}x$7+Xm(eC)R{R@wqjw%2E diff --git a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po index 68ffc036d4..f624fc357c 100644 --- a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pierre Lhoste , 2012 @@ -11,18 +11,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Répertoires" @@ -30,51 +31,55 @@ msgstr "Répertoires" msgid "Created" msgstr "Créé" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documents" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Répertoire" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Ajouter à un dossier" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Ajouter au dossier" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Créer un dossier" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Supprimer" -#: links.py:36 -msgid "Remove from folder" -msgstr "Supprimer du dossier" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Modifier" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Libellé" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Date et heure de création" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Répertoire" + +#: models.py:56 msgid "Document folder" msgstr "Dossier du document" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Dossiers" @@ -87,7 +92,6 @@ msgid "Edit folders" msgstr "Modifier les dossiers" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Supprimer les dossiers" @@ -96,7 +100,6 @@ msgid "Remove documents from folders" msgstr "Retirer des documents des répertoires" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Afficher les dossiers" @@ -108,67 +111,126 @@ msgstr "Ajouter des documents aux dossiers" msgid "Primary key of the document to be added." msgstr "Clé primaire du document à ajouter." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Supprimer les dossier : %s ?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documents du dossier: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Modifier le répertoire: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Dossiers contenant le document: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Il est nécessaire de fournir au moins un document." +#: views.py:127 +#, python-format +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:175 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Ajouter" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 +#, python-format +msgid "Document: %(document)s is already in folder: %(folder)s." +msgstr "" +"Document: %(document)s est déjà présent dans le répertoire: %(folder)s." + +#: views.py:200 #, python-format msgid "Document: %(document)s added to folder: %(folder)s successfully." msgstr "Document: %(document)s ajouté avec succès au répertoire: %(folder)s." -#: views.py:184 +#: views.py:212 #, python-format -msgid "Document: %(document)s is already in folder: %(folder)s." -msgstr "Document: %(document)s est déjà présent dans le répertoire: %(folder)s." +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Ajouter un document au répertoire" -msgstr[1] "Ajouter les documents au répertoire" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Vous devez fournir au moins un document pour le répertoire." - -#: views.py:248 +#: views.py:215 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: %s supprimé avec succès." +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Document: %(document)s erreur de suppression: %(error)s" +#: views.py:222 +msgid "Remove" +msgstr "Supprimer" -#: views.py:267 +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Êtes vous certain de vouloir supprimer le document sélectionné du dossier %(folder)s ?" -msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés du dossier %(folder)s ?" +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +278,11 @@ msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +315,12 @@ msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo index e6afc465994fe0bc28e60e172e5305f6fd43a7ac..fa6c9f9b6d7dce35ff5138d9c791b7e05a3afce8 100644 GIT binary patch delta 279 zcmeytb(+2Yo)F7a1|VPuVi_O~0b*_-?g3&D*a5^2K)e%(Er9qJ5OV^tF(U&58<4gI z(jdJqKw1_^`vB>FAkG3}4

            +69a=IkalKfVBi7Ltw5R;NKXRNKz)`BGk^>&puhqk z4b%fR45R?4kAVeWYr znHo&q!z2w7G0`46 Jp6tu24FJc%DAfP} delta 693 zcmZ|L&ui2`6bJCx-PYB0LDx&EKVYa7R7^?IAIjpvl?nyBDm{vq+0AQ=`7ujo5~v7^ ze}R@2H(LW@FQ%(LwFv3g_q#zI%DVHP52aJL%6}% zn0;YC*^mb=Vtx4XJx z*(FrD0z?-Z|iwy zBN&M3iMZg!kNSLDm-}f{?kNgoTJ#$0, 2013 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mappák" @@ -28,51 +29,55 @@ msgstr "Mappák" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "dokumentumok" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Mappa" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Mappa" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Dokumentumok eltávolítása a mappákból" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,67 +109,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "A %(document)s dokumentum elhelyezése a %(folder)s mappában sikerült." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "A %(document)s nevű dokumentum már van a %(folder)s. mappában." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "A %(document)s dokumentum elhelyezése a %(folder)s mappában sikerült." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Legalább egy dokumentum mappa szükséges" - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "A %s dokumentum eltávolítása sikerült." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Hiba %(error)s a %(document)s dokumentum törlésekor." +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +275,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +312,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo index 902719afa10161f779b097cfd5a70688efcf1732..d0417860ff27dbd0053972eb791cb366287d5a4f 100644 GIT binary patch delta 208 zcmX@ax|C&tN+L4@14AJYa{_TG5VHYsJrH*?GBC73`2tJ~4D3L*IFM!q((*tWC=CWc zCIiR}77))dC56EyKe;qFHLs+YAt*IBzbtj)Szl9gT?12HBMSvXQ!7&gT>}#X1Fisn z-JsO6%;L=aJYAQ>l2j`NBLhRAIul(ZLj^-KDCBYLrx~Ls b8#AejmL%pTC1wC^$_ClQkdatWTFd|dD&8vw delta 343 zcmZ9Gy-LJD5XUEaatQhaHUoZOgbTMhKOprL7G5uQqZx8B$tLcHU?El(b{EoE+SvFQ zK7g-a?^8Gzw9thgzhUOTyYo7DUt8=vL;!FjtP3x~w(urA1ppu76XARXU?^UQL-Dg% z#vp=KVIcHpT3`8!wM%e!KmDmgiz%1v7}=QGEJuA2T9EibpSLjc)?s7n+dO3?hb5CV zYR&ljPSifmHjhV2jp7N8 zv@Vt({oAWyoz1E7mNZ_nsmM}E^S>MR_u!O_w^(r{vAmGDWtXQ^=sQA7&dZj4FoJJM CnP5u* diff --git a/mayan/apps/folders/locale/id/LC_MESSAGES/django.po b/mayan/apps/folders/locale/id/LC_MESSAGES/django.po index aeaf59e46c..d587b927ed 100644 --- a/mayan/apps/folders/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/id/LC_MESSAGES/django.po @@ -1,25 +1,26 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "" @@ -27,51 +28,55 @@ msgstr "" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumen" -#: forms.py:34 models.py:44 -msgid "Folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:20 -msgid "Add to a folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:31 +msgid "Add to folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +89,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +97,6 @@ msgid "Remove documents from folders" msgstr "" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,66 +108,122 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "tambah" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "" - -#: views.py:227 -msgid "Must provide at least one folder document." +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." msgstr "" -#: views.py:248 +#: views.py:212 #, python-format -msgid "Document: %s removed successfully." +msgid "Remove from folder request performed on %(count)d document" msgstr "" -#: views.py:254 +#: views.py:215 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokumen: %(document)s penghapusan bermasalah: %(error)s" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" -#: views.py:267 -#, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#: views.py:222 +msgid "Remove" +msgstr "hapus" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -211,11 +270,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -248,12 +307,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo index d1bfbbdc726170a2cf60927c7e18dd2d3f5226b6..d00d914b02147ab333d3de4aec35e1ed8391ce63 100644 GIT binary patch delta 749 zcmY+>y=zlZ7{~FG06knmeYlD(_!70iCTig=9K;V8#~*kEf1}>pN0Plbg!;aW&uQ)= z`mFE%^3?$*Jl|KCtT%Gc zuExIDly}r#dv|O$e!`x`2kmU)a_hU-Q^_m#F*#zV{X=H{AKPj=ZvD-VESkzkYL-nMOkWDBwaksm-RYoS G58MuU(oyXI literal 3058 zcmai#J8T?97{`Z@@HpP)6(GPQ1av0ZdpH4wbxaXA-~sR>@Lup5_$2rZh#$L&8`=30ydV4xB!7Q` z6vsc{^Wd&MjN!));PwL8244oxf^BdEd=|V4PJ!Qo4!jAH-9;Gv0()}~JcaqcFivru zyeHq60HnMwgS0On7yJ~Yc&>pI_tzkP>;`U+fIorHfWL#}cMp;z?giff4}m`Dz*+Db z_!9UBh##A3<#F!=VS@SKcl`v;1I)*hdLN1GIiW(KGbn2 z&BU_(|8<)wKwUHq)aK@m6i$}!CT5o9(~zBkh*OE=K_-m_8A~S%6w0=oy0y}t&tJ4B z*qJhkB7-e+=oJDGZ9IP`T_@yT})-eO$~>I)`Nid7x7# zRI1Xbstbf?*;#Qx#%wUQj*pC9SE1y>@mLBh=u}q1o!iLd8`}_FHYyQjlV6mZTn{;& zX?ZksBp2X=j;F&`vTdkdT0S&7sZuH4Hr7f7vS@KYfx{kFrZd5b0;%Z#t``*kE-kb4XIqLO}_IeQXR^+-OyG^;?Yu?OJ-tYNG`iFWLt+O~F zZ`Fv@#==pB4ulCbpBKp}mR9oPIDkNRf@0oDf|F4qRNM)4@;bEBXe=V>txA#je94Je zA%pgsb0fdo-PqXZII^vV@)BuujkdxlZMq4i>d7#%-MBE)RjxbT8Y~SK>K*BKdaZes z9NLe!x;a9+PF`}|QH&a#<-wXTR=T;jR~NlwwH$dIO5-i0feulrK0kIrxhhznW3n8N zjflNPZ4&GAbd*i)+{`S`ALrUB-#^Fu)3YshDvH!NjZ{@3Xk>9Lcp!|Ec-StWb`q#< zWFly0xeZy{5FsC@w=zEIld7Q97Fm-lXEJY@nmVT7l4~P)sIs>CKFR^FMH*yrmk$li z;+2uSksy8HC!m(6TW`bmB~`USRO@6T%{Gz#1DadcY;8Lah7WCDtW+J9T7*f|3pIJQQ5yABi-Qt*B&-e, 2012 @@ -13,18 +13,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Cartelle" @@ -32,51 +33,55 @@ msgstr "Cartelle" msgid "Created" msgstr "Creato" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documenti" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Cartella" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Aggiungi ad una cartella" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Aggiungi alla cartella" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Crea cartella" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Cancella" -#: links.py:36 -msgid "Remove from folder" -msgstr "Rimuovi dalla cartella" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Modifica" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data e ora di creazione" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Cartella" + +#: models.py:56 msgid "Document folder" msgstr "Cartella documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Cartella documenti" @@ -89,7 +94,6 @@ msgid "Edit folders" msgstr "Modifica cartelle" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Cancella cartelle" @@ -98,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Rimuovere i documenti da cartelle" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Vedi cartelle" @@ -110,67 +113,126 @@ msgstr "Aggiungi i documenti alle cartelle" msgid "Primary key of the document to be added." msgstr "Chiave primaria del documento da aggiungere" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Cancellare la cartella: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documenti nella cartella: %s?" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Modifica cartella: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Cartelle che contengono il documento: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Bisogna fornire almeno un documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s aggiunto alla cartella: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Aggiungi" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s è già nella cartella: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Aggiungi documento alla cartella" -msgstr[1] "Aggiungi documenti alla cartella" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Devi almeno indicare una cartella documenti." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s cancellato con successo." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" +"Documento: %(document)s aggiunto alla cartella: %(folder)s successfully." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s errore di cancellazione: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Rimuovere il documento selezionato dalla cartella: %(folder)s?" -msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +280,11 @@ msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +317,12 @@ msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo index e66bca40b5135701b5f205fe5af73cdb609bebbd..7eb3a1807143013ba07ccad26bf26ba0a740a8ee 100644 GIT binary patch delta 902 zcmY+>&r6g+7{Kvy-F4UBwV7IKP6siHwOwsZwhopMgiDA-U>5c2JL&4~`)=>PT0&%p zD2Q%DC!r1=yH&Tnbg3YM{(&?)bS|k5-TFSV1wAnP*?DK?nP+BRbo^*v-%duKD58hf zOZ!P1pna(0hqxY5svaHeMuV+*7u)bL#&HAp;3hWUtJ-)KJL$j2cKm`eZwJSfT2~RW zkMUsw8}SZy;RB4~Q|&K{sIdvt*ny`|3Y@BqU&j6Pm#`V{;qHy#IQp0Z)BKSuokWUOGsqfs73E|u%E|6y8Xut)Qmu`@L0SJ5Ypa;gI~iM=!_kf-}E_R*6QNl|};+uaShId#T$?dM2$ zUBwR7Z`oY*sC^i{d3-7;l$>BqFPk;(-_YTr(XKzgQZinsLtoDs?YORSht#ww`K!jB zi}l;vv6MlESQ}3iq|gW?em6N+ZoT)hrY41@!m+;*lPT(y%KG< zlZh6)l^C>xjpf{K;f28HO3|!@rl?mPPcIs&+UU^eRo^Ta@84mD)Fl(#DlEAsuse;1 R+s>Nh!qT!XIpwnP)E_|khz9@w literal 2610 zcma)-$!{D*6o-otwqXe|I|Nc8MDir+S&W0s7=z>3MwUFmawZlBBvdo~W?bW5hOX+d zEe?nS2aX^CXE-259FaKXf-EB7h{P4~H$))ifCRtS>o_8W(sX}auU@^amicY!=w|{= z;yJ<3T|%5=9>ELkN3aI|1U?Pk1doBo?-t@=@KnY+_z3z7;CR)YY-bO=hFW|Co=1NP##nC;d>s57`aZ=|msoIt)S1|2+_?h)=*O_yyPizXy5z26!Btf)lp$5{UGZeZhXY zHk@DHc+L?#FW_OjoXc}~cn@)0+_*k$i|wM^$+`haeV+wUiljZ05g{av^W(k7_2yhS z4{n?%x5x1C9^(2I?Skt{H|)he1yqa?1>P zG_`;+6Zd*#Oh5L#{o3sexJi_fq9}}bcJfiZtv?Ny9ujo-r4F*BCY>JgV`M~rI7Wc~ z9!lxO9I|G_imPq%DqW<)qK>QSN~bU)qwIx&RXWhYpx74(&xm!^B~P?tW929c$J!;S ztn^4h5C&8z*ZxB%E$oEqW|CbYFtQ(oei30dIw2EVns$rvjVK&a&pKNv@kgTBLit|ez0%~zae)0uf$HfCDq zXPw4uqX9){lg66u-lErN%Eqg$#_YKUT4fz2a5|9+jHfK`ft4|NdKk#dN_kcXJMuM3 zB_mv_~J}-OQDl%jju5?zNxl)gv_9=2!f?nuiYqaECSKA`?mP~wAHoQ1ep0gT8zJY9% zbj`xdyi7kArUQ9uK{l)N6|ogkxx;Y&u${1Qz8W1Kq2T|HjVPU&n<7jt%;iEBw3XUP zM)HplG~rxaK;_8CsO7sT_N^YeJdg{q$#x;a^;mqd9d?|LNE{1@_{5Y~5 zx_t5{E~E66k3)}>9?%%CB!bLlaWmC$Tw^P{dML-aYb23dI&8HjabjZYlb0^t9j~Y^ z8LM!(mB*J#n$CplJQYqdyO%iPA`rK{!l=v?;T6V==+Z7lI~ZO{KJuDPbg?K{DPAoU zIQisda&>vru=_5JmBn7puBR)kfIl){2L@6jn?+5M?S=m!RF#67$TgvrD$9eb2UnA9 n^D4@4gtL)Pm{{WMj|Ab2(=E#ZmgBKT0Em2vcJwgWX*~W9pvk{$ diff --git a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po index bff47df7dd..f10c59d996 100644 --- a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po @@ -1,26 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-01 09:04+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mappen" @@ -28,51 +30,55 @@ msgstr "Mappen" msgid "Created" msgstr "Aangemaakt" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documenten" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Map" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Voeg toe aan een map" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Voeg toe aan map" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Maak map" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Verwijder" -#: links.py:36 -msgid "Remove from folder" -msgstr "Verwijder uit map" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "bewerken" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Datumtijd aangemaakt" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Map" + +#: models.py:56 msgid "Document folder" msgstr "Documentmap" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Documentmappen" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "Bewerk mappen" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Verwijder mappe" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Verwijder documenten van mappen" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Bekijk mappen" @@ -104,70 +108,128 @@ msgstr "Voeg documenten toe aan mappe" #: serializers.py:58 msgid "Primary key of the document to be added." -msgstr "" +msgstr "Primaire sleutel van het toe te voegen document." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Verwijder de map: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documenten in map: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Bewerk map: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Mappen die document %s bevatten" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Document: %(document)s succesvol toegevoegd aan map: %(folder)s." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Voeg toe" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Document: %(document)s bestaat al in map: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Voeg document toe aan map" -msgstr[1] "Voeg documenten toe aan map" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "U dient tenminste één mapdocument op te geven." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: %s succesvol verwijderd." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Document: %(document)s succesvol toegevoegd aan map: %(folder)s." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Fout bij verwijderen document: %(document)s. foutmelding: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +276,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +313,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo index d96133b64b7c4026364c9817c6235439571fd8c7..68d6f06531729d56d03ecb0edeb1e97082078d92 100644 GIT binary patch delta 982 zcmY+B%}Z2K6u_@KjykE8R$5tJ7m5=My!V{(WAtf-wThYqp==QY^OULajmR@ zA+)))2-_97a1*r%L}*d%f~a*LM7YXT|3LlD^i(>$bAR{V^L5X8D{ZR>mcO-x9xLP+ z+JSDP-RNc&3zDi($?Qjw{K_525C0GYn-~ni07(Nf|>+lHY4Y(hEg5viBo>ppE z{bn=BMITifU=Fsy1sH;lpadG&2%kYI@B&KV*RT`5fwk~^VBdl#IB!FVi;%37T5VAL z21wFDedV%|PNtv~%0hWaIXK^i5@4Wo{sbO^Yp?}w!dCbZo`pZ5G}OcEB+qpylgmO( z>JF5+hp?IY>S`2)Qe-mHk1K=_#i6pGa|em~^)z@~cE-GU`kwWBydPR~600 zny+RmbjqxSZiOej+5CcMrfWM*Q}}9PAZ8_E&Y-pv$%GZN;+7RjU5ZV33)x~e@5jc| z^IlRrmW^LL=GfZqPdfc(HC%4IkoIRv=^4y(In!EqZ8?=I71Fub`FvrvnAHAUOYuL!;tyh@SuOP rSbBd?RaTwJ-z?2~{(M<4>gjwg;}zb%x~)=$MQb!pqS$QrXR7M=u3y!D zzkA1r49`<|AIJObEsQn57jDG|&o5vd{1w~_?!Aq%U7!Q*1Yga$2;PVBo8X;b0NxK8 z@D6YzUw;pL7~_i|+4&44xv#-jz;8hEw`T`qhrpxY)8IMqZt!F95%3a-KlT+qWalb) zFZeA;{(b@}j^Ds1!Qa8#!QJ>g1MUT%182Y|zz(<@+yD*u5lHrS!q`>RWFNSQ@eeRc zb#m^?;(jgXTOj4%2PvMnL5lbNe0%|fNp=aOx_t`n0lx&v?=|p2@MrJ{_$NsD&%g*V z1}W}OK(c!cAKH)aK+5+IknH>gQXIQ#+5CQx>M#M)9$O$xvqf+Ud;^>Y&x4PFpMw*S5BZ}9Ey5nc3zhPry{0(HCdW&*D2{!2DK4rpJ=6mf z7v)0F0~yjU)r%h5N2=L=ypQ6gdeUAL4_YVf4TL)OVC&JSp2t1q#yuGtZWLcrfhVJ} zY5ni>I#qzW7&TCtI~qx0WU)3j(kvT#>=;Ch-;>-;r7 z6-ne7Y#T!_7l8O=k@1w~!taJ0VtOz!qX{ct28Sd{1&=cpwEPR47Z~`b}iA!j6b8r`eSgny*EwS4Nnx zj?A%qiZ)-P?yf;;ip|WF$NHk&%GsN0=6-LaddioBGN`3Ub>Y`K?pdc~qcw7J>3X$8;yR@n5r!t zUzn?McItNRD0&6=hP9IPk&uyR4J6S#hq=2hA}vk(YFmw7VihOr67((V9l$jr&~Pir$gPIK8!_LX-|gjw!>$+&9OY;*e|!6{J??q=S=$` z{hXv}d&aT(xpV0}$=FlSaiG(jI$XnH_Cy!0b2_{EyyE7Ix2+_Q$@l*MEnT@hC{12x zsGK-y23Iae!+gxfhY5{UG*n?im!#lvI+UR=*hw94y_0=&Wk~Bd+}zlFH=m&6JDZ>H zGGhuWJMxraR)s9oydo_=eoyvQFWI^nggza0PlRfuFyr^vk*)Ka8(wu2^1kxiq0l_m z@jxKx(qTO20%gj4leywh;}-5pTru5v>kD3-!Xdh?x~A)FsfrCgLVxoD4nmO?rC;Zz zag;E3lZ@M=>oGBLm*94be`GPK=PPA_v%(eiE69gp;LAvKH#b}=Qke|&O>)|oM$p~p z>me3Bf&Fn64@I|!ns$+;C&N-Jy+yB=tOQS^4+2GZbh&r+ybX$}gctop8=E#tITKe+ wGDuc&EUPZ4WJZfTyIrBmu<}F28o6@IKFnPF2aTm@C_4eV2WK<;XOXbK0mukHbN~PV diff --git a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po index 64d57db613..c195434b0e 100644 --- a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -11,18 +11,21 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Foldery" @@ -30,51 +33,55 @@ msgstr "Foldery" msgid "Created" msgstr "Utworzony" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenty" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Dodaj do folderu" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Dodaj do folderu" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Utwórz folder" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Usuń" -#: links.py:36 -msgid "Remove from folder" -msgstr "Usuń z folderu" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Edytuj" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etykieta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data utworzenia" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Folder" + +#: models.py:56 msgid "Document folder" msgstr "Folder dokumentów" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Foldery dokumentów" @@ -87,7 +94,6 @@ msgid "Edit folders" msgstr "Edytuj foldery" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Usuń foldery" @@ -96,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Usuń dokumenty z folderów" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Przeglądaj foldery" @@ -108,69 +113,133 @@ msgstr "Dodaj dokumenty do folderów" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Usunąć folder: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Dokumenty w folderze: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Edycja folderu: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Foldery zawierające dokument: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument : %(document)s pomyślnie dodano do folderu: %(folder)s." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Dodaj" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s jest już w folderze: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Dodaj dokument do folderu" -msgstr[1] "Dodaj dokumenty do folderu" -msgstr[2] "Dodaj dokumenty do folderu" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Musisz dodać co najmiej jeden katalog dokumentów." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Pomyślnie usunięto dokument: %s. " +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument : %(document)s pomyślnie dodano do folderu: %(folder)s." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Błąd %(error)s podczas usuwania dokumentu %(document)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Usunąć wybrany dokument z folderu: %(folder)s?" -msgstr[1] "Usunąć wybrane dokumenty z folderu: %(folder)s?" -msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Usuń" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +287,11 @@ msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +324,12 @@ msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo index 0f7ce74b79e01fda04c8fabe3b77e9a5d8323124..cf40685cc4fe57f43ac87e92d6f0bd672bee206c 100644 GIT binary patch delta 446 zcmXZYze~eF6bJB2ll1puaS*IDf;!ZmTw+seL1>{k2})O|V2%>Bt<>5{sk4I=9!~BK zPA)Fu=;Y=ksPtd(U-0|dKJxB!xgYO^yk;iJ(IjWx3q%%~M_wTpkiSR{#}LAVt1u4N zVI7uW6?R|>K0*sVLq7Kc6Yve%@O{4i0ax(;3CD&Qi9bxZzzw=2;Vs;U1b5*#Ov6P~ z=fVZZ1vlpJC5T6CW8j8W$PMZcrKh!dpCg0h8hoE4A>?erBl=7~fd52{7ZBW7G{R6c z^_d=M8XHU0HX8J06lpD%kGFKEH`H_&JN0*@@}*aGT)*Zksme;Fj}B!^52K5y*Okp+ zplgn&T%0RQ&vo2N&8yIsd7V87y6wxLjqURRJ(#}nWBHO@ z)jdMcYQ&CLfCpfO#0#)x)As;@#6MBgvO!{`qi<$>d}huZPke439M3e~3yceh7UB(J z7V!&V#$!u}v+xP*!FA}sBX}ErftTSAI0;)dAsVm^&3`xHIq1VPFo0KJ58e>sK!liF z#Kt>#h$0{11lDV)@(@0PUHBHR!mrR2_zkDvB~&#BEkScYXS`m8ND)2Qh7aH^7(;X3 z2WW|xn2m=i)d41oyI~R_Y#Cfjr zfUaH}O|BRCes3D-n>)C@IU;FbbJuNij=osFW#GgDT;)bi}`N zwpAQ*ewwPkS$oSXw&&S?hg?5c?%HnGb*I)}*c&{Iib$n)UzQw@?|Lh?+p&F*d@t}k zoz?dB&)R15sZ4h&xr3BUZ`2+Ay1v^oU6547ag;=<{JS&K-|PK_)7GL;(Lg0sR0A#w trDq!LSA8BbZL2)x0WOdL`W{zn>xk}^Dzbo8CZ;vW`am306B diff --git a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po index 5a8f74114e..ecb6f54e2c 100644 --- a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Renata Oliveira , 2011 @@ -11,18 +11,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Pastas" @@ -30,51 +31,55 @@ msgstr "Pastas" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Pasta" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Eliminar" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Nome" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Pasta" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -87,7 +92,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -96,7 +100,6 @@ msgid "Remove documents from folders" msgstr "Remover documentos das pastas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -108,67 +111,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adicionar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s já está na pasta: %(folder)s ." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Remover" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Deve fornecer pelo menos um documento da pasta." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s removido com sucesso." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s erro ao eliminar: %(error)s " +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +277,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +314,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo index 40124051ffb60b572978bef0b4a8bdbe7ebcbed0..f60278553778f241a469dc3f007d97dff89ed7a5 100644 GIT binary patch delta 753 zcmY+>PiPZC6vy#tlWhLfnlx2gt(rv$h?3fbB-Wgwg&zC^B2p-Vy4X@%w6xtuLB$>f zK@bEV+Jm5noD?t8f`WqH1Sxp&s?cjaNKr4I{Qg2bIPBX`vO7C(-n{31&CJrbZ1j<1 z3=q4CUqqf*>)^(?*y&sZ1MJ61?8e);74KslpI`=?=;3Pn{af6@|4*34b=15~tUI^l zI$3>~2P2roTiAzpF^W%7A2x9duAmZpKqdZ&IsA+<{DJ%NH)`Hq7TJS&)b}I!hT=|R zlKd{oET0#>*o9@(#5!`hQ`}VfSyaNSs1s;lFW$i{F5@;4-$1#M96`!_h<*3gN#qZ1RBj`Vkg zc0TgeW}*k|b#&gY#}3)ESk6Yh@$SQgp-Q1N>=!Gw%88x;wN|Ry7q6K< z8O%;Kf~m=xKeu?{*crPPKWFRlvK>$CGfQmPtK`9lsnFI^Rr{05Wyhw&MsQ{NMzG+| J1>s^4y1zPsRc-(P literal 2985 zcmb7_$!{D*6o(5FmJDGFYXXEy0BIc3Gh;gtGg+L(@kkLFVQk}TRPL@BSLp5k7j- zgy(5INA6&(37#0k3*!&40saX-3D)mq>_PAhct7}h&Wqp!m`C6};M?Fs;Je`6;FWy; zD)>0&pMoUk8<5U@3!Vml21(!ZyBM1W7r{f|d*E*HbMOi9D-eI|CSD}x2XGJg3rPBY z1<8)Tz-Pg+yBNbCJA~JBU>!URUI6RhI`|BD4crTU4La~9NOC(6`Xyqs2%f@x&%KOs z@Kx|JFa*hucfk9=_d&Y%5lHrY22%XK0LiW!AjR){@DcDQko5irJ__!JvmNjNI0Z`Z z74Sol?Eem|fxm+kk1g= z{0)-4eQ+uS4}%YbAAkr)YBNk=PvN2SG^h?}pk&h6Ktwqx_Y?=p*+D$yJLPvj9*PUa zj0Wi>`^YC6q_Y_0*8w~n55&<~c7;ZLp5)hDnmFJY;qOnPF0nT=&{_$NUy=bTbnY}Vn?J|HWw(DzJ@BY#WIeaEYle*%gKEm zJE39~_shC~d6r!eD>7u=#5z7OdQAnA3&%q#u%KgE9&X&`OcvP6(RrgHVK(`ja+B*G zr<@k4p_HsZ2c@UM7Sb@3o0j*Cj!IYZ-O5^Vfh1Za$ajcgDLOqkQb1+SXKs5l*Spiz zWhK{3qvnmi1ijw*z+0BaDjm0ZS8R%y&zz?n< z4Wl#BXw_y>erQGB(&hlJJGtSSgAnz2ocpW7Sm{o_vDERVhv!IXPa1D7_H}@&ZS(0B z?Qi(uNyA)jVRSnDVG5T2D`ef^4&E_`z zFj45?1JN%eKx;P3rPC)p!{*5$x?Fr2I$N?MYr`gk0v+j{_&PIJ0&V%$wanORGeb9t zsCA)<>S1HsE`~ZL7aB^@??ttV^0Mh}zr!zWUFXs|yyKxy, 2016 @@ -13,18 +13,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Pastas" @@ -32,51 +33,55 @@ msgstr "Pastas" msgid "Created" msgstr "Criada" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Pasta" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Adicionar a uma pasta" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Adicione a pasta" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Criar pasta" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Excluir" -#: links.py:36 -msgid "Remove from folder" -msgstr "Remover da pasta" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data e hora de criação" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Pasta" + +#: models.py:56 msgid "Document folder" msgstr "Pasta de documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Pastas de documentos" @@ -89,7 +94,6 @@ msgid "Edit folders" msgstr "Editar pastas" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Apagar pastas" @@ -98,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Remover documentos das pastas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Visualizar pastas" @@ -110,67 +113,125 @@ msgstr "Adicionar documentos para pastas" msgid "Primary key of the document to be added." msgstr "Chave primária do documento a ser adicionado." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Apagar a pasta: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documentos na pasta: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Editar pasta: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Pastas contendo documento:%s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adicionar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s já está na pasta: %(folder)s ." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Adicionar documento para pasta" -msgstr[1] "Adicionar documentos para pasta" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Deve fornecer pelo menos um documento da pasta." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s removido com sucesso." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s erro ao deletar: %(error)s " +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Remove o documento selecionado da pasta: %(folder)s?" -msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Remover" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +279,11 @@ msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +316,12 @@ msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo index 88ac90571e031beb8b947bed0f752f62fbfbccd4..425efcf39829391e059bb8fd9d488ba1de1d2a19 100644 GIT binary patch delta 447 zcmXZYJxjwt7zgl6nl`o;#Dd^ZAwqR1o+P2ErBe%C1f^0?2L}!02vyran|2aAxO9@j z;p*t@5?lnAO2N&^MI8JBegOynPt60*{qE(tmt>rc(xb1OcE=D|WFC2iTt9*bz{ar7Vxo$>z;we*#AF#QP?NkJE| zy63TmxD=s~6J=HUN?m>^MOjeusg~#jLm_X~3ulL$4!0|YM}tIm delta 735 zcmajbJ!=#}7zgm#+(z?qDrn$RoG>vlL}ib?%U#rkz^M^bjCoN~SQysb$767B=a}8O zN=a!7A%r27g`Yq>8yjsx1RFnrjh{kDk^dZb!1jFg^VcpRo39d=NnL1TWQ0;uVkp`^htdGV@|3=7(2cxCXc&#@`U@S zf+zEgQzE(|#p5E)GaW@_p1Q5IXNq2GK|I5kMY)}&g!lB14, 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Directoare" @@ -28,51 +30,55 @@ msgstr "Directoare" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documente" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Director" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Șterge" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editează" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetă" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Director" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Scoateți documentele din directoare" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,69 +110,130 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documentul:%(document)s a fost adăugat la directorul :%(folder)s cu succes." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adaugă" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documentul: %(document)s este deja în directorul : %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" +"Documentul:%(document)s a fost adăugat la directorul :%(folder)s cu succes." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Şterge" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Trebuie selectat cel puțin un director." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: % s eliminat cu succes." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Eroare %(error)s ştergere document %(document)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +281,11 @@ msgstr[2] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +318,12 @@ msgstr[2] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo index 8f3c334adbbd8a08f9d559928744fe4436195527..4d813aacf6281aefd34b8ef6e0e667c6807912ab 100644 GIT binary patch delta 441 zcmXZYy-NaN9Ki8M@6^hd%ta_8X$-FJj!s324BV22h9H^*MIkB(bZC*HmS}tGFKB73 zhzcUtTA~vgqoGakPYCM!ocDv@^Lbu=&&%Cw;wakrPU)9|h?5!egq$D;qzW@2goYMI z(7`Y+V+qSxz*8K>F6#J(s_q@tzE2F{mp}i5(?WDapH4bR5t*c5hTRD?eOGXc@j909 z8dKQEN&LkzOmn(&7S(>kcL^QFYsghz4P6lPQ6sc$PlmPTc#9qOMYnEGOs_5U$|ZO*1d7>+^61g?_3V_Gx-uK$%Sw^e&yb?^6al9Bl&+; CH%7() delta 860 zcmZ|L&rcIU6bJCxcJWsWD3`|HBL)K|G~G(o^hC5V(O6cc8?jtNVkfmj=+J zi6k5bZ~7m2Cfxf?oYJhXIUWEFiYQz!hkFe{m zFnwXMg0O`zSiva;bMmG(nX;k;7q08Lc|J58O-4NVLc4Yx?;dx>oHH*h?ggci@Vx23 zwx7wSc449zcs_sZI`gxZ;HJ-QVItvF1h-UmQSsAk|25N&Z3*|!Qn{l&>b*Q_7^B%s zJd@4m#^i(8$-PV_%QItnBPVOI=dwROmAq|MW&(3Ytqy zl{T$~FY#PQi{{=U^r20vhl}B|3a-9mvcj?S6^;|FZE?`1EgYz+4ihe>8Lc9-O&`#$ b9xdK)d-T0?27Nlwt^O~CGVjy!R?n563yTM_ diff --git a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po index 7b075a92c4..02c2ce58b1 100644 --- a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po @@ -1,25 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Папки" @@ -27,51 +30,55 @@ msgstr "Папки" msgid "Created" msgstr "Создано" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Документы" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Папка" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Удалить" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Редактировать" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Надпись" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Папка" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Удаление документов из папок" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,71 +110,133 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Документ: %(document)s добавлен в папку: %(folder)s успешно." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Добавить" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Документ: %(document)s is already in folder: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Документ: %(document)s добавлен в папку: %(folder)s успешно." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Удалить" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Должна быть хотя бы одна папка документов." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Документ: %s успешно удален." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Документ:%(document)s ошибка удаления: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -217,11 +284,11 @@ msgstr[3] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -254,12 +321,12 @@ msgstr[3] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo index bb1e3b162f22a25f79a91266696889b7d2143133..9f6cddc3f737317b0f384ebd7bef9c863cdff132 100644 GIT binary patch delta 227 zcmZ3^cAcgEo)F7a1|VPtVi_Pd0b*7l_5orLNC09^AWj5gka#u_UtwfmC1aQeuF3nBND=B91NlZ%3VF)P7&q_@$(e+Hx4NEPW_{+}JT-U%< z*T_P_(A3J*K-a*;zKTp>su_V<>!N|Z6sLn*!$WX!1%*x1YaxP;R lzfWRbdTC-hP`WrLKG<{eH^%76iA))snGF6_d5PJH3;<2oExrH% delta 397 zcmZ9Hze~eV5XWC^tT>3^s>6W@c4$ee^+#qGp+&*XL3uGpNgCe^c}WKs*D5Zd_&4}3 zxauU%f}5M0Q)dUiX;j364|nhG%iZ_A+IRKKw>LPzKuNp6U!{xUA3eb5@y0YwN*x-7pkz z%o!7>sZPt$v}l-Lxe;CIb1Ztf$tX$nFbtSvMlnk?v|{>M)+&{UOW9YNBBn$KG7D*FWJIjst^rG)Tlm*T_)8(9FunZ1PX0ZhoJ{y!6t<^i(T_vds7}zsb$a(UadXtFdGp dUX?pph$V0G1{SNyLaa(G5r;P?PM*W60|3t#I%fa? delta 670 zcma*j&ui2`6bJChW^1e4QnZMaT6p~-tK#l9yRGP+ie5Zu4^j*5Mbcz;6U-(hnJg8A z9zA$k1{DRNP?nyALOpelDI!w*3rZz_KyL*v9{Qa?Q4a+ldHGBx^D=L8Fz~IgadajB zmLUd_*O9M~myw4^6{ImX4<}$5uEKk;11I5kco81MJp2VOz~8VR>N&=yU;*BS6*vx8 z;75&ZuyqWcVqyf<71)4};5%4^KVbp(_c4Zxjo@|(j>2I$4OL^a@IJJl+UOHR4_R~A zA`4Zgn!_iv(A5!CmuE46f%+3F)Ta0b>zpiKv$@9wCmx1DSf?8|v%#%M&S?)u@f=ae zTS1%K6vdXsqo@&k-b>liXyHj530ez-wrg`T1$o@WMBsC>11oNEUzFMTYZ`%P^YG77 zDYX|vcT0v*s@7_3(}Uw2ex*ZQYYQvS{, 2013 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Các thư mục" @@ -28,51 +29,55 @@ msgstr "Các thư mục" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Tài liệu" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Thư mục" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Sửa" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Thư mục" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Xóa các tài liệu từ các thư mục" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,65 +109,121 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Tài liệu: %(document)s được thêm vào thư mục: %(folder)s thành công." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Thêm" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Tài liệu: %(document)s đã tồn tại trong thư mục: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Tài liệu: %(document)s được thêm vào thư mục: %(folder)s thành công." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Xóa" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Cần cung cấp ít nhất một thư mục tài liệu." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Tài liệu: %s đã xóa thành công." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Tài liệu: %(document)s lỗi xóa: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -212,11 +271,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -249,12 +308,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo index 2ad8193dd4d8c10493c5f456ae68b12afa8d8fa4..0cf11f9426d4abfb88309ddcf149c0427f137a18 100644 GIT binary patch delta 366 zcmZ3-^_IQ2Lm9pn4lbxgBToBQYHs7N=(*ZbeuecQET#3 zMnSfq)ZF~C)X6SP*}Ueu2Bx}377B)@R;C7%_b^F=L`-yz3>6H`tc=ViKVfR+_eso4 zFHKBOwNj|ch^wP(#Y&pt*|hd2ySF`EvJ;8*eEIH| LGnY&jWR(Q~NKizv delta 646 zcmZ|K&r1|x7zglYcdV^7sNIW|8ZU+924gehDz#p=U$?UGRuD1lyz1h(6Z6h2)FJaA zT9=fuz>-Rmf({x8Vr@T;T{_qwP^X!3Hz;q?vG43w(xC?)KJz~B^FHsq-xEv8v9IZ- z`-Eslwjmv43i$~c#l9F(9;RRy9Dpa_I6MsBz}@f*+zB^e0{(zU;1)av55|ew;W;>q zS^@SEjnPku=r}gAO++W50bAf>7!6#7(FN~*`w{NP`ZGKVzrj|R-a&-9vRDBXB@R81l=gJ%58Ee1Ea!x^`2%g(Wm&iY42cpb6R2e1~*=A%}b8%(%` z0vBS?HO(8|)mUr)1y?xix^0z<24}j%Os=C~l{ho3f;-AfP8a>ZXV5YYZg01Gw_+nb zy|SvxS~pX)Tu)Y3vWk+tbWtAQ<)SEBCHbuG@Ep?=wO3ZUWld$8np0KpP<+B$iC@`! zUM~%~`Vd-f4qrRd@9mK~y*??Q*?jvD5Bu{|8Nq_7r?t7o+U#6)c^RAAk9MR}si+_} zUR2N#PE7}QpLk1BTfREE61, 2014 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "文件夹" @@ -28,51 +29,55 @@ msgstr "文件夹" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "文档" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "文件夹" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "文件夹" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "从文件夹中移除文档" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,65 +109,121 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "至少要有一个文档" - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "文档 %(document)s 成功添加到文件夹: %(folder)s。" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "新增" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "文档: %(document)s已经存在于文件夹: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "文档 %(document)s 成功添加到文件夹: %(folder)s。" + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "移除" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "必须提供至少一个文件夹文档" - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "文档:%s移除成功" +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "文档: %(document)s 删除错误:%(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -212,11 +271,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -249,12 +308,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/tests/test_api.py b/mayan/apps/folders/tests/test_api.py index 333198a4d5..6da4b1b16b 100644 --- a/mayan/apps/folders/tests/test_api.py +++ b/mayan/apps/folders/tests/test_api.py @@ -4,10 +4,9 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) @@ -17,12 +16,9 @@ from ..models import Folder from .literals import TEST_FOLDER_EDITED_LABEL, TEST_FOLDER_LABEL -class FolderAPITestCase(APITestCase): - """ - Test the folder API endpoints - """ - +class FolderAPITestCase(BaseAPITestCase): def setUp(self): + super(FolderAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD diff --git a/mayan/apps/linking/api_views.py b/mayan/apps/linking/api_views.py new file mode 100644 index 0000000000..9dcbfaf621 --- /dev/null +++ b/mayan/apps/linking/api_views.py @@ -0,0 +1,334 @@ +from __future__ import absolute_import, unicode_literals + +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document +from documents.permissions import permission_document_view +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import SmartLink +from .permissions import ( + permission_smart_link_create, permission_smart_link_delete, + permission_smart_link_edit, permission_smart_link_view +) +from .serializers import ( + ResolvedSmartLinkDocumentSerializer, ResolvedSmartLinkSerializer, + SmartLinkConditionSerializer, SmartLinkSerializer, + WritableSmartLinkSerializer +) + + +class APIResolvedSmartLinkDocumentListView(generics.ListAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_document_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkDocumentSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of the smart link documents that apply to the document. + """ + return super(APIResolvedSmartLinkDocumentListView, self).get( + *args, **kwargs + ) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_smart_link(self): + smart_link = get_object_or_404( + SmartLink.objects.get_for(document=self.get_document()), + pk=self.kwargs['smart_link_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_smart_link_view, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_queryset(self): + return self.get_smart_link().get_linked_document_for( + document=self.get_document() + ) + + +class APIResolvedSmartLinkView(generics.RetrieveAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + lookup_url_kwarg = 'smart_link_pk' + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkSerializer + + def get(self, *args, **kwargs): + """ + Return the details of the selected resolved smart link. + """ + return super(APIResolvedSmartLinkView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_queryset(self): + return SmartLink.objects.get_for(document=self.get_document()) + + +class APIResolvedSmartLinkListView(generics.ListAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of the smart links that apply to the document. + """ + return super(APIResolvedSmartLinkListView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_queryset(self): + return SmartLink.objects.filter( + document_types=self.get_document().document_type + ) + + +class APISmartLinkConditionListView(generics.ListCreateAPIView): + serializer_class = SmartLinkConditionSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the smart link conditions. + """ + return super(APISmartLinkConditionListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_smart_link().conditions.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_smart_link(self): + if self.request.method == 'GET': + permission_required = permission_smart_link_view + else: + permission_required = permission_smart_link_edit + + smart_link = get_object_or_404(SmartLink, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def post(self, *args, **kwargs): + """ + Create a new smart link condition. + """ + return super(APISmartLinkConditionListView, self).post(*args, **kwargs) + + +class APISmartLinkConditionView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'condition_pk' + serializer_class = SmartLinkConditionSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_smart_link().conditions.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_smart_link(self): + if self.request.method == 'GET': + permission_required = permission_smart_link_view + else: + permission_required = permission_smart_link_edit + + smart_link = get_object_or_404(SmartLink, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def patch(self, *args, **kwargs): + """ + Edit the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).put(*args, **kwargs) + + +class APISmartLinkListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + mayan_view_permissions = {'POST': (permission_smart_link_create,)} + permission_classes = (MayanPermission,) + queryset = SmartLink.objects.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the smart links. + """ + + return super(APISmartLinkListView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return SmartLinkSerializer + else: + return WritableSmartLinkSerializer + + def post(self, *args, **kwargs): + """ + Create a new smart link. + """ + + return super(APISmartLinkListView, self).post(*args, **kwargs) + + +class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_smart_link_delete,), + 'GET': (permission_smart_link_view,), + 'PATCH': (permission_smart_link_edit,), + 'PUT': (permission_smart_link_edit,) + } + queryset = SmartLink.objects.all() + + def delete(self, *args, **kwargs): + """ + Delete the selected smart link. + """ + + return super(APISmartLinkView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected smart ink. + """ + + return super(APISmartLinkView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return SmartLinkSerializer + else: + return WritableSmartLinkSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected smart link. + """ + + return super(APISmartLinkView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected smart link. + """ + + return super(APISmartLinkView, self).put(*args, **kwargs) diff --git a/mayan/apps/linking/apps.py b/mayan/apps/linking/apps.py index 54250c85e4..82403ae1ca 100644 --- a/mayan/apps/linking/apps.py +++ b/mayan/apps/linking/apps.py @@ -12,6 +12,7 @@ from common import ( ) from common.widgets import two_state_template from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_smart_link_create, link_smart_link_condition_create, @@ -28,13 +29,15 @@ from .permissions import ( class LinkingApp(MayanAppConfig): + has_tests = True name = 'linking' - test = True verbose_name = _('Linking') def ready(self): super(LinkingApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) diff --git a/mayan/apps/linking/forms.py b/mayan/apps/linking/forms.py index 9fe71956bc..dad3d424cb 100644 --- a/mayan/apps/linking/forms.py +++ b/mayan/apps/linking/forms.py @@ -17,7 +17,7 @@ class SmartLinkForm(forms.ModelForm): unicode(self.fields['dynamic_label'].help_text), ModelAttribute.help_text_for( Document, type_names=['field', 'related', 'property'] - ) + ).replace('\n', '
            ') ] ) @@ -39,7 +39,7 @@ class SmartLinkConditionForm(forms.ModelForm): unicode(self.fields['expression'].help_text), ModelAttribute.help_text_for( Document, type_names=['field', 'related', 'property'] - ) + ).replace('\n', '
            ') ] ) diff --git a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo index 7a4b4bb3b14a6326d1107fab99c6b0b46ca02ba0..21dca3fc9fab5c3a75dd923cefa4ccc9b346d515 100644 GIT binary patch delta 87 zcmZn{Z5Q2el-1N+*T7WQ$U?!;)XLOA*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV& p&P3P9P{Gj5%E)Z;FV;#PpTxZM(!_M2bYjuuBDUzwx7gM)0{|O_8La>S delta 87 zcmZn{Z5Q2el-1Ns*U(Vc$XLO^$ja1I*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iUD{ q*T7iU$WXz^(8|zY@-NoP$qj5#JU)qe>7|M3KqZMqn{TqMV+H^jXc?sd diff --git a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po index 7c0faec79f..2813de3a6c 100644 --- a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "تحرير" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "إنشاء ارتباط ذكي جديد" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "الوثائق" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "الروابط الذكية" @@ -140,55 +142,55 @@ msgstr "is in regular expression" msgid "is in regular expression (case insensitive)" msgstr "is in regular expression (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "يتم تجاهل الإدراج للغرض الأول." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverts the logic of the operator." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "حذف الروابط الذكية" msgid "Edit smart links" msgstr "تحرير الروابط الذكية" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "خطأ بالاستعلام عن الرابط الذكي: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "تحرير الرابط الذكي: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "أضف شرط جديد للرابط الذكي: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "تحرير شرط الرابط الذكي" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo index 5bd142a5bb762dc1e9bcfc305c53c96cadad977f..fb0676d52b4a566e47979718438942ebd65b6ff2 100644 GIT binary patch delta 65 zcmbQkJBN3JA~UbKu7Rnpk%fYxsgZ!Br^d3{@f7w delta 65 zcmbQkJBN3JA~Uak+Fh-k(H_GWIbkSpooF7u92aFk)f5L!Q?RJn#uQ>qj-E0 U^U_Nb(^IV!lF~O@u%s{n00L1E@Bjb+ diff --git a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po index 7ea2d74596..0db0d339a4 100644 --- a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pavlin Koldamov , 2012 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "Редактиране" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Документи" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -140,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "не" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo index 47f0f219f563a4a7566ab3dfb1e067edc0bdfcd2..bd559fdc01e7c61af82eeffe8b7d9e13752ab3d0 100644 GIT binary patch delta 90 zcmX>ma!h2yQC3rPT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA sIul(ZLj^-KD<{9 delta 90 zcmX>ma!h2yQC3qkT|+}%BVz>vBP&x=T>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhP- tT?1oXBSQrvLn}jr$-h{qO, 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "Urediti" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Kreiraj novi smart link" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Smart linkovi" @@ -140,55 +142,55 @@ msgstr "je u regularnom izrazu" msgid "is in regular expression (case insensitive)" msgstr "je u regularnom izrazu (nije bitno velika ili mala slova)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Inkluzija je ignorisana za prvu stavku" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Obrće logiku operatora" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "ne" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "Obrisati smart linkove" msgid "Edit smart links" msgstr "Izmjeni smart linkove" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Greška smart link upita: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Izmjeni smart link: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Dodati nove uslove za smart link: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Izmjeniti uslove smart linka" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo index ddbb8e9cd507f2d3c4c92f6a95579c80d107cf50..602473ec815118f2df68a16dd73d2194c4a66bf7 100644 GIT binary patch delta 84 zcmey&{F!;ea#M3%15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRKjDtUYo^U_Nb(}A)niIYPZqbKiSGzS0;n;8rM delta 84 zcmey&{F!;ea#J&1LqlC7V+8{vD^pWl0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14A=i n17lqyLj@y4D?@{ccPb|*F-GzDB<7`;CZ+>bq$Ez>&1eAt3JVzo diff --git a/mayan/apps/linking/locale/da/LC_MESSAGES/django.po b/mayan/apps/linking/locale/da/LC_MESSAGES/django.po index d43088399a..58ad689ef4 100644 --- a/mayan/apps/linking/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/da/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenter" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo index 72938643108f39d2e329580c2bb4748aeb99fde7..edffb1de6f9b4097f63b63661d4f666b8062b63c 100644 GIT binary patch delta 90 zcmdm~wo`3`HMgm`u7Rnpk%fYxsgk+Fh-k(H^bu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%6I^ tu7R7|M3KqV=u@h+~L<9Tke0RT?@8CU=S diff --git a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po index 3ed5cd7193..4a619bca3f 100644 --- a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mathias Behrle , 2014 @@ -12,33 +12,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Verknüpfungen" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Bezeichnung" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamische Bezeichnung" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Aktiviert" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Fremddokumentattribut" @@ -58,11 +59,11 @@ msgstr "Bearbeiten" msgid "Conditions" msgstr "Bedingungen" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Smart Link erstellen" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Dokumententypen" @@ -70,8 +71,8 @@ msgstr "Dokumententypen" msgid "Documents" msgstr "Dokumente" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ähnliche Dokumente" @@ -143,55 +144,58 @@ msgstr "ist in regulärem Ausdruck" msgid "is in regular expression (case insensitive)" msgstr "ist in regulärem Ausdruck (ohne Groß/Kleinschreibung)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Eine Vorlage zur Verarbeitung eingeben (Django Standard Templating Sprache (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Die {{ document }} Kontextvariable ist verfügbar." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Eine Vorlage zur Verarbeitung eingeben (Django Standard Templating Sprache " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Die " +"{{ document }} Kontextvariable ist verfügbar." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Fehler bei der Generierung des dynamischen Titels: %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "Dieser Smart Link ist nicht erlaubt für diesen Dokumententyp" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Smart Link" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Die Einbeziehung wird für das erste Element ignoriert." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Repräsentiert die Metadaten aller anderen Dokumente" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Ausdruck" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Kehrt die Logik der Operation um." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Verneint" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "Nicht" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Bedingung" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Bedingungen" @@ -211,67 +215,78 @@ msgstr "Smart Links löschen" msgid "Edit smart links" msgstr "Smart Links bearbeiten" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Abfragefehler für Smart Link %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Ähnliche Dokumente für %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Dokumente in Smart Link \"%(smart_link)s\" verknüpft zu \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Dokumente in Smart Link \"%(smart_link)s\" verknüpft zu \"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Aktivierte Dokumententypen" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Dokumententyp, für den Smart Link %s aktiviert werden soll" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Ähnliche Dokumente für Dokument %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Smart Link %s bearbeiten" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Smart Link %s wirklich löschen?" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Bedingungen für Smart Link %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Neue Bedingungen zu Smart Link \"%s\" hinzufügen" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Bedingung für Smart Link bearbeiten" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Bedingung für Smart Link \"%s\" wirklich löschen?" @@ -379,14 +394,14 @@ msgstr "Bedingung für Smart Link \"%s\" wirklich löschen?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo index 2dc9524097a21d216742b458a05ca11390e9f20d..778ddab37d0517d9c774dbeb0cf2d00cbbc86687 100644 GIT binary patch delta 26 hcmX>sbXaIZ9V@T7u7Rnpk%fYxsgsbXaIZ9V@SyuA!l>k+Fh-k(H_G=5E#<%m8UE2W9{O diff --git a/mayan/apps/linking/locale/en/LC_MESSAGES/django.po b/mayan/apps/linking/locale/en/LC_MESSAGES/django.po index 01b93212bf..655495c01e 100644 --- a/mayan/apps/linking/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,25 +18,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 #, fuzzy msgid "Dynamic label" msgstr "dynamic title" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 #, fuzzy msgid "Enabled" msgstr "enabled" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 #, fuzzy msgid "Foreign document attribute" msgstr "foreign document data" @@ -60,11 +60,11 @@ msgstr "" msgid "Conditions" msgstr "conditions" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Create new smart link" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -72,8 +72,8 @@ msgstr "" msgid "Documents" msgstr "" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Smart links" @@ -145,59 +145,59 @@ msgstr "is in regular expression" msgid "is in regular expression (case insensitive)" msgstr "is in regular expression (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " "{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 #, fuzzy msgid "Smart link" msgstr "Smart links" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "The inclusion is ignored for the first item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 #, fuzzy msgid "Expression" msgstr "expression" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverts the logic of the operator." -#: models.py:122 +#: models.py:125 #, fuzzy msgid "Negated" msgstr "negated" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 #, fuzzy msgid "Link condition" msgstr "link condition" -#: models.py:135 +#: models.py:138 #, fuzzy msgid "Link conditions" msgstr "link conditions" @@ -218,66 +218,77 @@ msgstr "Delete smart links" msgid "Edit smart links" msgstr "Edit smart links" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Smart link query error: %s" -#: views.py:78 +#: views.py:68 #, fuzzy, python-format msgid "Documents in smart link: %s" msgstr "documents in smart link: %(group)s" -#: views.py:81 +#: views.py:71 #, fuzzy, python-format msgid "" "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "Error deleting smart link: %(smart_link)s; %(error)s." -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, fuzzy, python-format msgid "Document type for which to enable smart link: %s" msgstr "Are you sure you wish to delete smart link: %s?" -#: views.py:173 +#: views.py:159 #, fuzzy, python-format msgid "Smart links for document: %s" msgstr "smart links (%s)" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Edit smart link: %s" -#: views.py:210 +#: views.py:194 #, fuzzy, python-format #| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Delete smart links" -#: views.py:222 +#: views.py:206 #, fuzzy, python-format msgid "Conditions for smart link: %s" msgstr "conditions for smart link: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Add new conditions to smart link: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Edit smart link condition" -#: views.py:334 +#: views.py:304 #, fuzzy, python-format #| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" diff --git a/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo index c56a9611a76e9d9258260e9c5359d8b471fba2bc..6be0ad0e4164149b8cdcd941d8ebce5f3cfaac26 100644 GIT binary patch delta 87 zcmdn5zF&QVHMgm`u7Rnpk%fYxsgk+Fh-k(H^bu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%6I^ ot^rWmQo+E`%EVxD0e98p@7z&5K8bnhrHSc4C8@=m19, 2014 @@ -11,33 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-05-09 01:40+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Enlaces" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etiqueta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiqueta dinámica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Habilitado" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Datos de documento foráneo" @@ -57,11 +58,11 @@ msgstr "Editar" msgid "Conditions" msgstr "Condiciones" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Crear un enlace inteligente nuevo" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipos de documento" @@ -69,8 +70,8 @@ msgstr "Tipos de documento" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Enlaces inteligentes" @@ -142,55 +143,60 @@ msgstr "está en la expresión regular" msgid "is in regular expression (case insensitive)" msgstr "está en la expresión regular (no sensible a mayúsculas)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La variable {{ document }} está disponible en el contexto de la plantilla." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Introduzca una plantilla para generar. Use el lenguaje de plantillas de " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La " +"variable {{ document }} está disponible en el contexto de la plantilla." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Error generando etiqueta dinámica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Este enlace inteligente no está permitido para el tipo de documento seleccionado." +msgstr "" +"Este enlace inteligente no está permitido para el tipo de documento " +"seleccionado." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Enlace inteligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "La inclusión es ignorada para el primer artículo." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Esto representa los meta datos de los documentos foráneos." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Expresión" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Invierte la lógica del operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Negado" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "no" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condición de enlace" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Condiciones de enlace" @@ -210,67 +216,79 @@ msgstr "Eliminar enlaces inteligentes" msgid "Edit smart links" msgstr "Editar enlaces inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Error en consulta de enlace inteligente: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Documentos en enlace inteligente: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Los documentos en enlace inteligente \"%(smart_link)s\" en relación con \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Los documentos en enlace inteligente \"%(smart_link)s\" en relación con " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipos de documentos seleccionados" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo de documento para el cual habilitar el enlace inteligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Enlaces inteligentes para el documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar enlace inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Borrar enlace inteligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condiciones para enlace inteligente: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Añadir nuevas condiciones de enlace inteligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condición de enlace inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "¿Borrar condición de enlace inteligente: \"%s\"?" @@ -378,14 +396,14 @@ msgstr "¿Borrar condición de enlace inteligente: \"%s\"?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo index 751488f12a924df1796fcd4fbc4627e456092c5b..3d16510f1fbbbc75ae7fb3c45aeb0e998f16132d 100644 GIT binary patch delta 87 zcmX@7a86;vZ4Og&T?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA pIul(ZLj^-KD9oYjot)8|KXS&h0RTis8DIba delta 87 zcmX@7a86;vZ4Og2T|+}%BVz>vBP&x=T>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhP- qT?1oXBSQrvLn}jr$pV~Jlc#e=@%SX>rI#kA1C^vDZvMa-#|8jHsu@@S diff --git a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po index 95490a2616..a8d443514a 100644 --- a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammad Dashtizadeh , 2013 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "برچسب" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "فعال شده" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "مختصات سند خارجی" @@ -55,11 +56,11 @@ msgstr "ویرایش" msgid "Conditions" msgstr "شرایط" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "ایجاد پیوند هوشمند جدید" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "انواع مستندات" @@ -67,8 +68,8 @@ msgstr "انواع مستندات" msgid "Documents" msgstr "مستندات" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "پیوند هوشمند" @@ -140,55 +141,55 @@ msgstr "موجود در عبارات منظم" msgid "is in regular expression (case insensitive)" msgstr "موجود در عبارات منظم (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "این لینک هوشمند برای نوع سند منتخب مجاز نیست" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "پیوند هوشمند" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "ورود اولین آیتم در نطر گرفته نشد." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "این مورد نشانگر متا داده تمامی اسناد می باشد." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "عبارت" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "منطق عملگر را برعکس میکند." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "منفی شده" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "نه " -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "شرط پیوند" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "شرایط پیوند" @@ -208,67 +209,77 @@ msgstr "حذف پیوند هوشمند " msgid "Edit smart links" msgstr "ویرایش پیوند هوشمند " -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "خطای پرسش query از پیوند هوشمند : %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "اسناد در لینک هوشمند: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "نوع سند برای فعالسازی لینک هوشمند: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "ارتباطات هوشمند برای سند :%s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "ویرایش پیوند هوشمند %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "شرایط پیوند هوشمند : %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "اضافه کردن شرط جدید به پیوند هوشمند \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "ویرایش شرط پیوند هوشمند \"%s\"" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo index d0d811bbc9808963fb365bc76c5bcd5fb445d2b4..c41363572859b57a23c4cfe9bda1d4aad5d23c43 100644 GIT binary patch delta 87 zcmcbienWkOHMgm`u7Rnpk%fYxsgv0VrGk+Fh-k(H^bu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%6I^ qu7R$=|r6czhD`(n}N5flAVfHv98*vI77tX&F8M diff --git a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po index 69d42feab8..be383545a6 100644 --- a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pierre Lhoste , 2012 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Liaison" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Libellé" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiquette dynamique" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Activé" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Attribut étranger du document " @@ -56,11 +57,11 @@ msgstr "Modifier" msgid "Conditions" msgstr "Conditions" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Céer un nouveau lien intelligent" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Types de document" @@ -68,8 +69,8 @@ msgstr "Types de document" msgid "Documents" msgstr "Documents" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Liens intelligents" @@ -141,55 +142,59 @@ msgstr "est une expression régulière" msgid "is in regular expression (case insensitive)" msgstr "est une expression régulière (insensible à la casse)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Indiquez un modèle à restituer. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La variable de contexte {{ document }} est disponible." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Indiquez un modèle à restituer. Utilise le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La " +"variable de contexte {{ document }} est disponible." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Erreur de génération de l'étiquette dynamique : %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Un lien intelligent n'est pas autorisé pour le type de document sélectionné." +msgstr "" +"Un lien intelligent n'est pas autorisé pour le type de document sélectionné." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Lien intelligent" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Ignorer l'inclusion sur le premier élément" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Ceci représente la méta-donnée de tous les autres documents." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Expression" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverser l'opérateur logique" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Négation" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "ne pas" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condition sur le lien" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Conditions sur le lien" @@ -209,67 +214,79 @@ msgstr "Supprimer les liens intelligents" msgid "Edit smart links" msgstr "Modifier les liens intelligents" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erreur de requête sur lien intelligent:%s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Lien inetlligent du document: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Documents du lien intelligent \"%(smart_link)s\" en relation avec \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Documents du lien intelligent \"%(smart_link)s\" en relation avec " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Types de documents actifs" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Type de document sur lesquels activer les liens intelligents: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Liens intelligents pour le document: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Modifier le lien intelligent:%s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Supprimer le lien intelligent : %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Conditions sur le lien intelligent: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Ajouter une nouvelle condition au lien intelligent:\"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Modifier la condition sur le lien intelligent" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Supprimer la condition du lien intelligent : \"%s\" ?" @@ -377,14 +394,14 @@ msgstr "Supprimer la condition du lien intelligent : \"%s\" ?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo index 3ea7887c18ea067bb5e9de67b3e66891d90a3210..7d1e8e62ac1b3aa7050ee4521e6b1a70cb2555c4 100644 GIT binary patch delta 84 zcmeyt{DXPIa#M3%15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRKjYIuAS^U_Nb(}A)XrIW)MqbKiYv;+VW7a2JK delta 84 zcmeyt{DXPIa#J&1LqlC7V+8{vD^pWl0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14A=i n17lqyLj@y4D?@{ccWNf5GDh+EB<7`;CZ+>bWRy{ diff --git a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po index bbe5bb1871..1fb8c3c6d9 100644 --- a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "dokumentumok" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo index 6d018cc2d6dd62a004e3b9490ce30473891b3f40..acdb49855f4be4ec3538666e1d22a38760bd83ab 100644 GIT binary patch delta 84 zcmaFM{FZsba#M3%15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRKjYI%GT^U_Nb(}A*?DU%}@qbDC=)CB+vdKn4; delta 84 zcmaFM{FZsba#J&1LqlC7V+8{vD^pWl0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14A=i n17lqyLj@y4D?@{ccWNi6F-GzDB<7`;CZ+>bWTs5s&!`6g2L2fW diff --git a/mayan/apps/linking/locale/id/LC_MESSAGES/django.po b/mayan/apps/linking/locale/id/LC_MESSAGES/django.po index 4dfd49a886..224dbd744d 100644 --- a/mayan/apps/linking/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/id/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "Dokumen" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo index 06d9b9a6d4bed2f23601f9f03407adfc60bf13c3..b8f7eec328609d42024664f4e290e608a0f08176 100644 GIT binary patch delta 593 zcmXZZ&nrYx6u|K_$4Zd5oyIsBqUE5 zz<2bbw^F1X+p!KuuncF>#zpMGBW%KJ9K~m>#?~s41`J?1#;PPIQ!Ek$y6_Zh@DBCh zSM0|R>_8t~=)o510TXzGbJ&MXJ`p!Yu^Hp2b*rfP2S}Zg{n z2*b$@i8}m(+UYlR@V**HNydn$FpdEx@dW4a8g=p>y5~XVIqCqjsEsV5HkQL)+(T{X z^#%)l(o>{{yvHuQ!dm=}I`I!QXtn>JU;-n=^H_r(>cu|l*JV+^vUqu0vss@SHLhzC zBes)Br&7jAI!^fIvRU!>bERBi+st~qe%ekr?x=AlOd@H!PI|{yZLqF2lm>=`fE w$@?YWo(wdOWvX#3$V_JgFPD#H3c*z6jkQ|&W37c3yzT6sm!;, 2016 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Collegamento" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etichetta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etichetta dinamica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Abilitato" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Attributo documento esterno" @@ -56,11 +57,11 @@ msgstr "Modifica" msgid "Conditions" msgstr "Condizioni" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Crea un nuovo link intelligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipi di documento" @@ -68,8 +69,8 @@ msgstr "Tipi di documento" msgid "Documents" msgstr "Documenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Link intelligenti" @@ -141,55 +142,59 @@ msgstr "è un'espressione regolare" msgid "is in regular expression (case insensitive)" msgstr "è un'espressione regolare (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Variabili di contesto disponibili: {{ document }} " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +"Variabili di contesto disponibili: {{ document }} " -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Errore generando l'etichetta dinamica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Questo link intelligente non è consentito per questo tipo di documento." +msgstr "" +"Questo link intelligente non è consentito per questo tipo di documento." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Link intelligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "L'inserimento viene ignorato per la prima voce." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Questo rappresenta i metadati degli altri documenti." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Espressione" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverti la logica dell'operazione" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Negato" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condizione link" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Condizioni link" @@ -209,67 +214,79 @@ msgstr "Cancella link intelligenti" msgid "Edit smart links" msgstr "Modifica link intelligenti" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Interrogazione dei link intelligenti, errore: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Documenti nel link intelligente: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Documenti nel link intelligente: \"%(smart_link)s\" è correlato con \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Documenti nel link intelligente: \"%(smart_link)s\" è correlato con " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipi documento abilitati" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo di documento per il quale attivare collegamento intelligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Collegamenti intelligenti per il documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Modifica il link intelligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Cancella collegamento intelligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condizioni per il collegamento intelligente: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Aggiungi una nuova condizione al link intelligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Modifica condizioni per i link intelligenti" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Cancella condizione collegamento intelligente: \"%s\" ?" @@ -377,14 +394,14 @@ msgstr "Cancella condizione collegamento intelligente: \"%s\" ?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo index da52ed42211f4661900f60b3340e0397c673f97a..8061adf2dade0f5ebfcf875c8cfeaf309176a4b3 100644 GIT binary patch delta 466 zcmXZYJ4?e*6u|M*+PBpXf<$};U*Hf-(pII2lZ#M%WD*ohlu`=PKwA|-tly!7Ac!J< zfIUB;9B5nyL_Q-TmWZ6hLUMO_qhu_%2FnNS+ zgpx${-j8a*7^=AioWW%r#v=^k8LIhn9KkD8^Y=J`kJy9XiGs)!!Jl84q)QE?Q7v## zy>H+mHn11(a1@_0gkPvW{DZ8LUsQie+V8>jP-f0BvxYsdTiIOJG|Y@?Ce~IBr+84V zmA#6wmT2bK)3(^ delta 495 zcmXZY&npCB7{KwzV%IKfi_2*Jn5>jC%soKY@La`JtddV4?b^E~hKywjX%ciQ=G)!t2&$ZJ@{5|QINktE(DOWxU< z@hixOqarEdPGrdxn}&Hzpo=lw3F3WJa}Kc;Pq78BQT07WWltJ7e3GcgpWtGcDYe8Y zBqcql>KRl6Mp5-GVn4288y;Z@FH!YhVLRTU>VLs5e8V`#>kA^?9FkO3VjNXN9@T&n zs`@sL;0ZS3Gj`wy)?kdUQ4c4O+0umSPqkeCH@{I|5%gO0!)B3w-4(V1lm#r*EwBE_GV%qkL+jfzWzE_x;zL=|fsQv|S1WIZE diff --git a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po index 1c84a40b76..ed51dab429 100644 --- a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-09 15:56+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Koppeling" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Label" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamisch label" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Ingeschakeld" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -56,11 +57,11 @@ msgstr "bewerken" msgid "Conditions" msgstr "Conditie" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Nieuwe 'smartlink' aanmaken" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Documentsoorten" @@ -68,8 +69,8 @@ msgstr "Documentsoorten" msgid "Documents" msgstr "Documenten" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "'Smartlinks'" @@ -141,55 +142,55 @@ msgstr "komt overeen met 'reguliere expressie'" msgid "is in regular expression (case insensitive)" msgstr "komt overeen met 'reguliere expressie (hoofdletter ongevoelig)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Slimme link" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "De berekening is genegeerd voor het eerste item" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Uitdrukking" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverteerd de operatorlogica" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "niet" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -209,67 +210,77 @@ msgstr "Verwijderen 'smartlinks'" msgid "Edit smart links" msgstr "Verwijderen 'smartlinks'" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "'smartlink' zoek fout: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "'smartlink': %s bewerken." -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Nieuwe condities aan 'smartlink': \"%s\" toevoegen." -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Bewerk 'smartlink' conditie." -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -377,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo index 7e338b92e4c6789199b9bb422c470ac4956764b7..be825e7b130503d257cf428e5943f3beb70b2511 100644 GIT binary patch delta 744 zcmYMwzfTlF6u|L!5<$5WPB8*Ty)nq~LpRRs-GUysfRWNDp`d}7Y(Y*8SqO?oLvp2+ zka$#-#>z@LOA9U4|G=17Xq0H84W%Z2A1q$7na|9dnfLb1TK;?f#h+9)cR=KKt4NQC zv>y>Ui3M!I>)3(Q*p9dHI6h2V$Ahe&VGf_;QGAbl@`>RJ{=h6=XcHO45D(+6HmS-u zlVt*(SVt}R0h{qNp1^N-4F4jZWceHZS#tOW2eE)Z_v2LS(l}~ESMd}LHA1N?$z?55ojoJM_tCz!%5)I6`S4_~7e{)!iI2h(^i zqOJ2xENX|d45x7s^#vZ|DcnFU_!9Z#7lWQl@mx)qOYA`{)Q4JVxTF5DDQXFZJsWub zCF6opU_D#3wsrD`H#K)}{?7bj>`g>>=Ss%6j&nuNcg78s{Gr-X`a$Me6jxTF3foHy zwe9pwZ8FnYEsn5SS&kOM{x}Ss88g}cqleBS7^92N(3z8kk?=bP2l-3<;o uw#JO(R(zHO`=>@j+qmrp^g@y~Xv8n~Ha0ZX|AJK9%j=W3P~XbTHva=ZUTU!b delta 654 zcmXZYKWNiI6u|LULR-z>wo2PbttVoPm7m`I@&`=vQwuHKgV4cA5L}#eGT`^cz;T~S-#D>#i0kRgwlmhlBn;TK%O?|2wfNomU! zf^<@34(q4|TR4G_aTcH948B2zyl3Lg(#IZt#vH!nmBT#FYaX?spLhtzc?F>)M=nma z|95(xgdQxScD{^@cx|*^$299E7VrsHu!m(Fp#H!`+UG;%HtIch@C@EVE&LQO;A@QG z$B^J0!B^A{BTUC}7WD`6xPWEUg13+%ub6b-TZ~|TbI$W~ z#`>i~!Lxa5qc>{a&DEWaha2}B-qmnxwPbwjik{7RzB9fnIooN*b~}G!_4xI$v9=wq zv8B1$sm153xiZmqE8GmSjUaI5vazOQ8mFDT6!<2S8HSZ0uVGfxw&JYW+Z*O}k3Gv7 M#~HsHOWd9K2l7Bz8UO$Q diff --git a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po index f26283a1a3..4d9386ad22 100644 --- a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # mic , 2012,2015 @@ -10,33 +10,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Łącza" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etykieta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamiczna etykieta" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Włączony" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Atrybut obcego dokumentu" @@ -56,11 +59,11 @@ msgstr "Edytuj" msgid "Conditions" msgstr "Warunki" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Utwórz nowe łącze" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Typy dokumentów" @@ -68,8 +71,8 @@ msgstr "Typy dokumentów" msgid "Documents" msgstr "Dokumenty" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Łącza" @@ -141,55 +144,58 @@ msgstr "jest w wyrażeniu regularnym" msgid "is in regular expression (case insensitive)" msgstr "jest w wyrażeniu regularnym (wielkość liter ma znaczenie)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Zmienna kontekstowa {{ document }} jest dostępna." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Zmienna " +"kontekstowa {{ document }} jest dostępna." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Błąd podczas generowania dynamicznej etykiety: %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "To łącze nie jest dostępne dla wybranego typu dokumentu." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Łącze" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "To wliczenie jest ignorowane dla pierwszego elementu." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "To odpowiada meta danym wszystkich pozostałych dokumentów." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Wyrażenie" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Odwraca logikę operatora." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Zanegowany" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "nie" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Warunek łącza" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Warunki łącza" @@ -209,67 +215,77 @@ msgstr "Usuń łącza" msgid "Edit smart links" msgstr "Edytuj łącza" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Błąd zapytania o łącze: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Dokumenty w łączu: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "Dokumenty w łączu \"%(smart_link)s\" powiązane z \"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Typy dokumentów z udostępnionym łączem" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Typy dokumentów, dla których zostanie udostępnione łącze: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Łącza dla dokumentu: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Edytuj łącze: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Usuń łącze: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Warunki łącza: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Dodaj nowe warunki do łącza: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Edycja warunku łącza" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Usunąć warunek łącza: \"%s\"?" @@ -377,14 +393,14 @@ msgstr "Usunąć warunek łącza: \"%s\"?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo index d2e09912e28e83b199892eec7a19683b6e04700a..353cc9d9bcad3a76e32d9c5b76374a9dce0303a4 100644 GIT binary patch delta 65 zcmX>ldP;P|Cstl_T?12HBMSvXQ!7)0$^TiUK_Vu)MurN8W>!XKlhxU3d3+M{(n}N5 TQ>_#VN+vI6i{8x5zMmNYYEKgZ delta 64 zcmX>ldP;P|CstlFT|+}%BVz>vBP&zW$^TiUfg%RRx<-ZyMut{~29wp%&evlaeS5Xp# diff --git a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po index 15ca42fe00..d47a86fad8 100644 --- a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,33 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Nome" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -57,11 +58,11 @@ msgstr "Editar" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Criar nova ligação inteligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -69,8 +70,8 @@ msgstr "" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ligações inteligentes" @@ -142,55 +143,55 @@ msgstr "contido em expressão regular" msgid "is in regular expression (case insensitive)" msgstr "contido em expressão regular (insensível a minúsculas/maiúsculas)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "A inclusão é ignorada para o primeiro item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverte a lógica do operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "não" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -210,67 +211,77 @@ msgstr "Excluir ligações inteligentes" msgid "Edit smart links" msgstr "Editar ligações inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erro na consulta de ligações inteligentes: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar Ligação inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adicionar novas condições à ligação inteligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condição de ligação inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -378,14 +389,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo index 291998338c397e6b6e10a9fcd5e69b5f7962d144..9659c414c931baff92c1b18a56bca60a02690aaa 100644 GIT binary patch delta 596 zcmXZYODIHP6u|N0IWl9$Ga}rQl)AbzT#tzeE6L-gEGRAwjpB+ylt$T67G|TAg{{@2VvFuOjEq!ceGNpTqLv0&m8mg5f=Vlb4w zxC#yC1K5Br>IDb*fXAo>O;V+YNB?kr=jAYc4i8-kXh7@?x4mUq855N&!C>cHS!2~#0q@H zBK$yY`4_ffC7X0phEU@s`Q>8_b8!VV(JE@9-ONkgg3sR8aw-DP%c!uL`x*KsXmG&=&M%}gL VEq9qC>xsERCsiJp$?OMg-yf_7PssoP delta 622 zcmXZY&r1|x7{KwzpR3OLYnL(%b09=%&!2LnwlWuF^jsNZqBQpmdAq`)Dw{pZ9&GF8L(W} z^7>83%Vsi`bKh~ACZAflU?p4*OOZ9^mxHY7Iqu~-chL0uv(8{;(dfAIa3PEW^YKy; ymi=XO$k*k_<@oX{W*17Y?EKPjWz#5B8j~}v<9<|p;}>~wvHapuZa<$KNc;nrB3A$a diff --git a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po index 368c5190ce..a86c17c364 100644 --- a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -12,33 +12,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Ligações" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Label" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiqueta dinâmica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "habilitado" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Atributo documento externo" @@ -58,11 +59,11 @@ msgstr "Editar" msgid "Conditions" msgstr "condições" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Criar novo link inteligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipo de Documento" @@ -70,8 +71,8 @@ msgstr "Tipo de Documento" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ligações inteligentes" @@ -143,55 +144,59 @@ msgstr "está em expressão regular" msgid "is in regular expression (case insensitive)" msgstr "está em expressão regular (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Introduza um template para renderizar. Use a linguagem de templates padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). A variável {{ document }} está disponível. " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Introduza um template para renderizar. Use a linguagem de templates padrão " +"do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). A " +"variável {{ document }} está disponível. " -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Erro gerando etiqueta dinâmica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Este link inteligente não é permitido para o tipo de documento selecionado. " +msgstr "" +"Este link inteligente não é permitido para o tipo de documento selecionado. " -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "link inteligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "A inclusão é ignorada para o primeiro item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Esta expressão será avaliada contra o documento atual." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "expressão" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverte a lógica do operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "negada" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "não" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "condição de ligação" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "condições de ligação" @@ -211,67 +216,79 @@ msgstr "Excluir ligações inteligentes" msgid "Edit smart links" msgstr "Editar ligações inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erro Links Inteligentes para documento: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Os documentos em referência inteligente: %s " -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Os documentos em link inteligente \"%(smart_link)s\" em relação com \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Os documentos em link inteligente \"%(smart_link)s\" em relação com " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipos de documentos habilitados" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo de documento para o qual a permitir ligação inteligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Links Inteligentes para documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar Ligação inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Apagar link inteligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condições para a ligação inteligente: %s criado com sucesso." -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adiciona novas condições para a ligação inteligente: %s " -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condição de ligação Inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Apagar condição de link inteligente: %s?" @@ -379,14 +396,14 @@ msgstr "Apagar condição de link inteligente: %s?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo index 56b85aa338e5bd1cc7bc6535015be2ed6b401c29..323efe4155dbcc6af999375ff0e7237209348b30 100644 GIT binary patch delta 68 zcmew%`a^WXCstl_T?12HBMSvXQ!7)0$^TiUK_Vu)MurN8W>!XKlhxTe__$=^5cX2C$D3R-Ym&}pBVtZFchHx delta 68 zcmew%`a^WXCstlFT|+}%BVz>vBP&zW$^TiUfg%Pbx`yTo29{PP#*@|AIwtRDi{kf5 X%u6p#Oi#5^D9Voy^4~1M{(u<(!}S!d diff --git a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po index 22ca9f229b..bafa0e3d68 100644 --- a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etichetă" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "Editează" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Creați un nou link inteligent" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "Documente" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Link-uri inteligente" @@ -140,55 +142,55 @@ msgstr "este în expresie regulată" msgid "is in regular expression (case insensitive)" msgstr "este în expresie regulată (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Includerea este ignorată pentru primul element." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inversează logica operatorului." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "nu" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "Ștergeți link-uri inteligente" msgid "Edit smart links" msgstr "Editați link-uri inteligente" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Eroare interogare link-ul:% s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editare legătură inteligentă:% s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adauga la noile condiții de legătură inteligentă: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editați condiție legătură inteligentă" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo index cc892430f8f2d1a7941dea23e2d7c68262b85cc0..1c017621bbc16d190613a08be4af321f872a5cbc 100644 GIT binary patch delta 65 zcmZpaZj|28#Kvo`YhbEtWT9YaYGrCLxt~oMBx0g#WT;?hW@ThHc{^Jbk56J=dTC;M Ts+B@f>0|@;=*=_OU$O!KDEtz1 delta 65 zcmZpaZj|28#Kvo;YiOuzWUOFdWMyhPxt~oMB4S{qU|?cpXgYa2Th(Mc_9z~o#Ju#< R#Pn1vg`(2U)7f9K0stgV5^w+j diff --git a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po index 7a6846669d..360b53636c 100644 --- a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po @@ -1,40 +1,43 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Связывание" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Надпись" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Доступно" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +57,11 @@ msgstr "Редактировать" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Создать новое отношение" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Типы документов" @@ -66,8 +69,8 @@ msgstr "Типы документов" msgid "Documents" msgstr "Документы" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Отношения" @@ -139,55 +142,55 @@ msgstr "В регулярном выражении" msgid "is in regular expression (case insensitive)" msgstr "В регулярном выражении (без учета регистра)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Включение игнорируется для первого элемента." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Инвертирует логику оператора." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "не" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +210,77 @@ msgstr "Удалить отношения" msgid "Edit smart links" msgstr "Редактировать отношения" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Ошибка запроса в отношении %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Редактировать отношение %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Добавить новые условия отношения \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Изменить условие отношения" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo index e620cd432403688ad83e1d1698d6709a36938b95..9f6cddc3f737317b0f384ebd7bef9c863cdff132 100644 GIT binary patch delta 64 zcmcc4a-C(uUS4xu15;fi3k5?{D^r7sr=&pwCb~w33WjD@MrIQ~b@BTo=B1Y=rl(pd S6z9YTdrq!qjGp|Au@C@n)f8g@ delta 64 zcmcc4a-C(uUS2a@LqlC7V+8{vD^t^nr=%eQhUN+e7FMQ~6F+rL?qQ7L_eso4FHKBO QwNfa~i4XRi{FJc>0CABNbN~PV diff --git a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po index 646079185c..22aa897bbc 100644 --- a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po @@ -1,40 +1,42 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Oznaka" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +56,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +209,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo index 1b113136132284d396b70a397d379a3f0b85f3f1..2ea4d10359166a18078a8f43e58085a069220319 100644 GIT binary patch delta 68 zcmeyv_lIwTE(@=@u7Rnpk%fYxsgU delta 68 zcmeyv_lIwTE(@=juA!l>k+Fh-k(H_GWGfbFpooF7u92aFk)f5L!Q>>C?#X{yqWFCh X^U_Nb(^IV!$};1_{5FTNsxbiocY_lI diff --git a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po index 28ddce969b..cf6e38325c 100644 --- a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "Sửa" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Tài liệu" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Liên kết thông minh" @@ -140,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "Xóa liên kết thông minh" msgid "Edit smart links" msgstr "Sửa liên kết thông minh" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Lỗi truy vấn liên kết thông minh: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Sửa liên kết thông minh: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo index bf81964d9bd319beca9169573f7d0a00659f67c9..2b877b254e0603e78f54174ecbba8286e4fac839 100644 GIT binary patch delta 68 zcmew@_*-zp0#;sgT?12HBMSvXQ!7)0$!l4qK_Vu)MurN8W>!XKldrP2^7|y_rI#kA Wr&=jgWyCxCO^#%X-h713oCyG|eH20f delta 68 zcmew@_*-zp0#;r#T|+}%BVz>vBP&zW$!l4qfg%RRx<-ZyMut{~29vL{wocAsi{kf5 X%u6p#Oi#5^sLF_U_S<}z&4LL4so4}g diff --git a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po index d607aedd2c..e2b82f92d7 100644 --- a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "新建智能链接" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "文档" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "智能链接" @@ -140,55 +141,55 @@ msgstr "正则表达式" msgid "is in regular expression (case insensitive)" msgstr "正则表达式(大小写不敏感)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "第一项的包含将被忽略。" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "颠倒操作符的逻辑" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "否" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "删除智能链接" msgid "Edit smart links" msgstr "编辑智能链接" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "智能链接查询错误:%s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "编辑智能链接: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "新建条件到智能链接:\"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "编辑智能链接条件" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/managers.py b/mayan/apps/linking/managers.py new file mode 100644 index 0000000000..e21ce0364c --- /dev/null +++ b/mayan/apps/linking/managers.py @@ -0,0 +1,8 @@ +from django.db import models + + +class SmartLinkManager(models.Manager): + def get_for(self, document): + return self.filter( + document_types=document.document_type, enabled=True + ) diff --git a/mayan/apps/linking/models.py b/mayan/apps/linking/models.py index 776f84fbe6..22e599d50d 100644 --- a/mayan/apps/linking/models.py +++ b/mayan/apps/linking/models.py @@ -11,6 +11,7 @@ from documents.models import Document, DocumentType from .literals import ( INCLUSION_AND, INCLUSION_CHOICES, INCLUSION_OR, OPERATOR_CHOICES ) +from .managers import SmartLinkManager @python_2_unicode_compatible @@ -29,6 +30,8 @@ class SmartLink(models.Model): DocumentType, verbose_name=_('Document types') ) + objects = SmartLinkManager() + def __str__(self): return self.label diff --git a/mayan/apps/linking/serializers.py b/mayan/apps/linking/serializers.py new file mode 100644 index 0000000000..3bc1b3ba50 --- /dev/null +++ b/mayan/apps/linking/serializers.py @@ -0,0 +1,147 @@ +from __future__ import absolute_import, unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse + +from documents.models import DocumentType +from documents.serializers import DocumentSerializer, DocumentTypeSerializer + +from .models import SmartLink, SmartLinkCondition + + +class SmartLinkConditionSerializer(serializers.HyperlinkedModelSerializer): + smart_link_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'enabled', 'expression', 'foreign_document_data', 'inclusion', + 'id', 'negated', 'operator', 'smart_link_url', 'url' + ) + model = SmartLinkCondition + + def create(self, validated_data): + validated_data['smart_link'] = self.context['smart_link'] + return super(SmartLinkConditionSerializer, self).create(validated_data) + + def get_smart_link_url(self, instance): + return reverse( + 'rest_api:smartlink-detail', args=(instance.smart_link.pk,), + request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:smartlinkcondition-detail', args=( + instance.smart_link.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class SmartLinkSerializer(serializers.HyperlinkedModelSerializer): + conditions_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:smartlinkcondition-list' + ) + document_types = DocumentTypeSerializer(read_only=True, many=True) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:smartlink-detail'}, + } + fields = ( + 'conditions_url', 'document_types', 'dynamic_label', 'enabled', + 'label', 'id', 'url' + ) + model = SmartLink + + +class ResolvedSmartLinkDocumentSerializer(DocumentSerializer): + resolved_smart_link_url = serializers.SerializerMethodField() + + class Meta(DocumentSerializer.Meta): + fields = DocumentSerializer.Meta.fields + ( + 'resolved_smart_link_url', + ) + read_only_fields = DocumentSerializer.Meta.fields + + def get_resolved_smart_link_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlink-detail', args=( + self.context['document'].pk, self.context['smart_link'].pk + ), request=self.context['request'], + format=self.context['format'] + ) + + +class ResolvedSmartLinkSerializer(SmartLinkSerializer): + resolved_dynamic_label = serializers.SerializerMethodField() + resolved_smart_link_url = serializers.SerializerMethodField() + resolved_documents_url = serializers.SerializerMethodField() + + class Meta(SmartLinkSerializer.Meta): + fields = SmartLinkSerializer.Meta.fields + ( + 'resolved_dynamic_label', 'resolved_smart_link_url', + 'resolved_documents_url' + ) + read_only_fields = SmartLinkSerializer.Meta.fields + + def get_resolved_documents_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlinkdocument-list', + args=(self.context['document'].pk, instance.pk,), + request=self.context['request'], format=self.context['format'] + ) + + def get_resolved_dynamic_label(self, instance): + return instance.get_dynamic_label(document=self.context['document']) + + def get_resolved_smart_link_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlink-detail', + args=(self.context['document'].pk, instance.pk,), + request=self.context['request'], format=self.context['format'] + ) + + +class WritableSmartLinkSerializer(serializers.ModelSerializer): + conditions_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:smartlinkcondition-list' + ) + document_types_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document type primary keys to which this ' + 'smart link will be attached.' + ), required=False + ) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:smartlink-detail'}, + } + fields = ( + 'conditions_url', 'document_types_pk_list', 'dynamic_label', + 'enabled', 'label', 'id', 'url' + ) + model = SmartLink + + def validate(self, attrs): + document_types_pk_list = attrs.pop('document_types_pk_list', None) + document_types_result = [] + + if document_types_pk_list: + for pk in document_types_pk_list.split(','): + try: + document_type = DocumentType.objects.get(pk=pk) + except DocumentType.DoesNotExist: + raise ValidationError(_('No such document type: %s') % pk) + else: + # Accumulate valid stored document_type pks + document_types_result.append(document_type.pk) + + attrs['document_types'] = DocumentType.objects.filter( + pk__in=document_types_result + ) + return attrs diff --git a/mayan/apps/linking/tests/literals.py b/mayan/apps/linking/tests/literals.py index 279ea65564..6c00f08366 100644 --- a/mayan/apps/linking/tests/literals.py +++ b/mayan/apps/linking/tests/literals.py @@ -1,5 +1,9 @@ from __future__ import unicode_literals +TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA = 'label' +TEST_SMART_LINK_CONDITION_EXPRESSION = 'sample' +TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED = '\'test edited\'' +TEST_SMART_LINK_CONDITION_OPERATOR = 'icontains' TEST_SMART_LINK_DYNAMIC_LABEL = '{{ document.label }}' -TEST_SMART_LINK_EDITED_LABEL = 'test edited label' +TEST_SMART_LINK_LABEL_EDITED = 'test edited label' TEST_SMART_LINK_LABEL = 'test label' diff --git a/mayan/apps/linking/tests/test_api.py b/mayan/apps/linking/tests/test_api.py new file mode 100644 index 0000000000..08d5cba9ae --- /dev/null +++ b/mayan/apps/linking/tests/test_api.py @@ -0,0 +1,344 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from documents.models import DocumentType +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import SmartLink, SmartLinkCondition + +from .literals import ( + TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + TEST_SMART_LINK_CONDITION_EXPRESSION, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + TEST_SMART_LINK_CONDITION_OPERATOR, TEST_SMART_LINK_DYNAMIC_LABEL, + TEST_SMART_LINK_LABEL_EDITED, TEST_SMART_LINK_LABEL +) + + +@override_settings(OCR_AUTO_OCR=False) +class SmartLinkAPITestCase(BaseAPITestCase): + def setUp(self): + super(SmartLinkAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(SmartLinkAPITestCase, self).tearDown() + + def _create_document_type(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_smart_link(self): + return SmartLink.objects.create( + label=TEST_SMART_LINK_LABEL, + dynamic_label=TEST_SMART_LINK_DYNAMIC_LABEL + ) + + def test_smart_link_create_view(self): + response = self.client.post( + reverse('rest_api:smartlink-list'), { + 'label': TEST_SMART_LINK_LABEL + } + ) + + smart_link = SmartLink.objects.first() + self.assertEqual(response.data['id'], smart_link.pk) + self.assertEqual(response.data['label'], TEST_SMART_LINK_LABEL) + + self.assertEqual(SmartLink.objects.count(), 1) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL) + + def test_smart_link_create_with_document_types_view(self): + self._create_document_type() + + response = self.client.post( + reverse('rest_api:smartlink-list'), data={ + 'label': TEST_SMART_LINK_LABEL, + 'document_types_pk_list': self.document_type.pk + }, + ) + + smart_link = SmartLink.objects.first() + self.assertEqual(response.data['id'], smart_link.pk) + self.assertEqual(response.data['label'], TEST_SMART_LINK_LABEL) + + self.assertEqual(SmartLink.objects.count(), 1) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL) + self.assertQuerysetEqual( + smart_link.document_types.all(), (repr(self.document_type),) + ) + + def test_smart_link_delete_view(self): + smart_link = self._create_smart_link() + + self.client.delete( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)) + ) + + self.assertEqual(SmartLink.objects.count(), 0) + + def test_smart_link_detail_view(self): + smart_link = self._create_smart_link() + + response = self.client.get( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)) + ) + + self.assertEqual( + response.data['label'], TEST_SMART_LINK_LABEL + ) + + def test_smart_link_patch_view(self): + self._create_document_type() + smart_link = self._create_smart_link() + + self.client.patch( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)), + data={ + 'label': TEST_SMART_LINK_LABEL_EDITED, + 'document_types_pk_list': self.document_type.pk + } + ) + + smart_link.refresh_from_db() + + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) + self.assertQuerysetEqual( + smart_link.document_types.all(), (repr(self.document_type),) + ) + + def test_smart_link_put_view(self): + smart_link = self._create_smart_link() + + self.client.put( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)), + data={ + 'label': TEST_SMART_LINK_LABEL_EDITED, + } + ) + + smart_link.refresh_from_db() + + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) + + +@override_settings(OCR_AUTO_OCR=False) +class SmartLinkConditionAPITestCase(BaseAPITestCase): + def setUp(self): + super(SmartLinkConditionAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(SmartLinkConditionAPITestCase, self).tearDown() + + def _create_document_type(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_smart_link(self): + self.smart_link = SmartLink.objects.create( + label=TEST_SMART_LINK_LABEL, + dynamic_label=TEST_SMART_LINK_DYNAMIC_LABEL + ) + self.smart_link.document_types.add(self.document_type) + + def _create_smart_link_condition(self): + self.smart_link_condition = SmartLinkCondition.objects.create( + smart_link=self.smart_link, + foreign_document_data=TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + expression=TEST_SMART_LINK_CONDITION_EXPRESSION, + operator=TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_resolved_smart_link_detail_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlink-detail', + args=(self.document.pk, self.smart_link.pk) + ) + ) + + self.assertEqual( + response.data['label'], TEST_SMART_LINK_LABEL + ) + + def test_resolved_smart_link_list_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlink-list', args=(self.document.pk,) + ) + ) + + self.assertEqual( + response.data['results'][0]['label'], TEST_SMART_LINK_LABEL + ) + + def test_resolved_smart_link_document_list_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlinkdocument-list', + args=(self.document.pk, self.smart_link.pk) + ) + ) + + self.assertEqual( + response.data['results'][0]['label'], self.document.label + ) + + def test_smart_link_condition_create_view(self): + self._create_document_type() + self._create_smart_link() + + response = self.client.post( + reverse( + 'rest_api:smartlinkcondition-list', args=(self.smart_link.pk,) + ), { + 'foreign_document_data': TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION, + 'operator': TEST_SMART_LINK_CONDITION_OPERATOR + } + ) + + smart_link_condition = SmartLinkCondition.objects.first() + self.assertEqual(response.data['id'], smart_link_condition.pk) + self.assertEqual( + response.data['operator'], TEST_SMART_LINK_CONDITION_OPERATOR + ) + + self.assertEqual(SmartLinkCondition.objects.count(), 1) + self.assertEqual( + smart_link_condition.operator, TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_smart_link_condition_delete_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.delete( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ) + ) + + self.assertEqual(SmartLinkCondition.objects.count(), 0) + + def test_smart_link_condition_detail_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + response = self.client.get( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ) + ) + + self.assertEqual( + response.data['operator'], TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_smart_link_condition_patch_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.patch( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ), + data={ + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + } + ) + + self.smart_link_condition.refresh_from_db() + + self.assertEqual( + self.smart_link_condition.expression, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED + ) + + def test_smart_link_condition_put_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.put( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ), + data={ + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + 'foreign_document_data': TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + 'operator': TEST_SMART_LINK_CONDITION_OPERATOR, + } + ) + + self.smart_link_condition.refresh_from_db() + + self.assertEqual( + self.smart_link_condition.expression, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED + ) diff --git a/mayan/apps/linking/tests/test_views.py b/mayan/apps/linking/tests/test_views.py index 92d43e8841..218fcffd08 100644 --- a/mayan/apps/linking/tests/test_views.py +++ b/mayan/apps/linking/tests/test_views.py @@ -10,7 +10,7 @@ from ..permissions import ( ) from .literals import ( - TEST_SMART_LINK_DYNAMIC_LABEL, TEST_SMART_LINK_EDITED_LABEL, + TEST_SMART_LINK_DYNAMIC_LABEL, TEST_SMART_LINK_LABEL_EDITED, TEST_SMART_LINK_LABEL ) @@ -80,7 +80,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): response = self.post( 'linking:smart_link_edit', args=(smart_link.pk,), data={ - 'label': TEST_SMART_LINK_EDITED_LABEL + 'label': TEST_SMART_LINK_LABEL_EDITED } ) self.assertEqual(response.status_code, 403) @@ -98,13 +98,13 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): response = self.post( 'linking:smart_link_edit', args=(smart_link.pk,), data={ - 'label': TEST_SMART_LINK_EDITED_LABEL + 'label': TEST_SMART_LINK_LABEL_EDITED }, follow=True ) smart_link = SmartLink.objects.get(pk=smart_link.pk) self.assertContains(response, text='update', status_code=200) - self.assertEqual(smart_link.label, TEST_SMART_LINK_EDITED_LABEL) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) def setup_smart_links(self): smart_link = SmartLink.objects.create( diff --git a/mayan/apps/linking/urls.py b/mayan/apps/linking/urls.py index 461bbf46c3..46eb35e989 100644 --- a/mayan/apps/linking/urls.py +++ b/mayan/apps/linking/urls.py @@ -2,6 +2,11 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import ( + APIResolvedSmartLinkView, APIResolvedSmartLinkDocumentListView, + APIResolvedSmartLinkListView, APISmartLinkListView, APISmartLinkView, + APISmartLinkConditionListView, APISmartLinkConditionView +) from .views import ( DocumentSmartLinkListView, ResolvedSmartLinkView, SetupSmartLinkDocumentTypesView, SmartLinkConditionListView, @@ -60,3 +65,38 @@ urlpatterns = [ name='smart_link_condition_delete' ), ] + +api_urls = [ + url( + r'^smart_links/$', APISmartLinkListView.as_view(), + name='smartlink-list' + ), + url( + r'^smart_links/(?P[0-9]+)/$', APISmartLinkView.as_view(), + name='smartlink-detail' + ), + url( + r'^smart_links/(?P[0-9]+)/conditions/$', + APISmartLinkConditionListView.as_view(), name='smartlinkcondition-list' + ), + url( + r'^smart_links/(?P[0-9]+)/conditions/(?P[0-9]+)/$', + APISmartLinkConditionView.as_view(), + name='smartlinkcondition-detail' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/$', + APIResolvedSmartLinkListView.as_view(), + name='resolvedsmartlink-list' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/(?P[0-9]+)/$', + APIResolvedSmartLinkView.as_view(), + name='resolvedsmartlink-detail' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/(?P[0-9]+)/documents/$', + APIResolvedSmartLinkDocumentListView.as_view(), + name='resolvedsmartlinkdocument-list' + ), +] diff --git a/mayan/apps/linking/views.py b/mayan/apps/linking/views.py index 0af56cfcd4..2f82f757b9 100644 --- a/mayan/apps/linking/views.py +++ b/mayan/apps/linking/views.py @@ -160,9 +160,7 @@ class DocumentSmartLinkListView(SmartLinkListView): } def get_smart_link_queryset(self): - return ResolvedSmartLink.objects.filter( - document_types=self.document.document_type, enabled=True - ) + return ResolvedSmartLink.objects.get_for(document=self.document) class SmartLinkCreateView(SingleObjectCreateView): diff --git a/mayan/apps/lock_manager/apps.py b/mayan/apps/lock_manager/apps.py index 9ad96c81d5..27e11f8bd1 100644 --- a/mayan/apps/lock_manager/apps.py +++ b/mayan/apps/lock_manager/apps.py @@ -5,6 +5,6 @@ from django.utils.translation import ugettext_lazy as _ class LockManagerApp(apps.AppConfig): + has_tests = True name = 'lock_manager' - test = True verbose_name = _('Lock manager') diff --git a/mayan/apps/lock_manager/backends/file_lock.py b/mayan/apps/lock_manager/backends/file_lock.py index 9f020deae2..389d48d297 100644 --- a/mayan/apps/lock_manager/backends/file_lock.py +++ b/mayan/apps/lock_manager/backends/file_lock.py @@ -2,24 +2,30 @@ from __future__ import unicode_literals import logging import json +import os import threading import time import uuid from django.core.files import locks -from common.utils import mkstemp +from common.settings import setting_temporary_directory from ..exceptions import LockError lock = threading.Lock() logger = logging.getLogger(__name__) -temporary_file = mkstemp()[1] -logger.debug('temporary_file: %s', temporary_file) +lock_file = os.path.join( + setting_temporary_directory.value, 'mayan_locks.tmp' +) +open(lock_file, 'a').close() +logger.debug('lock_file: %s', lock_file) class FileLock(object): + lock_file = lock_file + @classmethod def acquire_lock(cls, name, timeout=None): instance = FileLock(name=name, timeout=timeout) @@ -45,7 +51,7 @@ class FileLock(object): self.uuid = uuid.uuid4().get_hex() lock.acquire() - with open(temporary_file, 'r+') as file_object: + with open(self.__class__.lock_file, 'r+') as file_object: locks.lock(f=file_object, flags=locks.LOCK_EX) data = file_object.read() @@ -73,7 +79,7 @@ class FileLock(object): def release(self): lock.acquire() - with open(temporary_file, 'r+') as file_object: + with open(self.__class__.lock_file, 'r+') as file_object: locks.lock(f=file_object, flags=locks.LOCK_EX) try: file_locks = json.loads(file_object.read()) diff --git a/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo index 221ad445d127e535cc07d8a39bafc41d0534f59d..b5f818d167a0650c1b140d7651108b912f2cff5a 100644 GIT binary patch delta 44 zcmX@ka-3ztB3^S{15;fi3k5?{D^r7s>sRymB<7`;CZ?xaDI^w6j%19Ue2}pX06oSI A#sB~S delta 44 zcmX@ka-3ztB3?6HLqlC7V+8{vD^t^n>sL=sXN=\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo index e2cd12d3d41d130cb1922eadf7ab2aca9f614698..26a09a6ac403c895b8fe2de66c6395a946a90e76 100644 GIT binary patch delta 44 zcmey){GEBiB3^S{15;fi3k5?{D^r7s>(}x4B<7`;CZ?xaDI}#&j$w?Re1y>$08K^? A&;S4c delta 44 zcmey){GEBiB3?6HLqlC7V+8{vD^t^n>(@=rVvOSPNz6+xO-xU\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo index 8b747daee398ebf1d70892b008c88f1b632de0da..568092cf4c7b3d2120baaedb386e32d049ff3afd 100644 GIT binary patch delta 47 zcmcc3a+_tsB3^S{15;fi3k5?{D^r7s>re3eB<7`;CZ?xaDI^ugJ2_4+V~n2skg*B? DbtVua delta 47 zcmcc3a+_tsB3?6HLqlC7V+8{vD^t^n>rYH>XN=\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo index b1e5c87306553309d392ec10c314889967c7b50a..c69cc88af7b9a2937b5d9fcb234b03a2c6ab1227 100644 GIT binary patch delta 44 zcmeyw{E2zOB3^S{15;fi3k5?{D^r7s>sRymB<7`;CZ?xaDWoJ$j%19Ue2~!)0811O Aw*UYD delta 44 zcmeyw{E2zOB3?6HLqlC7V+8{vD^t^n>sL=sXN=\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo index 45cb6d6bbc660f69b35fc893a2716a2768431078..37940364c99c30d4e76ad5d5ad18e6b296f4461b 100644 GIT binary patch delta 49 zcmcb^dWUs`4I{6)u7Rnpk%fYxsg7|M3sa6UpsqrqZlR228Cl@ni F0sv$94u${# delta 49 zcmcb^dWUs`4I{6auA!l>k+Fh-k(H_GWKYHelO>s=__$IQsZ4*Cl@hg F0RUdN4vqi- diff --git a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po index 45668e68a8..2a116463c5 100644 --- a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Sperrverwaltung" diff --git a/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a7e30c990fdd2d33100f323088b2afd..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo index d4da72101e836629642aeda2de5ae4798d607a60..52c179db34d3646539f7f2ca784a182a9a9b5fe5 100644 GIT binary patch delta 46 zcmcb~dXsg74I{6)u7Rnpk%fYxsg7|M3sa6W9#gkt#Mo$i6Y6k#2 CxejCi delta 46 zcmcb~dXsg74I{6auA!l>k+Fh-k(H_GWKYILlYcNq@%SX>rI#kAr&=kb7Ecaj>Hq*j C84hUx diff --git a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po index 28b9f597cd..581cfd3485 100644 --- a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestor de bloqueos" diff --git a/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo index 5decc33561e69cd0e97309a52591c10dc6ac7641..e1d705ab1d583d12f7f742ea3be74dddcd5cf0b6 100644 GIT binary patch delta 44 zcmbQiGJ|EpE?#q815;fi3k5?{D^r7s$Jg-qB<7`;CZ?xaDWoM%E@F(He2dWz05mNQ AcK`qY delta 44 zcmbQiGJ|EpE?zTTLqlC7V+8{vD^t^n$Jb15V2tANNz6+xO-xU\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo index cade42fce7f19ee5dfdf59a510261bfcd0429358..747bfbbaaa0c94745636c0d5c757aa3a340177a0 100644 GIT binary patch delta 46 zcmey*`k!@!4I{6)u7Rnpk%fYxsg7|M3sa6VUMU%Oiq9+$K^#A}y CK@J%J delta 46 zcmey*`k!@!4I{6auA!l>k+Fh-k(H_GWKYJ!lO>s=czhD`(n}N5Q>_%ziY6B^^#TAv CTMixo diff --git a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po index 8dd496115e..9acec7476d 100644 --- a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestionnaire de vérrou" diff --git a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo index 576f0cdf0837fe2de007a14690546db8c0a851b4..804bc11bcbf44599486560989bbe48dda8d18f88 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8rqRN$Yrg67$ka6Vp?z6f#OD+cQQ_Ue2fk06Do1 AApigX delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8t2(N$V#2GDh+EB<7`;CZ?xaDP)vRUdE^k05@I^ ACIA2c diff --git a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po index 8ab470b890..c6df18ba11 100644 --- a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo index 2fac201b33dd1155b36aa4fa41d82fda3ca7c9fb..409d24ab81909e242b01d65a581c6a4d2d1044c1 100644 GIT binary patch delta 44 zcmX@he3p4aE3dh(fvK*Mg@U1}m8rqRN$Yuh67$ka6Vp?z6f#pLJ1|C1Ucsme05?Al A0RR91 delta 44 zcmX@he3p4aE3cWZp`oskv4Vk-m8t2(N$V&3F-GzDB<7`;CZ?xaDP*QhUe2fn05vfV A1^@s6 diff --git a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po index 28aab4d7a8..67e30f8732 100644 --- a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo index 9c4fb23e94bdf5907a04bdcf3b25ffa71033e1f9..718dc22871cbe18505338f7bcdef9c6b47eede97 100644 GIT binary patch delta 46 zcmcb^dWUs`4I{6)u7Rnpk%fYxsg7|M3sa6V^C6n2iq9^Awk+Fh-k(H_GWKYKZlSP@LxO@`x(n}N5Q>_#x=P(rj02s0i A(*OVf diff --git a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po index c734ff472b..364936fdc4 100644 --- a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 09:13+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestore blocco" diff --git a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo index 2c3454e1511d6eb8fde9bb78abfd5f4d6d740506..0922c0cea74199035d9675230e926d0b1ae76fd3 100644 GIT binary patch delta 47 zcmX@la-Lg_gUKBL DeS{B| diff --git a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po index 97fbc9977c..897cb25615 100644 --- a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo index 2f721648c0b17e8dcb01c0d3a86cb3b9d86c2a34..dcca13ad49758983b2721e4e917ad03b730ae850 100644 GIT binary patch delta 44 zcmZ3>vX*7SB3^S{15;fi3k5?{D^r7s>sRymB<7`;CZ?xaDHP;Pj%19Ue2_5*05wn! AfdBvi delta 44 zcmZ3>vX*7SB3?6HLqlC7V+8{vD^t^n>sL=sXN=\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo index 123c54baf499ef921cc35c8da258f1b80996481e..e2df8361014b5671d58b91e3ccab1bfa144a09b0 100644 GIT binary patch delta 44 zcmeyy{Ed0SB3^S{15;fi3k5?{D^r7s>(}%6B<7`;CZ?xaDHN1Uj%AFVe3a1;08S4M A>Hq)$ delta 43 zcmeyy{Ed0SB3?6HLqlC7V+8{vD^t^n>(@`tW{l$YNz6+xO-xU\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo index d875d26b9c379eb8b06b8fb8cca778c6ab413f9f..3ad30200380f3a1e3790152a184ed56916351376 100644 GIT binary patch delta 49 zcmeBR>tNep!^mr{YhbEtWT9YaYGrCL*^}`!zfWRbdTC;Ms+B@PNxW0gWMQW0$#qO! E07xkgNB{r; delta 49 zcmeBR>tNep!^mr, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-04 19:32+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gerenciador de bloqueios" diff --git a/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo index 4160a281ac79fa0d3e72ec5fb868efde6ba8f612..d1550a3bdc96b7e16094d0dbaff78f0e2a16aad4 100644 GIT binary patch delta 47 zcmZ3>vX*7SB3^S{15;fi3k5?{D^r7s>v!?{B<7`;CZ?xaDHP?$2l-FVV2qx8nK23g DWKs{O delta 47 zcmZ3>vX*7SB3?6HLqlC7V+8{vD^t^n>vv7AWQ^kXNz6+xO-xU\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo index b9970521ace43ea26d94296f6105eb91ed1a0ded..bc54edce364cf03cd1953d1800df65afb1a4945c 100644 GIT binary patch delta 44 zcmZ3+x{P(gE?#q815;fi3k5?{D^r7s$Jg-qB<7`;CZ?xaDHN4XE@F(He2ei606Omv ALjV8( delta 44 zcmZ3+x{P(gE?zTTLqlC7V+8{vD^t^n$Jb15V2tANNz6+xO-xU\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo index 70062d1c09c54f2a06e470cb120945ae50fbcfdc..c485cb7ffb40659b6ba99a60852baa91c215ae66 100644 GIT binary patch delta 47 zcmdnVvXf=PB3^S{15;fi3k5?{D^r7s>-X^cB<7`;CZ?xaDHP|#2YXJ=VvL@Al`#bX DXs-{* delta 47 zcmdnVvXf=PB3?6HLqlC7V+8{vD^t^n>-S8qW{l$ZNz6+xO-xU\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo index 7ff23a51ff0a9d8b1f2e64e82ec62dfda9742688..7080b698fa70122f8f1c333fe97cb52da988f8aa 100644 GIT binary patch delta 47 zcmZo*X<(VKh}T@#z*N`BLc!3~%G6-u`n~)\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo index 222bc205e2d131e41a2f7ada65843ae673ad31bb..ff0f10fe2ee70946268c3ec9e925de3f64874d23 100644 GIT binary patch delta 47 zcmeyv{D*nMB3^S{15;fi3k5?{D^r7s>$mg!B<7`;CZ?xaDO6>|JNr#eWsIJDfl&tl De>xBS delta 47 zcmeyv{D*nMB3?6HLqlC7V+8{vD^t^n>$guXV~pbWNz6+xO-xU3P7 De?1Td diff --git a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po index a1edde08ae..0cd5a08635 100644 --- a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/mailer/apps.py b/mayan/apps/mailer/apps.py index a333eb3d23..aacea96688 100644 --- a/mayan/apps/mailer/apps.py +++ b/mayan/apps/mailer/apps.py @@ -21,8 +21,8 @@ from .permissions import ( class MailerApp(MayanAppConfig): + has_tests = True name = 'mailer' - test = True verbose_name = _('Mailer') def ready(self): diff --git a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo index 798d7b15f07efcfc0be0b15a8b19b388efdc4fb2..f433c57b652c196480dcfdac6f884bddaf673a6f 100644 GIT binary patch delta 158 zcmZ3;I+MlXo)F7a1|VPrVi_P-0b*t#)&XJ=umIxwKuJp=4N?OG6H9z~&2Jxjw-6owONm*V8?aKKS-xrw%DDALqKD5M%2U0meSTuP)Sl8>%csZzR?;?PkX zYW+YQ{U`S>;_AQf#Kjk$bIyBS&Y2Y+ii59}!o7l8LROItq=?jzTrRSP93eldqGZ@j zigZkbJ|Zdz8`_PpK6w>Pb;r^^ltyBX`^M;1?K>QzII#jAJ%@hI;=Jj;>179SvQ g#T?`?FJpNlhaf&NmLu_!d$GvJxp))rVo_Fp0W?x(HUIzs diff --git a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po index bd25e15981..daba3339f0 100644 --- a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo index 2046c01dcdf56d1ce0ce94f030310073e0c3f0e4..3ebb748f1d520ae8de3c4c1acdcfa260c5339d84 100644 GIT binary patch delta 383 zcmXZXyGjE=6vpw{iABGVtoXNzDwAc>BQxZkNCl2kK2~u7S8xi~ zaT<59h=*9k94GJ!W#0|Txpz2^gHitluN~D_uMB2s9D7`bU0lR_lnVza{UOHqg%zCR zba}ukHn5HfUXJFUkfZ-f9w?7uO0iu{5~+e(`u}tJ7$+qeP-Dck8&21LIGc9cZ6<5l zBs!`GVUi|Bo7kA*-mcznU9?ZzCmp?&owd>+G9l|?9fd(yOQV_{y1jBU>*VKIPWvdg O4e!7{dO!BtfA|H5V=(vt delta 632 zcmXZX&ubGw6u|M>H2$b<1zVvO1xI=jVwNN|6>{-Vf1*`EFM3;(X$Wi+n`DCpp|uvO zAXZpBdQks?R1A$jlAOHHh&QPRPaZu8UJCl1!GSlQ-M8<(o%uZcb!6rHc=Cl{9VCts zPl*X)m$2)SCqxo2;}N`uV^~Jp6X5||#}l}T`)~`V@jcr99kla*;3WP<>Q=;LLWmTJ z<7k_&;9=gs4GAIf7f#_Jrq~0d(0)IMr|~w9<1@T~uh1UsCtk!qn8&kw{vQ~x^S+Lr znB$4XKisl6qu$+sa|mkOFmP)x`!KPeu(uu|M&l{({`7p*Xv%x_TB}l0GHA+B1te-! zB}=tpw5Y00KYs4brEW&WqG~i2qA*;ROOc9HNiNjtvZTUFOVyWUs}e}H7*s+({^HG# z&8D;2bZ$mwa)o?8K9x91CNq=HWo0f~$ef99B_6~(i94fLgK9Yn%BmpmmgCu>-{)VO zRkNwL^jqDQ`kmbdx^Es58@g-ObjKxh&pvc0=<1%W>+28Zk^V%gXV(1qWb)+={f4%I r?wH3^_a$4~thyeGY+~C^@4|q5+dR>2H`Z*pvTZy6qwjvtCtv&np$xIL diff --git a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po index c79c8d79b6..f51f8c2445 100644 --- a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Pavlin Koldamov , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Ел. поща адрес" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Относно" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Съдържание" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Пощ. документ" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Пощ. връзка" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Успешно наредено за изпращане чрез ел.поща." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Изпрати" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo index 6621c1115fb95af1dde5656fe6fe0661c31db5fb..659eccd083db96904b7266ee96233fbd3e5ecea5 100644 GIT binary patch delta 160 zcmbQnx`D;wo)F7a1|VPrVi_P-0b*t#)&XJ=umIw3KuJp=4N?OG6H9z~&2wNAtb)`qgQ^HAp+e9&tpph(57ZMjQ~g+lG!RO8Z1jwf8%s_)lq7 zI#^j#t3m=gSV*LS(Gm(Xt(H=|<3?u9TuvPu73-^k>@nYG!3ppn>~_ s{k_^ec@Mh+^{m1fIp*c#AliI-FOV9GkSnJkM=O^wmj!Bi_xbPLA7l|oGynhq diff --git a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po index b5d974c753..c89a9b6c34 100644 --- a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo index 97a0d55e8d7c486269cc2e8c30e1649cf3317761..0027b5831148c3019cf28a4708d3ed21e7144c9e 100644 GIT binary patch delta 158 zcmZ3>a*WyHo)F7a1|VPrVi_P-0b*t#)&XJ=umIv7prj>`2C0F8i6y?g=DG%^x<(cX zhNf1g1{2Ro8v_MQbd3xZ49%>J%(M-FfXgSbxI{OkC^4@%C$S{I$Vwq7KPk1SBp*l@ iCl+PqPgY|L=J83)OD|1KPqk7=Nt|547(Mv`qYePfWg<2J delta 295 zcmYMu!AiqG5C-5x>!tMM*~5rOUD-riG!$uSA`}vhjb6Mh-6cfZT}d~&>fKW*3O<4d zpF;34M0^r|Met`ohTUa`d0%~P-F>XL9vx%_Hed(VpbtOEU<=OS$#t9>m7s$LTz~se z{*%^oOShG2N~uU#nks<@qZLUrsb@;tT_>x|wVGHql8fV^>M_q_{vL5Z=yn<3=e(Vr zv9W5(d1*9@gjE6g+{51i^Er8kf!EvSNISu7c2NmEp9*WLfKD!xgigaWrhc4;qht_9 w(KycYqs3>w9Jp7VMChUx1tv\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo index 4680b55b45e5897165cbf31321fb7343c1d85785..83db4764a082a16ad0db2d6ca04aefb3d8321a9a 100644 GIT binary patch delta 745 zcmX}p%}W$v9Ki8swpmxFmr?Vbpy@?C$kgnxqqRp-O!8&jyhsOKYmm*@312!z5?zA8 zqK6*oKW~PRG0P0{z=);T^n!_wXz(A?ugb3mP^2 z@ftJuF7YGEfuB)6>?^k7PBOlaH|hUIADft*!$IuDXZRMs<7FI3EA@$@LY$+Y;xL=@ zRfPs~)bqrbCj(TCQqc#LiZ{{0ZM=rR@G6?MRE=F&k9m}W?j{ydZfY{=KR{Xk2p!H> zD>T?kZQwBez#%kQRlrdk!78rd5z2?X;a(|7HIo#jE|M*zggi+*$yVwdDIsUb2TJf- zs(~Drj=YCdC?Ok5$W=?o+u39j$+`bSD*hL|z{w5Dd)LIfDZ?-ymn(C++brm+*{7eR zJL0Z%Yy`co7r6c{CmZAg&-HSiXBEcWV)(SYP>w2Ye`ztyJHD4?Ue5KiPPQlS_h>uQ zY8RuKaDFjziqS%8z8vYn%(OjRs?08xW?Awuoa!IYUo!XOhFZ(efpuN4)=lXf)n_WkfMtb=DDEieiLP=(bn=P6+a`m+!hn@2?lcmQ|8myq6n3+X_g zU=M7lVk`!a!9J|dCeau~;32#X-@|>-z^aSL#vIJifFNT{@G-<(?3w417hi^yffYy@ z`U*Mx4(a4=IL&t018L*KupR5OEE=@q>+k@)2TLh~ThL#Dlz~;xFAx`7LluQTy?7XT zrHT6?hZiAbU?}>-7Ak_S?GJaP9BK1O%be0w!4;e9LP5YZ#QHK}cfmi@HR7bxLdpq8 z*QfbqM>s+)uP1bEN?6l;N>jL?bGS2=?ZsdIqOV~f6pe;ry*v_&_xHO?Rc(oZP^32$ zi}F}B9vSS8pwuR@Ug*4~7*bbk(~9$yVrMl)@{=NK>4G24m;2)<@<(KNT$?%W)(6Ji ztAWv`q+(RICds7Vq6&fim+5+gxQGuuDZ*e3m)oD nSQDn6v4ob+(x8k$Gi!4U$BVqYC8Sg;hU%tjhKk>UPkg@t+\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Mailer" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Zeit" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Nachricht" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "E-Mailadresse" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Betreff" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Nachrichtenteil" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Dokument als E-Mailanhang senden" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link zum Dokument per E-Mail senden" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Fehlerprotokoll" @@ -60,7 +61,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Anlagen: {{ document }}\n\n --------\n Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" +msgstr "" +"Anlagen: {{ document }}\n" +"\n" +" --------\n" +" Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -69,7 +74,12 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Um dieses Dokument anzuzeigen klicken Sie bitte auf folgenden Link: {{ link }}\n\n--------\n Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" +msgstr "" +"Um dieses Dokument anzuzeigen klicken Sie bitte auf folgenden Link: " +"{{ link }}\n" +"\n" +"--------\n" +" Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -105,11 +115,14 @@ msgstr "Link für Dokument: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Vorlage für die Betreffzeile des Formulars für die Dokumentenlinkversendung" +msgstr "" +"Vorlage für die Betreffzeile des Formulars für die Dokumentenlinkversendung" #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Vorlage für den Nachrichtenteil des Formulars für die Dokumentenlinkversendung" +msgstr "" +"Vorlage für den Nachrichtenteil des Formulars für die " +"Dokumentenlinkversendung" #: settings.py:24 msgid "Document: {{ document }}" @@ -117,40 +130,34 @@ msgstr "Dokument: {{ document }}" #: settings.py:25 msgid "Template for the document email form subject line." -msgstr "Vorlage für die Betreffzeile des Formulars für die Dokumentenversendung" +msgstr "" +"Vorlage für die Betreffzeile des Formulars für die Dokumentenversendung" #: settings.py:30 msgid "Template for the document email form body line." -msgstr "Vorlage für den Nachrichtenteil des Formulars für die Dokumentenversendung" +msgstr "" +"Vorlage für den Nachrichtenteil des Formulars für die Dokumentenversendung" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Erfolgreich eingereiht in den E-Mailversand" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Senden" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-Mail Dokument: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "E-Mail Link für Dokument %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-Mail Dokumente: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Links für Dokumente %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a7e30c990fdd2d33100f323088b2afd..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" @@ -17,39 +17,39 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +123,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo index 9388e3b453289b83b62feca34599c28584c97976..efa209613ebdc0603c542403b5226da44e05093f 100644 GIT binary patch delta 1218 zcmb8tKTH!*9Ki8cC~cud6!Bj{If*EZUc6G83OXqX7&Rb~sFS(02f0{!rGH3V#Kpux z6UoI%6P2ZjiHjXv9331q4iYD0LgJ)G7X}A4et)IbhMC;tpIwdG0eF#ub#n_cbXs zfafuRH}N+6tLL0_b77KQZjp5nPw~Gopwwv`!(qIKCvX`{*h_R0*eeX-Qq^VL&HpdB z3qxcliS5VDIEqq%ix^>lHO4j=TGq^&8YRnF)25bna_(%PW3aA3tBdm+SRJif u{ktI!Tl{-ZW4%@R+M4{jftEW1$2`8(5Z%|!SKVxj?OqFZl}CbY4Zi@?66}!x delta 1239 zcmZY7%WD%s9Ki8Olh!`$!}_Xy=-5(FYiruriWL#j-mGX91TVTKQ&_v%joGBN^bijU zTJQmjXTb*^q=%A!K&b~s5K$3(P!JLC9z;Bd-(QlZtq!~UnVH?4ncr{bSL=t?+~?-V zT}9E{?Q(~d>Jck=P+s75e2Ebp3oBKRXRrnhwxWkEI9q!E02^q}V>3R*_4p2J@jJFD zl~X^cbkNbj=-Y8O*5PrK3C>~_CU6Z-l=QKS_6%~Vdpsn7hqxJ^p?trH63`digY}h4 z4d6lC%ls-uWgi`n@D6^$ZRj%VO|o$dAJcBHE-vIbuBH8|vDJgPRD5Gi&*a^k)C=|&EXRuskk6E|cTI%62 zso;G0PcGrbvq|G-hIO~EMv|88=%p@yMW1846Q$Qu)#F~e{M|pF`Kw+Q2RZitKQl8j zKyW);9bAp{b&Y2Ij83J!NjqV*mC=r|=#8<-qJzEB{W{t|92?62 ztf~*?yK4@F%GvOWF}V!39H&=GNU_(rjukg*WMxaItTeMPr*PFc#XtPwM@vaA4=SSt z$=a#TqvnDsWWt!Vwj9mwc)rfME2hZp9pgq`p-`C>Pc%zN3+c)q1A?Qq$C f#*%l&PZ<_fT$ww$Fy{r)+LqvcU3=cHYpnPSBGl); diff --git a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po index 620c494815..2015fd939d 100644 --- a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po @@ -5,13 +5,13 @@ # Translators: # Lory977 , 2015 # Roberto Rosario, 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-05-09 01:36+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-05-28 19:53+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" "MIME-Version: 1.0\n" @@ -20,39 +20,39 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Correspondencia" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Fecha y hora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Mensaje" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Dirección de correo electrónico" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Tema" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Cuerpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Enviar documento" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Enviar enlace" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Biracora de errores de envío" @@ -126,34 +126,26 @@ msgstr "Plantilla para la línea de sujeto del correo electrónico de envio de d msgid "Template for the document email form body line." msgstr "Plantilla para la línea de cuerpo del correo electrónico para envío de documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento" +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "%(count)d documento en sometido para entrega por correo electrónico" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Añadido de forma exitosa a la lista de espera para envío de correo electrónico" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "%(count)d documentos sometidos para entrega por correo electrónico" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Enviar documento: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "%(count)d enlace de documento sometido para entrega por correo electrónico" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Enviar enlace para el documento: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Enviar documentos: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Enviar enlaces para documentos: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "%(count)d enlaces de documento sometido para entrega por correo electrónico" diff --git a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo index 3a0871e7110de62cd0dedcecd1d4d48f9a4767e5..57a04f50db2dcb78b72308349fa30b92c82f8716 100644 GIT binary patch delta 557 zcmX}oze_?<6u|MTzUPnfM`>tjrL`4_KT=-^LIrIG5#?Y+Ig~^pG(^ziR6|SDCHfay z8p5WgT8bK@rNtqlF=!H8>U-5XaQxhJpWJ)yx%C};s&%h+E(jkvNZyb`WZuLNafce- zqYEF-71`7;<%@Mf7Hm2BY&(>G$8hb+?lS!X0K7jR delta 1100 zcmZ9}Pe@cj9Ki9n|Ex^2w5-%}N`%T*-8B{VVp4XnqDW6d)}l|@TzAcN4I>aG{}4ja zGw9H%%W4$Mwn$MFK@fJ04)YW`M2F6uI`;kTuFKlMywAMfoB7S}%{(Z3S26vg-2KF$ z9j4dNf6?pdFC9E+XPt)O#!f873%Cn=@euas;&*Tl?{ip=%UFR4EXMa(jbHEx{={R3 zF>M$w!`MyWIPSnktiv{xjr&jvyMYJs9?HCBY`|yOgzMC`)r}GwT@f)7RKj_68s*!j%N}gL-hO^j)k5NwG zD|X>`l=W3qQ_TLxc?KPL1zYeTUc=9L6)QP!c^}5ytz=F{j<}?u1<>Wls}V3?o5+PrTYDJ3e7jUQ@JK-T%Funrd3)W9M{dk=s4rRTF7$@%nwr?+Y}yTfbd*t*E=NWlYJ}pYAU@?f3`6(;KY- diff --git a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po index 09712e1eff..169211401d 100644 --- a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "تاریخ و زمان" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "پست الکترونیکی" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "موضوع" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "بدنه" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "ایمیل کردن سند" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "پیوند پلکترونیکی" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "الگوی ارسال سند بوسیله پیوند آن از داخل msgid "Template for the document email form body line." msgstr "الگوی ارسال سند از داخل بدنه" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "حداقل یک سند بایست ارایه گردد." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "ورود موفق به صف ارسال از طریق ایمیل" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "ارسال" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "ایمیل سند: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "پیوند ایمیل برای سند: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "ایمیل اسناد: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "پیوند ایمیل برای اسناد: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo index 68ac401944ad9c9f1897e7120af5b9d54bd78c29..e54277a0e2c58d7f951af4eec83969cf5d63c328 100644 GIT binary patch delta 752 zcmX}p&r1|x7{Kv&bjEd8b9Mcd7C3>SpkuScuI6?NqYgsrN)&jI6=r2nc4XC{2&78{ ziimF=QX=Y**)67H$2#^8NTfk@szaxsE`6UId*Ip6K0EX7^S==W$iCKjhXu6=R?>+J&q~7hUah^n{X9bzozc< zrGX#TF@f8$J17lbploapyYYSe{1aZF{)!%U@Ny2X;uzk;Eqsf8c*UXzhw||e^-r2w z^j8n)Dks{A-NAn9S12d?i0$|dZTyX`c&73AriM|TmoS4B?7%y5y@@PQ&tvy-kopbU z^j8ObVN>c4j-bK4h%R2jS)9OKe1btz#Nq=by5hvY9+GbtgPkc~?) zE!9R&Ng?x)8<3C_OUPAA$n4UjoQS^vLr!`UOyJ+BWZn(YhdRSB7lZ189x{vinR!_+ zS-sJK6&d+4$IUz5MLU}>-6{FEgXJKsIuqp;zhHZAmiKawm$kE_1#eWR z6W!@jIOo?^Lc0_$muo?&ZziUjC(G6O)$%+`DmA^In2FjNZy5S@veiF|90%~Xu5PPorDgfIUYIG_Zo6wLOcsd>5o?G16M7qF-|FP-%r^f(h4va9 zLYRs?L`6vwbcnr2AwgZDD2NV49in4UM7QYs8^{l;`jgd;!bh*)U@@@Eoj!0yaSdHo(h4|6RBZ?MJW^my02yDab`{7}@6`p~#z!Z$Y4BP@|11;Ew_5#F@-NJ(oa1ZW*Pa%ze59vUk z;SpFR z4BE?(BmNT7hQGlf_!GvVg!GasEF44S1}Ze*EnI?))wl*&gh+s&Uf>tnITgARDwHW4 z++UDRM;oWj(l={T4o^;z(I2RLB^LlM}iv@pg+1=VVpm>mlo(n5OEpK{r)-)-X%s{u^d( z=vKJr=JDQGqC1vK z@>Ehv^mQdrs?u05HfGAYrOCEoN_=p}R4v=c&j>zvYG8a~c#QWerC3~*8aQt_wlMkXZLY~YtI~uWvTfrl!PU4z;TA4ob;SzS>kztYsFZkbv9h^XTX{Y7 E2ij)_VgLXD diff --git a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po index c4d440791c..621335787d 100644 --- a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Gestionnaire d'envoi" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Date et heure" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Message" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Adresse du courriel" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Sujet" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corps" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Envoyer le document par courriel" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Lien du courriel" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Journal d'erreur du document envoyé" @@ -61,7 +62,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Attaché à ce courriel , voici le - document: {{ document }}\n\n --------\n Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" +msgstr "" +"Attaché à ce courriel , voici le - document: {{ document }}\n" +"\n" +" --------\n" +" Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -70,7 +75,11 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Pour acceder à ce document cliquer sur le lien suivant: {{ link }}\n\n--------\n Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" +msgstr "" +"Pour acceder à ce document cliquer sur le lien suivant: {{ link }}\n" +"\n" +"--------\n" +" Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -124,34 +133,26 @@ msgstr "Modèle pour le sujet du courriel du document." msgid "Template for the document email form body line." msgstr "Modèle pour le corps du courriel du document." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Vous devez fournir au moins un document." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Ajouter à la file d'attente avec succès pour l'envoi via courriel." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Envoyé" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Document du courriel: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Lien du courriel pour ce document: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Documents du courriel: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Liens de courriel pour le document: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo index 3ad8c86f5dd0f9df0ed716f032aaf11b6e411b67..73512aa0244de8c749dfe768f59da5c50db8c907 100644 GIT binary patch delta 158 zcmdnWa+2BNo)F7a1|VPrVi_P-0b*t#)&XJ=umIwIprj>`2C0F8i6y?g=DG%^x<(cX zhNf1g1{2Ro8v_MQbd3xZ49%>J%(M-FfXgSbxI{OkC^4@%C$S{I$Vwq7KPk1SBp*l@ iCl+PqPgY|L={Jd0!l>Fq<+|;}hJ%)gy{H)aE5?#-fiOx=` zX1a!kx<#AVm>g(v~i*kotM zC?220y!6tZ&=WWaZ~6} E0Jf`2NB{r; diff --git a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po index 478628ce15..15ea42c327 100644 --- a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo index 25ce02cbc79eb4c9cc75daece7380e27fecaa7d4..c1384f6abd78bed9b558355648c13173311ba1de 100644 GIT binary patch delta 196 zcmcc3@|ij6o)F7a1|VPpVi_RT0b*7lwgF-g2moSEAPxlLPDTcXXdulC#7}{2AOhKTj8=)=I(1 zz!0d;MAyhr!O+agXfi*e1bKHB9Pc8GNN`EdnNBQwGGA& z$S#@6jP$#U^p_B=1gmn%lFC?Emc>e?641gzqS>`jXbEZYROM3J-rFo$54r1d?-+#V z4+dQHh3MSf^08bgqYBNNg+6$~rQQkm1h}WZJ3JDUPK?I#X^Gk_&=#c+SNCxYH$f7? zS(F5$_%aB?aWt7+(5RkQIG21XG52AlQ#!;b)OFW6ub-XS_Wy(rDy=`9{^2#2m4RI5 ZkFr!5YB18O6f^yTV9-|dM%KL1V?XBLRek^f diff --git a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po index 4a8852851e..e907522c8a 100644 --- a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo index 1ccfce19a49f51d4bc51c7bda7ebcbb968b9f32b..3b15f5cb284b7f45770e79c0adeaf7cc49672f60 100644 GIT binary patch delta 749 zcmXxhPe>F|9Ki86I_v7BZEl)>3YuUe$cAQyU9CMBgi(hD*HHo~hzSN6v>nm4E{aH( z{!m1ZAVLWO5xR~Sp<|soc8jP(cB_+zPKDp!y8hs|pZ8|o+uwWh``7=ZclCSTe5Hs% z@)Y@-JWGBs_#vt-N^VxobsWGQ%;A@&KT+22p?sa zj>&+aTdJF!kcsp|ZZ07`l#ov?AvcxV_mFan!^j^FkPb9jCH-zoKeZT!ITzPv^^jTB zZ_TTEJ~Nn}%cMqW#BocGf64Yr<&x{TMc1{e<4zFWj~C;l=8T2)sBHVL$GW29d$u=R z_J?&Y+m{QHyU{{Dv4dnWT!<4LWT!eSVQpq9oMB5`*PGc}X;=FN!>Ul(j_!r=oPOUi Nt!-;OeQo_R_5stTS)%{| delta 1255 zcmZY7O-$546u|LW78XSC8x%nqf*J&OSx_)+{7Q%(lr;o3Ms7{Fl1jH-+g%dmuvaz4 zm^3Edj1ez-GJ7`~J;>2$VmwHq2R(Swn+HGsuP*D?r0uUWZRgE<)2nUYwv?AQ)ZbJz z&DkYqOsN5}jtlKMUdAP?$Emndt#}q!p@mz~!!3BV`ur}gq5lv!;A7l~FR>XvVy9AN z^@W>l46I@H9^8Yg@gz!sX-r@a8*#R3fW7n=kVD<(A_*+wW_*J3{u`8p-r*p&HYhcW z2XPE~%J&9#6JI&pY{zT36CYp;zNos468IBJMxT*GedQv7`cFoE*<;ojRZa#vE7`hO zteo@AQr>cl8ND-5NArg5=#`=1k1@w~XRD9pR-gC$+I#=J7X0<_*CZ4Ff3vV46NKfu zrmz@K^=3;!Q5Sq~&dyodC~C(t81P)H7A6(miI4Z6Dw(Dg1m{bRGp{d}tdf=c70+_) zIm@5dbGD%^$s@c}-&Oe@uf$qMlS4zv;k`ONoEaGjA2oDNjwaJ%$>Du^D4j`<4Wwz! z6U0lN_6;|1jH2gfbk^`qPmdeA^Xe=sFwCt5Chd&zIdun?U6}@2j+OE|j`Y`;~c&_W1 z=exE~*&KG#(, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-09-24 10:09+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Posta" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data e ora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Messaggio" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Indirizzo email" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Oggetto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento email" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link email" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Log errori mailing documento" @@ -61,7 +62,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Allegato a questa mail è il documento: {{ document }}\n\n --------\nQuesta mail è stata inviata da %(project_title)s (%(project_website)s)" +msgstr "" +"Allegato a questa mail è il documento: {{ document }}\n" +"\n" +" --------\n" +"Questa mail è stata inviata da %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -70,7 +75,11 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Per accedere al documento fai click sul seguente link: {{ link }}\n\n--------\nQuesta mail è stata inviata da %(project_title)s (%(project_website)s)" +msgstr "" +"Per accedere al documento fai click sul seguente link: {{ link }}\n" +"\n" +"--------\n" +"Questa mail è stata inviata da %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -106,11 +115,15 @@ msgstr "Link per il documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Template per l'oggetto del modulo e-mail per l'invio del collegamento al documento." +msgstr "" +"Template per l'oggetto del modulo e-mail per l'invio del collegamento al " +"documento." #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Template per il corpo del modulo e-mail per l'invio del collegamento al documento." +msgstr "" +"Template per il corpo del modulo e-mail per l'invio del collegamento al " +"documento." #: settings.py:24 msgid "Document: {{ document }}" @@ -124,34 +137,26 @@ msgstr "Template per l'oggetto del modulo e-mail per l'invio documento." msgid "Template for the document email form body line." msgstr "Template per il corpo del modulo e-mail per l'invio documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Messo in coda per il recapito via email." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Invia" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Email documento: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Email link per il documento: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Email documenti: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Email link per i documenti: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo index 426a200b38c3dfb03709dcc732dd4d7f4367a47c..07d57c7a14f3b018c6d215d29036a84d64375575 100644 GIT binary patch delta 545 zcmYk%u`dH*7{~Ef+q+Uqk%l1Ysl-BQuZlD#qg)UXi-;U)OEfKQ%{I}+@{$;YNJMN# zqnJ$o1Cf|a2CEo+pY{e%^1Pq-eec@mcekC#p`-Vnz`3Hj=^^@-?xV+BSf~>WU>(DF zifwp_{dniyKVc{5R}A4B4&x`bW1Fw}yC|BRV;EHGNR6_Q0TURv}?%9w;J$MfuF~<2B2k^tY|3z{r za;OL`#Z_a7e7TeiFd93hI#9k;!b&g+<){BwcPl69pf-FP?Zw^Fo^n{Myq+{;`pXyB zY5%;w@jKy}L^6}GXRTBwn@Q>)|6rP%sf3-fQqx&`dMrtW9Jg9atXAAowdmH$m8`W= z-pW;KWvsfD-LlRFw!0j+R5)}CxvW(xZZ10dC9tk-qi!%=Ir`h^)pMq;FU+MsR?bET literal 1828 zcmZ{k&u<(x6vqt|(k{?K`6(#k6$DCD&Hf5O(WC*CW-C=>+o;)aLR9XIch|{`z4drD zU8;%$SHumeR}d%896537AHbDf5&Qw1`M#OSB-sdSJs&^&+5Y<3Z=YN|^MgQn1N9Q> zAE@u5e)kkUC}*D*;tY5Wd=Weko&zs|Z-O6I{hxy8VfVp{;FsVlpamP?x8U30_uxC= zFW_bHG59?A56J8O3qA*mXM|V)7Qpwx3n1%Q23hAS$eMRS_DjJlU=IEU?LUI-|JAdl z?x^BDkad3p^1hG23*gTn>-`mc4SWo;?k6DY{Tn230pi{R7eUthdBt52KXC^i)-wc` zKm)ShBaq|z6ZjVRd)5CZcop_vAcveabDUp5<-*!Hu3UIsE-$09c1#hkqO#7zf@2r^ zvCZc|IE(vWo6q+;>RD7Ar-&aQUgFP&jb~z0dPUO2{m0mNki-Eo#x!K6NBXr(iGdy@|@sC9DJc%rmYF7FK5zFZ?nJC zxUDAE`JkVTbR2BtqbwNMkQ&>!2EjF_q=$dNw;EEn-T64^bb{_OwY%ZUO3?nO-G*au zTTL~ud%~|BbXTd<4VPE0v{4#ch(j=N(qxJB)`irYLhPQQ9Vrvf!N01?o~-KlY{ao> zMmGHfv&|?+e1n0KX-J#7kH)lkQ~9xS3Eo?_M2lnZCt<5~aB$G{ypJBL`#ihlY$lzy zu9fn!0~M!P3zLckTPC@4bE~z~=-=q~jsnzawj0;1@wo3`Fq`1?UfuVtNg}mbqi8H$ zru_Qu;Cirnq~JtWm$%t>|J`rpI~IC_%vO7x0${o3a3GCNNCD7+F*x3U+{^H_7A zruI~F)sFkw$>D0HBERP5olY=qrWVfGrP^e;oQyj4sYv2U z, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 12:35+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Mailer" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Datum en tijd" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Bericht" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "E-mailadres" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Onderwerp" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Body" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "E-mail document" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "E-mail lin" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Succesvol in de wachtrij geplaatst voor levering via e-mail." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Verzenden" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-mail document: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "E-mail link voor document: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-mail documenten: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "E-mail links voor documenten: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo index 1fb73eb45ee66804d0b4ee60db9643d036e2a6fe..e87fe3d6ed6388ac400d230d36221341715d415f 100644 GIT binary patch delta 803 zcmYMxziSg=7{Kvsa%tM8i5h=WqkUUwNz~K3Ytqy+*FXmciBQx*s>=zX1h1EJNufeD ziWE^d5B~wd#ZkB7f5cZeTi7j^uKY23q6{D~9z8&BbAthYXm8OA1#VHKzF8m7?4ByJ*kJKAG9Qg|Cr z;+y`49lXT&6WaI}i#QY4v@)*XBy+D&624FL3h&@J8iKuP=n^Y{d(@g0&&`+_I%8!G(OUr%vJzW5^YINA}Kyr2a4?S{Od zL}t0CmhH>Obc@Ru?1%g{Qc!L$H$O_F)*wdc$7P`YfGCBt4&R>>)uQ7&-o!mbvKKYIashx8fEH((lfj70XszTipdVSu9nR#i?M51pB)dUGw0yRj9~` we%jK(!sWtXUQ!JTQn8oUChuJIcKA`M#*3-CvF0`W=xK5(`jcFVUW`2a52)sOcmMzZ literal 2311 zcmb7^%WoT16o&^WFGG2>yq^c6REeUo$4*MBNnA=El_JF=G$w)NjpxR>_IR$jGZWWt zyQx}Llr;;~6$lBj1F=I$MKl&GHv9qX%Bm7VEZFipGae^#7QmIq-+i3tJu~OG6URQa zFkZs*3Z8p-#_{}cAO0}b?zgOC;CtY4a07f4^gz}Lz!$)e2j^daPhkBGcmli)o&g#@OAJS_$>G($a#McPJ(?9KkE!Q)`IrB){=-MiNK>swPdeGqfsk7*X5kUFG3QBJ!och7RP=b>3Q+ftUOZ_b3T)R|%4w{>b5h{dlV( zYmv1c*J`+)?b!Fb^ieEh>7^M+U+qfMrJ+jRs>)W|=K^v5(awG#sW0Ac(H6?cLCF6o zAEtr)t4fkrlGFe2Gpcmh*_zRO2lk3*Z%7j=9k^5xT@ldoQe{1NLAJGt>`GWyp1ly) zL%XV7%B{UywHJ*P5#()tUtKCW#kcHY(JoDsQ*uwAww)QrfuMas?kcu>P|lgQOGPRb zU1xU6!N{$mu6EUkAjIWrLZQ>?R|IqqHfsI9FSGt+3z^Y!uplVKP@) zsVwhbNipx_7IhHe1+}Z)Hu8<+#R!r@1#?u}5hj#T`Tgp7`^>%^d)$`BUJh#7!w2iq znJpC!V|A(R=hpn#2;V-B*9IR-&`y?Nd3p|qd{UkW%H<-xO%CCByy%=Qm*~`~WIA7- z;pqf#JM%?{E?-XeS;m=!P7yk#$+?_WHL`ze?*=y$L5k|y>#0Db%WSdGzqK?G4F71A!&0l+@aWDV|1N#ip*3u)8fvv$_*m5lFn1- zQJkposUpum6jO4Nyxv)$F%lkWE1PWVwc?=YWCg`XL`iY3FHPe$#(Zi*4 zL*Wu+6)?I!vL}qM!c-z{ TjU##oCF~@@ebYy63?%*mYgdJc diff --git a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po index c38e9cd01a..74d323bc8c 100644 --- a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Annunnaky , 2015 # Wojtek Warczakowski , 2016 @@ -9,49 +9,52 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data i godzina" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Adres e-mail:" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Temat" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Treść" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Dokument e-mail" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link e-mail" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Błędy wysyłania dokumentów" @@ -125,34 +128,26 @@ msgstr "Szablon tematu wiadomości email" msgid "Template for the document email form body line." msgstr "Szablon treści e-mail" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Musisz podać co najmniej jeden dokument." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Przekazanie do wysłania drogą e-mail zakończone powodzeniem. " +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Wyślij" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Dokument e-mail: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Link dokumetu: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Dokumenty e-mail: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Linki dla dokumentów: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo index f1f05abb0b1d5e4e2af96f992960a60f1345b5f3..8191f76dff241245684edadef64f64622d37557e 100644 GIT binary patch delta 383 zcmXZXze>YU6vy$Cr2dPoqKkqR(!nkgOsZ)mgT6pqR1nc6LJ5L2lEkghSp+FuU3>r+ zr{d(`B79XfAt{9mRR!?q+c(KZ%Pp3!UxssGSul=5cnMsxNb|9L1gF VEKb^?b6Thk>pZ z!$JQ9H#Zj-7oDA)baQghNjLpoTYT{N+{@+OdtCmJ+piJnk|09JN#q%F1o?p!q524s zpa#cb8j63nVHh4k8P?zoJb_Vo1;x92DEdCYG57`t;5S?#q)mQtxE6(O^oksIs)1?i^ZXK5yHC^i2^teLLu=yZM0Fz8k$pQFpUd}hN~%Ve`Vxk6!; z-}v`=I8Y24rd9RKD${9$R|4;`ENd}Zu^o$*m_r+^W>YL-H>p?u-^h;hP3h?mX?Rp3 diff --git a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po index f419ceacc2..6d4a1ed648 100644 --- a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Endereço de correio eletrónico" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Assunto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento de correio eletrónico" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Hiperçigação de correio eletrónico" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -105,7 +106,9 @@ msgstr "Hiperligação para o documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Modelo para a linha do assunto do formulário de mensagem da hiperligação de documento." +msgstr "" +"Modelo para a linha do assunto do formulário de mensagem da hiperligação de " +"documento." #: settings.py:20 msgid "Template for the document link email form body line." @@ -123,34 +126,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo index 57b92419dfdc6fbd4f977e02fe13cb2b014ce303..d9e947fc3691c1716a8338ffb8ab5aedca6e4b64 100644 GIT binary patch delta 765 zcmX}pKWGzi6u|M{wU?$%)YK+5HUvBo?NAOcN7C9XLQzx*G>y3Epr;<;u;xOW76+m2 zP${4;4`$ zi{y9mIJsqTAnH9zt>FxsxP$v~7YFbM%CkT5Fb?(py*`EqSWjXK&*M?Nh-q9vo?lWc zob>TW7nArP_AyGqXDA=GiFtezU;m6JS${|$iDkt(q-PlJs!g?e2HD+0Viv1S*8)c`m{dA3!DEHMcgV%5n+sIF?aF9mV@fhC6 zBK6fPPI#C4fTwXMw!r>eVtpAe;B%CYexZY1_En}dOw!a|@k1yfBatR}mD)#2NDcWQ z38tkEk~6Z9?q#MDGD8X3Y6+R0bdw{g`#+@Pf58OyMkVv^i{ADahB+IwZs{?zuAiDy zx}7LQqlw6cX1dn2@N ahL&&N_JUdce&CL7r|SA+Iv?fI?~Fh6@nHY} delta 1339 zcmZ{iO-vI(6vw9&YWWgGQ9fl1f{EAy6(ngu0Y!r;CZfg!4`ytKX2W*3?necQsYmo+ zOg5f8s6k_5qQ>;X!5B<07!wb2Q4=*@^sFZ@8vk#*fTF&1=Qr=obl!XanWwcM>$4wf zif=F&$Ja!kkFgG75eC>2I0wD}i@|X}W0l}(uoRSF1E_;_;8kyZ9^45330MOzf}6o* zunhbHHZqoF-!N%LU?Wc70qz0I!DApLm;eJ{0^9&jc{IUR__H8>>=p)U;4Zigd=Aq7 zw;(n23G4(bOBjoQ17HvGvot1s2;2j&gYUr>P(#)QsBsOv4F5=wF)XnqkP3X|@f}zX z|FcJ`nmTRp7zRn1VUK6LxCQP+el|xF@FCa+z6MFM?;ssi4!x?t7O)!Z1d)pkg6-fa zND8GvQse?iO56lVfd#N1Tm%n*KRgbgi|i=`E@3hXE`y{%a|L5v;3E(Mxbgz7Q2}I> zkc^a~VmLlhfePM&kKP2`KNXHX7>;6_@X=M1ks`38Y%4|-F&e z<{yiNLt=mbXLgnjaI!@~$MT0;$86K$X+zH_3CV@URVfhAHMyE5?A-Am+cQt z?Tr?;aERu)6P&`CpRrYbDmi1HycD*0hUDwZ&LzaV$e9VZL1a9mG?&l&rjiU9fu zOjN~$mb67uMtRygJ3O9y6WHa;j)V%Lt~H{2!v1d|rX)rFetup@>s-3Km@7JzDY%@c zg(3K=G&)@Y|L3Oa^}C#!;B@;TnUN%$CgalJX{qWQk3cuMomx9I>|6;R?;lDUGAU3A ry5;!?(~70@{B5o(rX@I4WTqu*aSM`KMnTmpWrm%{rFFTl!I!>YA-4(t diff --git a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po index fa2bb6d545..275ac5c5d4 100644 --- a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,49 +9,50 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 22:45+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Envio de emails" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data e hora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Mensagem" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Endereço de E-mail" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Assunto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento do e-mail" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Ligação do e-mail" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Registro de erro de envio" @@ -62,7 +63,10 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Se anexa a este documento de e-mail: {{ document }}\n--------\nEste e-mail foi enviado por %(project_title)s (%(project_website)s)" +msgstr "" +"Se anexa a este documento de e-mail: {{ document }}\n" +"--------\n" +"Este e-mail foi enviado por %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -71,7 +75,10 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Para acessar este documento clique na ligação a seguir: {{ link }}\n--------\nEste email foi enviado por %(project_title)s (%(project_website)s)" +msgstr "" +"Para acessar este documento clique na ligação a seguir: {{ link }}\n" +"--------\n" +"Este email foi enviado por %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -107,11 +114,14 @@ msgstr "Link para o documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Modelo para a linha de assunto do e-mail para envio do link do documento." +msgstr "" +"Modelo para a linha de assunto do e-mail para envio do link do documento." #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Modelo para a linha do corpo do formulário do e-mail para envio do link do documento" +msgstr "" +"Modelo para a linha do corpo do formulário do e-mail para envio do link do " +"documento" #: settings.py:24 msgid "Document: {{ document }}" @@ -125,34 +135,26 @@ msgstr "Modelo para a linha de assunto do e-mail de envio de documento." msgid "Template for the document email form body line." msgstr "Modelo para a linha de corpo do e-mail para envio de documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Agregado com êxito à lista de espera para envio de e-mail." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-mail de documentos: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "link de e-mail para documento: %s " - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-mail de documentos: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "link de e-mail para documento: %s " +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo index 3a0d42b05603328ef819a0e4b063f129ddbd5cba..55efd002b1f51e144a6db441ba8237a4ee351e31 100644 GIT binary patch delta 199 zcmbQvx`8F?o)F7a1|VPpVi_RT0b*7lwgF-g2moSEAPxlLX*(4p(BTW*Kb?(R(kz|)VkWYuPN9t`N zHyGzL0ZUBR&5JLBTP+J7pU#Q(++*Jz>\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo index 5bd5e1c07b9938806297f9e22da082b72cb8a14d..39b9d228c9fac5c6d83810356c08b76ae72f9ee7 100644 GIT binary patch delta 535 zcmYk&J4?e*6u|NHp{=#nTCj=_jFX67OhQ{FgM&JBD5#~Aog$P{C=DiU*RB;okl-dx zBIxQQMbs~$;NYr@Ac%vT|64P7;N+Kcb8=tb$=gKdH5EQph%s`8ydWpY_X!KsAE=@^z~-@x26k~8d%n-ONd1K=)>mfPR*C@)_iz*Qc#ctg^XpIK zPzw7{MoAg0*}n~WGcsg9Z3=VuPcKgzCu5|%;Sl*hlJbXy9P#b~*WOWZ!}|%=%d0}m z3S&*xvu0KkT1L}iJKLgIY1iDE-4I(=vtp`-rqh=ZhOX*4)5tApM66)BO;K{JhFiCq uwqvSAd%xl|ZFDWCW_!I*DPFJ|)s|Id5~t-Q!sVNGcs=M1L>@d5&Hn-{SVpn{ delta 771 zcmZwD%WD%+6u{w|N29jsE26Dd@k&?PBsQt75<#VIMB)SLLbH(}nTEjRVUh`S6&ooE z6%+;+E(F1yAoPjaHt~VF6YhZP`~hwR!9{oeZiuctaOS)B%*mOX`)=U(P`w@UKNZA& z@(8&>9wn0=9>fRq<45eruecAt<6&&$DDHOOhrB`@XD_i2XHoZG!vNmGJ$MJlg{X@x z3;ls*)CYKiBlsG1;}@L3Z+HxMQGeu+PlyBT!#zSA#M!R5G0DD!5}O#tHpa1!Q;gyH zj&&hYEKX3UVF+K~4P5W;{hT7jegrRL8TaBgX7O{k9;V18h#;x|ke${n?MhXa%EekPV@jhcEz_V-ESNG= zOxt<0P>niK@1==3JDoNwm3iB;7UW&qw9Sm1FP3G-v~o4GydY~iLz;ObXGNWoH{U-K ziNzxEDLENWOiw#Myko(c$mE$wY)ZysiPO%oZ?xCSS;c6{DCE-4S>H|PnJ*Pg8ilNF zWX*&u+v~r47rfV>t4-BXtL_rd4fR&-sFrl^t1Y#n-l!F~;XcwS^?MeNC9TV{+uM}< zq@}j#-(gJCZA6_@fludNx{K<)+H@bPCeu1StIS(d+qz4a))?VFpyeKw4d&}6chPM) NgFPobQRipi${)XLxkUf~ diff --git a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po index 08e00e499f..dfcc972c80 100644 --- a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po @@ -1,56 +1,59 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-07-13 21:46+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Электронный почтальон" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Дата и время" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Сообщение" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Адрес электронной почты" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Тема" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Тело письма" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Журнал ошибок отправки электронной почты" @@ -124,34 +127,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Успешно добавлено в очередь доставки электронной почты." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Отправить" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo index 7947303cfc8fbdc70a1094a396a537f34037a13f..b6a481b423b1cade0558e29c83ffd8b9e00d7ec1 100644 GIT binary patch delta 161 zcmeyt(#K+PPl#nI0}wC*u?!Ha05LNV>i{tbSOD=Aprj>`2C0F8i6y?g=DG%^x<(cX zhNf1g1{2Ro8v_MQbd3xZ49%>J%(M-FfXgSbxI{OkC^4@%C$S{I$Vwq7KPk1SBp*l@ lCl+PqPgY}0;rB_*OD|1KPqk7g&WR89oZQJ6J^2e`0sv;kBoqJu delta 301 zcmYL@!AiqG5QYKh29_!xbq z;$wJpEP_9L4F3%O&wM!F&iiKQd|IR(VxKrBc8Lk`tBg1x9*B)?S>2y6C_r|bqw%k_ zYYi+K-Io$U7^qRuLMsHRXWbhrb7EzUu5e~pESEReIA*TPyi?$wKN>N9#`z$-XH)FU zw$zG+!k`ZxcjDiD;lBNS{U8*iO7Q>y diff --git a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po index 193e9e08e9..6c9ddb5208 100644 --- a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo index 58c2f067873cfe998825b5708745b173350fe802..2f4a11fd46e7618504ce9fae1f62f3b017273913 100644 GIT binary patch delta 161 zcmX@fa)sIAo)F7a1|VPrVi_P-0b*t#)&XJ=umIv&KuJp=4N?OG6H9z~&2={Jd0!l>Fq<+|;}hJ%)gy{H)aE5?#-fiOx=` zX1a!kx<#AVm>g(v~i>f}(y zD1M*By!6t\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo index d8ab2ea206307a30c726de7ffa8be0ad798fd0b2..78c94095c9c03274207ba62588dfbfb918e2db94 100644 GIT binary patch delta 161 zcmZ3>a*o;Jo)F7a1|VPrVi_P-0b*t#)&XJ=umIvIKuJp=4N?OG6H9z~&2={Jd0!l>Fq<+|;}hJ%)gy{H)aE5?#-fiOx=` zX1a!kx<#AVm>g(v~i{A7Q| zD1M*By!6t`{B*;_7t0!-&FOryqv6SpRnMliKU=t%0RTgg BO~(KL diff --git a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po index 68d6790c07..33466488ab 100644 --- a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "至少要有一个文档" - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/metadata/api_views.py b/mayan/apps/metadata/api_views.py index 7c7a6070f0..4d16d62d8f 100644 --- a/mayan/apps/metadata/api_views.py +++ b/mayan/apps/metadata/api_views.py @@ -2,8 +2,7 @@ from __future__ import absolute_import, unicode_literals from django.shortcuts import get_object_or_404 -from rest_framework import generics, status, views -from rest_framework.response import Response +from rest_framework import generics from acls.models import AccessControlList from documents.models import Document, DocumentType @@ -13,7 +12,7 @@ from documents.permissions import ( from rest_api.filters import MayanObjectPermissionsFilter from rest_api.permissions import MayanPermission -from .models import DocumentMetadata, DocumentTypeMetadataType, MetadataType +from .models import MetadataType from .permissions import ( permission_metadata_document_add, permission_metadata_document_remove, permission_metadata_document_edit, permission_metadata_document_view, @@ -21,283 +20,315 @@ from .permissions import ( permission_metadata_type_edit, permission_metadata_type_view ) from .serializers import ( - DocumentMetadataSerializer, DocumentNewMetadataSerializer, - DocumentTypeNewMetadataTypeSerializer, MetadataTypeSerializer, - DocumentTypeMetadataTypeSerializer + DocumentMetadataSerializer, DocumentTypeMetadataTypeSerializer, + MetadataTypeSerializer, NewDocumentMetadataSerializer, + NewDocumentTypeMetadataTypeSerializer, + WritableDocumentTypeMetadataTypeSerializer ) -class APIMetadataTypeListView(generics.ListCreateAPIView): - serializer_class = MetadataTypeSerializer - queryset = MetadataType.objects.all() +class APIDocumentMetadataListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of selected document's metadata types and values. + """ - permission_classes = (MayanPermission,) + return super(APIDocumentMetadataListView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_metadata_document_view + else: + permission_required = permission_metadata_document_add + + document = get_object_or_404( + Document, pk=self.kwargs['document_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentMetadataSerializer + else: + return NewDocumentMetadataSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add an existing metadata type and value to the selected document. + """ + + return super(APIDocumentMetadataListView, self).post(*args, **kwargs) + + +class APIDocumentMetadataView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'metadata_pk' + + def delete(self, *args, **kwargs): + """ + Remove this metadata entry from the selected document. + """ + + return super(APIDocumentMetadataView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_metadata_document_view + elif self.request.method == 'PUT': + permission_required = permission_metadata_document_edit + elif self.request.method == 'PATCH': + permission_required = permission_metadata_document_edit + elif self.request.method == 'DELETE': + permission_required = permission_metadata_document_remove + + document = get_object_or_404( + Document, pk=self.kwargs['document_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentMetadataSerializer + else: + return DocumentMetadataSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).put(*args, **kwargs) + + +class APIMetadataTypeListView(generics.ListCreateAPIView): filter_backends = (MayanObjectPermissionsFilter,) mayan_object_permissions = {'GET': (permission_metadata_type_view,)} mayan_view_permissions = {'POST': (permission_metadata_type_create,)} + permission_classes = (MayanPermission,) + queryset = MetadataType.objects.all() + serializer_class = MetadataTypeSerializer def get(self, *args, **kwargs): """ Returns a list of all the metadata types. """ + return super(APIMetadataTypeListView, self).get(*args, **kwargs) def post(self, *args, **kwargs): """ Create a new metadata type. """ + return super(APIMetadataTypeListView, self).post(*args, **kwargs) class APIMetadataTypeView(generics.RetrieveUpdateDestroyAPIView): - serializer_class = MetadataTypeSerializer - queryset = MetadataType.objects.all() - - permission_classes = (MayanPermission,) + lookup_url_kwarg = 'metadata_type_pk' mayan_object_permissions = { 'GET': (permission_metadata_type_view,), 'PUT': (permission_metadata_type_edit,), 'PATCH': (permission_metadata_type_edit,), 'DELETE': (permission_metadata_type_delete,) } + permission_classes = (MayanPermission,) + queryset = MetadataType.objects.all() + serializer_class = MetadataTypeSerializer def delete(self, *args, **kwargs): """ Delete the selected metadata type. """ + return super(APIMetadataTypeView, self).delete(*args, **kwargs) def get(self, *args, **kwargs): """ Return the details of the selected metadata type. """ + return super(APIMetadataTypeView, self).get(*args, **kwargs) def patch(self, *args, **kwargs): """ Edit the selected metadata type. """ + return super(APIMetadataTypeView, self).patch(*args, **kwargs) def put(self, *args, **kwargs): """ Edit the selected metadata type. """ + return super(APIMetadataTypeView, self).put(*args, **kwargs) -class APIDocumentMetadataListView(generics.ListCreateAPIView): - permission_classes = (MayanPermission,) - - def get_document(self): - return get_object_or_404(Document, pk=self.kwargs['pk']) - - def get_queryset(self): - document = self.get_document() - - if self.request.method == 'GET': - # Make sure the use has the permission to see the metadata for - # this document - AccessControlList.objects.check_access( - permissions=permission_metadata_document_view, - user=self.request.user, obj=document - ) - - return document.metadata.all() - elif self.request.method == 'POST': - # Make sure the use has the permission to add metadata to this - # document - AccessControlList.objects.check_access( - permissions=permission_metadata_document_add, - user=self.request.user, obj=document - ) - - return document.metadata.all() - - def get_serializer_class(self): - if self.request.method == 'GET': - return DocumentMetadataSerializer - elif self.request.method == 'POST': - return DocumentNewMetadataSerializer +class APIDocumentTypeMetadataTypeListView(generics.ListCreateAPIView): + lookup_url_kwarg = 'metadata_type_pk' def get(self, *args, **kwargs): """ - Returns a list of selected document's metadata types and values. + Returns a list of selected document type's metadata types. """ - return super(APIDocumentMetadataListView, self).get(*args, **kwargs) - def perform_create(self, serializer): - serializer.document = self.get_document() - serializer.save() + return super( + APIDocumentTypeMetadataTypeListView, self + ).get(*args, **kwargs) - def post(self, *args, **kwargs): - """ - Add an existing metadata type and value to the selected document. - """ - return super(APIDocumentMetadataListView, self).post(*args, **kwargs) + def get_document_type(self): + if self.request.method == 'GET': + permission_required = permission_document_type_view + else: + permission_required = permission_document_type_edit - -class APIDocumentMetadataView(generics.RetrieveUpdateDestroyAPIView): - serializer_class = DocumentMetadataSerializer - queryset = DocumentMetadata.objects.all() - - permission_classes = (MayanPermission,) - mayan_object_permissions = { - 'GET': (permission_metadata_document_view,), - 'PUT': (permission_metadata_document_edit,), - 'PATCH': (permission_metadata_document_edit,), - 'DELETE': (permission_metadata_document_remove,) - } - - def delete(self, *args, **kwargs): - """ - Delete the selected document metadata type and value. - """ - try: - return super( - APIDocumentMetadataView, self - ).delete(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - def get(self, *args, **kwargs): - """ - Return the details of the selected document metadata type and value. - """ - return super(APIDocumentMetadataView, self).get(*args, **kwargs) - - def patch(self, *args, **kwargs): - """ - Edit the selected document metadata type and value. - """ - try: - return super( - APIDocumentMetadataView, self - ).patch(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - def put(self, *args, **kwargs): - """ - Edit the selected document metadata type and value. - """ - try: - return super(APIDocumentMetadataView, self).put(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - -class APIDocumentTypeMetadataTypeOptionalListView(generics.ListCreateAPIView): - permission_classes = (MayanPermission,) - - mayan_view_permissions = {'POST': (permission_document_type_edit,)} - - required_metadata = False - - def get_queryset(self): document_type = get_object_or_404( DocumentType, pk=self.kwargs['document_type_pk'] ) + AccessControlList.objects.check_access( - permissions=permission_document_type_view, user=self.request.user, + permissions=permission_required, user=self.request.user, obj=document_type ) - return document_type.metadata.filter(required=self.required_metadata) + return document_type - def get(self, *args, **kwargs): - """ - Returns a list of selected document type's optional metadata types. - """ - return super( - APIDocumentTypeMetadataTypeOptionalListView, self - ).get(*args, **kwargs) + def get_queryset(self): + return self.get_document_type().metadata.all() def get_serializer_class(self): if self.request.method == 'GET': return DocumentTypeMetadataTypeSerializer - elif self.request.method == 'POST': - return DocumentTypeNewMetadataTypeSerializer + else: + return NewDocumentTypeMetadataTypeSerializer - def post(self, request, *args, **kwargs): + def get_serializer_context(self): """ - Add an optional metadata type to a document type. + Extra context provided to the serializer class. """ + + return { + 'document_type': self.get_document_type(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add a metadata type to the selected document type. + """ + + return super( + APIDocumentTypeMetadataTypeListView, self + ).post(*args, **kwargs) + + +class APIDocumentTypeMetadataTypeView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'metadata_type_pk' + serializer_class = DocumentTypeMetadataTypeSerializer + + def delete(self, *args, **kwargs): + """ + Remove a metadata type from a document type. + """ + + return super( + APIDocumentTypeMetadataTypeView, self + ).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Retrieve the details of a document type metadata type. + """ + + return super( + APIDocumentTypeMetadataTypeView, self + ).get(*args, **kwargs) + + def get_document_type(self): + if self.request.method == 'GET': + permission_required = permission_document_type_view + else: + permission_required = permission_document_type_edit + document_type = get_object_or_404( DocumentType, pk=self.kwargs['document_type_pk'] ) AccessControlList.objects.check_access( - permissions=permission_document_type_edit, user=self.request.user, + permissions=permission_required, user=self.request.user, obj=document_type ) - serializer = self.get_serializer(data=self.request.POST) + return document_type - if serializer.is_valid(): - metadata_type = get_object_or_404( - MetadataType, pk=serializer.data['metadata_type_pk'] - ) - document_type_metadata_type = document_type.metadata.create( - metadata_type=metadata_type, required=self.required_metadata - ) - return Response( - status=status.HTTP_201_CREATED, - data={ - 'pk': document_type_metadata_type.pk - } - ) + def get_queryset(self): + return self.get_document_type().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeMetadataTypeSerializer else: - return Response(status=status.HTTP_400_BAD_REQUEST) + return WritableDocumentTypeMetadataTypeSerializer - -class APIDocumentTypeMetadataTypeRequiredListView(APIDocumentTypeMetadataTypeOptionalListView): - required_metadata = True - - def get(self, *args, **kwargs): + def patch(self, *args, **kwargs): """ - Returns a list of the selected document type's required metadata - types. + Edit the selected document type metadata type. """ + return super( - APIDocumentTypeMetadataTypeRequiredListView, self - ).get(*args, **kwargs) + APIDocumentTypeMetadataTypeView, self + ).patch(*args, **kwargs) - def post(self, request, *args, **kwargs): + def put(self, *args, **kwargs): """ - Add a required metadata type to a document type. + Edit the selected document type metadata type. """ + return super( - APIDocumentTypeMetadataTypeRequiredListView, self - ).post(request, *args, **kwargs) - - -class APIDocumentTypeMetadataTypeView(views.APIView): - def delete(self, request, *args, **kwargs): - """ - Remove a metadata type from a document type. - """ - - document_type_metadata_type = get_object_or_404( - DocumentTypeMetadataType, pk=self.kwargs['pk'] - ) - - AccessControlList.objects.check_access( - permissions=permission_document_type_edit, user=self.request.user, - obj=document_type_metadata_type.document_type - ) - - document_type_metadata_type.delete() - return Response(status=status.HTTP_204_NO_CONTENT) + APIDocumentTypeMetadataTypeView, self + ).put(*args, **kwargs) diff --git a/mayan/apps/metadata/apps.py b/mayan/apps/metadata/apps.py index bbac674ad4..3f3e380d1d 100644 --- a/mayan/apps/metadata/apps.py +++ b/mayan/apps/metadata/apps.py @@ -24,7 +24,7 @@ from rest_api.classes import APIEndPoint from .classes import DocumentMetadataHelper from .handlers import ( - post_document_type_metadata_type_add, + handler_index_document, post_document_type_metadata_type_add, post_document_type_metadata_type_delete, post_post_document_type_change_metadata ) @@ -47,8 +47,8 @@ logger = logging.getLogger(__name__) class MetadataApp(MayanAppConfig): + has_tests = True name = 'metadata' - test = True verbose_name = _('Metadata') def ready(self): @@ -248,3 +248,16 @@ class MetadataApp(MayanAppConfig): dispatch_uid='post_document_type_metadata_type_add', sender=DocumentTypeMetadataType ) + + # Index updating + + post_delete.connect( + handler_index_document, + dispatch_uid='handler_index_document_delete', + sender=DocumentMetadata + ) + post_save.connect( + handler_index_document, + dispatch_uid='handler_index_document_save', + sender=DocumentMetadata + ) diff --git a/mayan/apps/metadata/classes.py b/mayan/apps/metadata/classes.py index 08bd9a5d03..d4a5128b0b 100644 --- a/mayan/apps/metadata/classes.py +++ b/mayan/apps/metadata/classes.py @@ -1,25 +1,16 @@ from __future__ import unicode_literals -from django.core.exceptions import ObjectDoesNotExist -from django.utils.translation import ugettext_lazy as _ +from common.classes import PropertyHelper -class DocumentMetadataHelper(object): +class DocumentMetadataHelper(PropertyHelper): @staticmethod @property - def constructor(source_object): - return DocumentMetadataHelper(source_object) + def constructor(*args, **kwargs): + return DocumentMetadataHelper(*args, **kwargs) - def __init__(self, instance): - self.instance = instance - - def __getattr__(self, name): - try: - return self.instance.metadata.get(metadata_type__name=name).value - except ObjectDoesNotExist: - raise AttributeError( - _('\'metadata\' object has no attribute \'%s\'') % name - ) + def get_result(self, name): + return self.instance.metadata.get(metadata_type__name=name).value class MetadataLookup(object): diff --git a/mayan/apps/metadata/forms.py b/mayan/apps/metadata/forms.py index c220154ac4..369e8c09e2 100644 --- a/mayan/apps/metadata/forms.py +++ b/mayan/apps/metadata/forms.py @@ -16,11 +16,18 @@ class DocumentMetadataForm(forms.Form): label=_('Name'), required=False, widget=forms.TextInput(attrs={'readonly': 'readonly'}) ) - value = forms.CharField(label=_('Value'), required=False) + value = forms.CharField( + label=_('Value'), required=False, widget=forms.TextInput( + attrs={'class': 'metadata-value'} + ) + ) update = forms.BooleanField( initial=True, label=_('Update'), required=False ) + class Media: + js = ('metadata/js/metadata_form.js',) + def __init__(self, *args, **kwargs): super(DocumentMetadataForm, self).__init__(*args, **kwargs) diff --git a/mayan/apps/metadata/handlers.py b/mayan/apps/metadata/handlers.py index da408481e4..7419426d8d 100644 --- a/mayan/apps/metadata/handlers.py +++ b/mayan/apps/metadata/handlers.py @@ -4,6 +4,8 @@ from django.apps import apps import logging +from document_indexing.tasks import task_index_document + from .tasks import task_add_required_metadata_type, task_remove_metadata_type logger = logging.getLogger(__name__) @@ -49,3 +51,9 @@ def post_post_document_type_change_metadata(sender, instance, **kwargs): metadata_type=document_type_metadata_type.metadata_type, value=None ) + + +def handler_index_document(sender, **kwargs): + task_index_document.apply_async( + kwargs=dict(document_id=kwargs['instance'].document.pk) + ) diff --git a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo index 6f20d3280aab42b163f24bdddc9c5ee4f820dcc8..9f368644789445f5c466be7a9c97f6ae6367ebc9 100644 GIT binary patch delta 804 zcmYk)PiWIn9Ki9{|F%v$tJXi8Ga|Dh29nU!5mXSS2boyKgCOFQ56-c8p?tiIDs$l6mH`Q z-mlVWrS7AJ4O~VUkY)Ch=%G|Lg&gW0jVz?q@2?_rsdX&jXSA`0vWv3V10;2Z&qG+y z9&F3RJLL)?lgOtzC>=sRf0mT}lmA0LV~+ekq(XKi4EY~qOC$!!q3}$peMn7ekj%@q z!d$iKSNx`5(6iBFx)Xgqc(*=pRO(Z$xoWNH8KVp9>DcjzF2_H*XH3gAoiW39J=Zd= zqGe^uSIz6yhcgQ^^_n^EH>;lEST^H|rehm+$#Y8jY~s7|sLecJ5=@4L^sPlC1Z?Lq2vRA0(``3J}2YKH&- delta 826 zcmXZaO=uHA6u|LGn#3AotFgw<>Ppc{bn9l@)RIG?pgq_Iiy#ycakWbbw28J!p&$gc zN?HXEiyri#pb}dZKXR!EA{0D%=|yHy^eA}o;=!Z;7c=nYH?uRDnKzTCiE5(qJs!HN zD7%Q=#2;cm@i{<6IUiK28y(z<3%CQH;5z((Tk#Wa#BUhFUnui`;}(pzC`D84!B*Ud zrcxD^q|wHQag+secmm6q#gEPLHdd8+o!EtkQ8pT*ir{J7i)WktD;TDK9XoLW{hOQa@yi|++HGkgF Z?-=&0`nmM=k~C}jrGBNCdb|tK)qiQgf;<2K diff --git a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po index f55324a8bc..49d188bc7b 100644 --- a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "البيانات الوصفية" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "قيمة" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "نوع البيانات الوصفية" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "قيمة البيانات الوصفية" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "اسم" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "تحديث" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "إزالة" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "تحرير" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "أنواع البيانات الوصفية" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "نوع الوثيقة" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,77 +274,33 @@ msgstr "حذف نوع من البيانات الوصفية" msgid "View metadata types" msgstr "عرض أنواع البيانات الوصفية" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "تم تعديل البيانات الوصفية للوثيقة %s بنجاح" +#: views.py:95 +msgid "Add" +msgstr "إضافة" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "تم اضافة نوع البيانات الوصفية %(metadata_type)s بنجاح للوثيقة %(document)s ." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "نوع البيانات الوصفية %(metadata_type)s موجود مسبقا للوثيقة %(document)s ." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" @@ -350,21 +310,76 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:429 +#: views.py:108 #, python-format -msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:439 +#: views.py:152 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"تم اضافة نوع البيانات الوصفية %(metadata_type)s بنجاح للوثيقة %(document)s ." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"نوع البيانات الوصفية %(metadata_type)s موجود مسبقا للوثيقة %(document)s ." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "قم بتعديل البيانات الوصفية للوثيقة: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "تم تعديل البيانات الوصفية للوثيقة %s بنجاح" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" @@ -374,49 +389,80 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" +#~ msgstr[4] "bae23547be942683f3c566589b362141_pl_4" +#~ msgstr[5] "bae23547be942683f3c566589b362141_pl_5" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -589,47 +635,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo index 8fa341dd1538121795bddc028205ddc473357ee4..02bea27f0ce874ca0464e36d83e2b0b72153ba41 100644 GIT binary patch delta 369 zcmXZXy-EW?5C`zNJ2mkVML~m2!WA|m3wvia%5}<#O)w%@rMj5&2xwB6Qv!hqK7hh% z;Y)~GS?McmVebR@0u~njM{i*G?d-?w?nCjtaJxEjh-lFwD!^qp2di)ju0tD2I1e}S z`5icedM|e$PNP18H^?@!jQR_QtMD7vU|pn}}D>ClAMFlb?d8;;--yn-w69xlK~ zh@OAJ5965qhumC#0QcZ1B5{ODNWO@JKSnoShCS8XRY5x@LL0V0@7A1it4t!l0pltZ}&+_tPv+vD``ZrQOz_ WwkX}1H}hV6^C@}4zm%w08 zz4jMWBuJ$G3wQJu{SQ6&*7w>DoPBoA4riwqevCZK*TRI5afy&oI1LBjB9!409D~a+ z0XKs0c{qgH47A`NY8N(bjz?sA}}^KsjR7Ql(^DO3rXt zmTGDmbE=}PQ*|wy(YNj{tytFXT<{dHD, 2012 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Стойност" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Стойност на мета данни" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "Име" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Актуализация" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Премахване" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Редактиране" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "По подразбиране" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Вид на документа" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,137 +273,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" +#: views.py:95 +msgid "Add" +msgstr "Добави" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +604,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo index 0706344f25d74a4843231400ea254edd7b5b72e6..d1e4c9f260895110bf7543123ec77ba4c7fb21e0 100644 GIT binary patch delta 799 zcmYk)OK1~89LMq5yc?sfsqaU-K1x7b*o3A^s9>e2h}J0LrAS##EU_ffWa~9}6M89K z6cvhs7eNq2v>v>8^`^%nf*_t0l!7M_zrS@44$OS!wKMYp24+feS*`quZp^8h9-qI9LBk5ynso@OSl{Fp#pe?zpS1y@96Aj z;w@k6fUh))_&X}Y4CyJuy)?@304lJf(fkzdWPA~A?BG@mkPOXJRD#d&Ag-VS|AIO0 zH*0i`qjsHy6PUwARHVyD(&jlTz?Y~@-bCY7%rgFr%KRH{!Cap)`V|$l0wT|FAA|{Q z#GVdZrx^<0g%@rMNB^?yr?1!0|3lB1r~Y4*p@LJ{|QEe6!y2EA~kDMPGcM6;u-|ZC`TEU9x6y7nlb&C%*d@2fzEP)Cw2Nbv(pWH_yxV`;Yt7Dkvn*fk&K#Qv-Y2Jn l@zlet-!PNyns?1^2Dj3K!Ov9J3VVt0;_39T6+Fsx{sP&!U#tKC delta 800 zcmXxh&ubGw7{>8Qnxr+xw#Hb0R;ScbC|%v8MoUgAQlvGs2nCg*PR%x~+Fi-+RuG|r zr+_CHy?6;&@F0TNOFl zhZu($e;7lI&j}{#MpCI^G<%Q4Xl%Bt}@pkL|yAbE@p?$3YxL`Opkg250do&b8MMFwOcA_G1&Jk(anh zxOaGr@2j``w{-dyCE0J3WH}~DRzPWN1m*oWlib!B+=p{0$wHK5_iz*+qBQ&(bNC)7 za2+pTFPn3GUtQrrI$J=w`uj*|)k1nvD<}zGwb$#IW&H&u@i*+lzbL<&oF!{HV+TV@ z&go&ujYudd`cP&!(|%b|I~kHxZb1@qL#me{RoG@Lsigj2l1xe(l3SF@Gw5Y2y^0r; zC*oG}@#<7ZAu(8uf>7UW_)Bih(I(V)9K#FWb9BwW87(?qcs#zAS}UKjibbn5rtMOt zT(<0!ww;}swk|nKZs7W!b>4(dMVIU%`)sQ;uIeim<}ul8ItUOh5(w#*0D w&z+4YGp%?d(_DSt*_Rlq`VFH4NBe, 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadata" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Vrijednost" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata tip" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata vrijednost" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "Ime" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Update" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Ukloni" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Urediti" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadata tip" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,141 +274,182 @@ msgstr "Izbriši metadata tip" msgid "View metadata types" msgstr "Pregledaj metadata tip" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Mora se osigurati bar jedan dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadata za dokument %s uspješno izmjenjen." +#: views.py:95 +msgid "Add" +msgstr "Dodati" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Metadata tip: %(metadata_type)s uspješno dodan u dokument %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Metadata tip: %(metadata_type)s već postoji u dokumentu %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:429 +#: views.py:108 #, python-format -msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:439 +#: views.py:152 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Metadata tip: %(metadata_type)s uspješno dodan u dokument %(document)s." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "Metadata tip: %(metadata_type)s već postoji u dokumentu %(document)s." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Izmjeni metadata za dokument: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadata za dokument %s uspješno izmjenjen." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -568,47 +613,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo index 6662d5afe8c3de15b14e31a75ef1b361e6a1d7b9..a0bf6f1078abb103d92098ae3d34104f567a2dbb 100644 GIT binary patch delta 329 zcmXw!%}PQ+6oBXcm=;$9X_aL|%ix0d($%;Ss9RgMNUOCZVC>;93j+PicJE#)LlU(2rdeu z4t|a}I{5(#cK0I){;%dC|NO{v56_W-mh1h&T=|}$CXq!XMrz0>B5Srp$ULk;4X(l| z*ed#4#rH9sM!y3a@B)_M6I_Nba0%w{8u>;jA$=lLLUbJ5z$$!zb@&G5MIUemenAR{ zP%c*Sl5;v-fGZF?M?WIZWsMS%M(7>C;3PuSQ^dNJ*uMQPx1>c;ex zyJ$p$Q!hG6LN4O9?67oeuN$UmSWU_-$F>dDVyv>iXB_Y}=mn85w%wRJ)M6&)m|<;F zw&67Gtgf7AugXz%#}$6!`WW%t>{ofFZQ%zg4Flofw){P&!^d{o, 2013 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata type" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata værdi" @@ -82,31 +84,34 @@ msgstr "" msgid "Name" msgstr "Navn" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "Standard" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumenttype" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,137 +273,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +#: views.py:95 +msgid "Add" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +604,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo index 10e9d47bae7cc1b2b2a6042247931528b20e8b24..ca644d86e08a5a96e9c5cd35e090de03c3deb46b 100644 GIT binary patch delta 2109 zcmY+^UrZcT6vy$)ww6-l-}0vvx^;?FT45<{K@cdVEhr!qYHF;KS_XEYP}o&=X{$oE zNt+rmsn$s~RhpQ_H0cWu?1M%$si7E&i5jbk@ekTW6QA{^zNp{dvKYPDGoL#HJ9F+m zXZEdwGtIFT@A}JzahTXjyz4P$94qeO!1#HCF=coMcVb%V>UjXyasD*ki_c&Yp2TLn zfQ7h(dANd`@DJRAe<7ckDcoqxW-eIBGfX|^<39A^6UfIzIOO0IX5dAk1pZr65mN9&cm&1Kng1vYE zwIUaF!&%h#=dcQYz{fEodo|I19MIoU3FYu5J-7hbT;t1O|Fv~xT-b$v)QX=()&6Ai z{AHX^G3ILWdN2P}$=^e`6R#q>Yd%5s&R1B9zhMt%(1GfKW2n-cK_&2N9{aB@y}|{p zY##L%EF{mrMQ!mN)D8YjUeDtxDv=M_T~md6aC6clSi$)yYG>X=b^oWR#BQS&d^g5~ zdzuo`+JSYL$Q0EqXYg%&9pAu8ve6bV;V>4Gy_)eXDv@)j2VFw#>@4yz*End!3mCv9 z)cs?3nNT+4<&6F^C0LKUu?|llyKde=%4p{CFNoCXFe70 z&MNk}%Q+vc8*xs%D_KSEZEt@@oxiHqAE>vgYa42-+?L$pcCOU;12tA)PeXN}yo#}@ z%Z^0-M<(o0WXz6+CmO6yCt{D7dpz!;B5!*yUUmEmRrSH|E|mlopvUoZu{0L*W>GtU-I>N+yU!L_xSe4e*o;#`?ml9 delta 2613 zcmaLXTWl0n7{Kw<6}c3lrG>V%Tn;TziruAMXt6D=NL!>xX{|LCL2=qWY**UZvNH=5 zG;7erU}B6+AO@qsTYT^Waf4zcqE-zd#^B`vNgyOXc!|-VFFv60|IKb|AB-n^<~L_9 z=klFz_NkWRt*NU8Q;sT1FLeR+Y(S|!xZ`FH6g^F;N?d{~up`?};4QR|V=2ClE%*tR zV9s=<=3*)4;wqevjmRUa7mJljsU4h5<${az@E|V4XOW*e$zcwj!C80#EASF7#T(i7 zk{Oxn?Kp+&F_ekf7{bFS@1MaU{2U7zUtQtkZ7y8LC-4N*?Zag=mAV5T#qD?w363gb z+0xM>lps~3EFg^1aRV|Z)r~>ihO+V}aW=k$^8P6dGrszelUlrv1z5q|LafKlxEVX~ zC`t$4BcW5jXWO}4l!(knS$Q))fE%z9PoPBbJO=SH%7mxq5&xB(=Hiq#KN^YFaUjGJ9=P30<_WBECT!{N0;0pX1C8r8GEX6A9!mTK|@!~w< zFMIYr7i0n#QL^_k$_oEL`6_N?+w*x?LSK&3K_kj@_abvp58^D`gS?_rS&w2h?Ke;& zbP46Fn31A4nb};F6*r)KHUlUF>_9&G2KC_aahr1G*%@4{B>#%GZH zQrD12)o&;h$t8@k@)DH2@4%#d|64g}=EA2admUhdWe#1E-$%z)K>}@NxfGPw+)K@@Oi!PAEKs%A z8cG_~nRHw|l8En(MU1vwJ!C8{#BHM^@qy&9vE7jO-7K@r9van-88QRz#0^KscWHOf zXvZ2h+8rG+UeoLy#pCbkVdGj6%eDMlq4eXkR|U3bx-gN6PB<}+UFqsUYcCV9M<-qj zsb1;ZA9Kp61Qdf6W#i=(J|X`EqlO(yocwc>gt2F zwZZUeT@!Ass|(hwsj12B?h5vpy)h>iw}Wk#YZ`U9rk3Ywf~#wFZ9`+tYHv|Nab<73 zKV~_)+cG1&jb7*a&CrP7T%RFi8`s-bV0jk`?$6s|+0mpGrMrmP+1Bn=6uy%Fy3h`! zcNN8QW)162G5bJr*Vx&pvAx=o<$(i9@BWhIUP(z_`rG1jfx3Mr;i`5=4<{WCF*{-$ z*Vv9WF?syNaWmZXNWo zId04(7-Kh+HF}~qwb46Xy149rp78!&_*HcuD`&0=&8W^u!pL-4+rRxVmtcp#tp~g> H7p?mT4uht9 diff --git a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po index 4c07c4c086..db77121b94 100644 --- a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po @@ -1,10 +1,11 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # Tobias Paepke , 2014,2016 @@ -12,63 +13,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-31 19:03+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 23:12+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadaten" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Dokumente mit fehlenden erforderlichen Metadaten" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Dokumente mit fehlenden optionalen Metadaten" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset enthaltend eine Referenz auf eine Metadatentyp Instanz und einen Wert für diesen Metadatentyp" +msgstr "" +"Queryset enthaltend eine Referenz auf eine Metadatentyp Instanz und einen " +"Wert für diesen Metadatentyp" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Name Metadatentyp" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadatentypwert" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Metadatenwert" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Gibt den Wert einer spezifischen Dokumentmetadatums zurück" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Wert" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "erforderlich" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadatentyp" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadatenwert" @@ -85,31 +90,34 @@ msgstr "ID" msgid "Name" msgstr "Name" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aktualisieren" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Fehler für Suchwert: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Fehler für Standardwert: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" wird für diesen Dokumententyp benötigt." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "Metadatentypen für die ausgewählten Dokumente." + +#: forms.py:146 msgid " Available template context variables: " msgstr "Verfügbare Kontextvariablen:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Entfernen" @@ -141,20 +149,21 @@ msgstr "Erstellen" msgid "Delete" msgstr "Löschen" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Bearbeiten" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadatentypen" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Name unter dem andere Apps diesen Wert referenzieren. Keine reservierten Worte aus Python oder Leerzeichen verwenden." +msgstr "" +"Name unter dem andere Apps diesen Wert referenzieren. Keine reservierten " +"Worte aus Python oder Leerzeichen verwenden." #: models.py:47 msgid "Label" @@ -164,7 +173,10 @@ msgstr "Bezeichner" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-" +"Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +185,12 @@ msgstr "Standard" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Vorlage/Template zur Generierung eingeben. Muss eine komma-separierte Zeichenkette ausgeben (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Vorlage/Template zur Generierung eingeben. Muss eine komma-separierte " +"Zeichenkette ausgeben (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +200,9 @@ msgstr "Suche" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Der Validierer wird den eingegebenen Wert zurückweisen, wenn er dem geforderten Format nicht entspricht." +msgstr "" +"Der Validierer wird den eingegebenen Wert zurückweisen, wenn er dem " +"geforderten Format nicht entspricht." #: models.py:72 msgid "Validator" @@ -193,47 +210,48 @@ msgstr "Validierer" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Der Parser wird den eingegebenen Wert so reformatieren, dass er dem geforderten Format entspricht." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Der Parser wird den eingegebenen Wert so reformatieren, dass er dem " +"geforderten Format entspricht." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Der Wert entspricht keiner der vorgegebenen Optionen." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Dokument" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Typ" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Metadatentyp ist erforderlich für diesen Dokumententyp" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Metadatentyp ist nicht gültig für diesen Dokumententyp" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Dokument Metadaten" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumententyp" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Metadatentyp Optionen" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Metadatentyp Optionen" @@ -273,137 +291,186 @@ msgstr "Metadatentypen löschen" msgid "View metadata types" msgstr "Metadatentypen anzeigen" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Primärschlüssel des hinzuzufügenden Metadatentyps" -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Primärschlüssel des Metadatendokumententyps." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Wert der entsprechenden Metadatentyp-Instanz" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden" - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Es können nur Dokumente des gleichen Typs ausgewählt werden" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Für das ausgewählte Dokument existieren keine Metadaten" -msgstr[1] "Für die ausgewählten Dokumente existieren keine Metadaten" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Fehler bei der Bearbeitung der Metadaten für Dokument %(document)s: %(exception)s" +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadaten des Dokuments %s erfolgreich bearbeitet." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Metadaten bearbeiten" -msgstr[1] "Metadaten bearbeiten" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Fehler beim Hinzufügen von Metadatentyp \"%(metadata_type)s\" zu Dokument %(document)s: %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Hinzufügen" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Metadatentyp %(metadata_type)s erfolgreich hinzugefügt zu Dokument %(document)s" - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Metadatentyp %(metadata_type)s bereits vorhanden für Dokument %(document)s" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Metadatentypen zu Dokument hinzufügen" msgstr[1] "Metadatentypen zu Dokumenten hinzufügen" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." -msgstr "Metadatentyp \"%(metadata_type)s\" erfolgreich entfernt von Dokument %(document)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Metadatentyp %(metadata_type)s erfolgreich hinzugefügt zu Dokument " +"%(document)s" -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Fehler bei der Entfernung von Metadatentyp \"%(metadata_type)s\" von Dokument %(document)s: %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Metadatentyp %(metadata_type)s bereits vorhanden für Dokument %(document)s" -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Metadaten bearbeiten" +msgstr[1] "Metadaten bearbeiten" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Metadaten des Dokuments %s bearbeiten" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Fehler bei der Bearbeitung der Metadaten für Dokument %(document)s: " +"%(exception)s" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadaten des Dokuments %s erfolgreich bearbeitet." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadaten von Dokument %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Metadatentypen von Dokument entfernen" msgstr[1] "Metadatentypen von Dokumenten entfernen" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadaten von Dokument %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" erfolgreich entfernt von Dokument " +"%(document)s" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Fehler bei der Entfernung von Metadatentyp \"%(metadata_type)s\" von " +"Dokument %(document)s: %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Metadatentyp erstellen" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Metadatentyp %s löschen?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Metadatentyp %s bearbeiten" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Interner Name" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Verfügbare Metadatentypen" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Zugewiesene Metadatentypen" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Optionale Metadatentypen für Dokumententyp %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Erforderliche Metadatentypen für Dokumententyp %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +631,47 @@ msgstr "Erforderliche Metadatentypen für Dokumententyp %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo index 63994bec65e6f68a2d66bce640d71425e2483287..f122c2dfd1b52780224f44ba1bc981827adca59d 100644 GIT binary patch delta 498 zcmXZYy-LGi6vpwB8k+>H(P}}ZRgsEQpb9~8aMHz(LG%h-70f2MWT=~pL+}P%-7JVG zZZ2Mc77;{O!F%xkBzfWF_kJWfPx2Xd!}P1}UK^u9HK`Y>MIAX@7~i;nKRAU!#cUGW zsAtwt`};VC$LM1hBfP+2e8d{Q;wJWS$1JtEf#QY)T@F&L;u+51dAYvDLDqMufDfpK z?|4PHUsTXjZc?BdRM2Ns(0;l9hkDMZiBErPGEvfbRMI_E(gRe|1W9U7<$2&0K_`$c zYoUU+%k?_a!?sXCcQOAnsGmAQ=|eTD*`?!c=v1BS)F?GhY4Alhl+TJcY8p^sxu=x8 lG#`!LhjZ^_iFcSyyW6$ps1rv^E3=F7YTW6axNj95{R4-`E9w9M delta 571 zcma*izb^w}9LMqJ+Vfi-Elr3YCml=`J!%jpv51P**ti=c)fRWAMkNMghYM3T7K^2c zbTbOEl8A(jMMD1r?{Dw^08jG0*Yo@N+^O+qRNv$JxuPYhaq5Yhpeh<4+Aq#v3&(IY zLg50A;3mqvjR~w`H~N^yIu76?#_$!_@e6ZoS5`FGaDpioYN%raJF$sVco&X8u!Hd@ zO3-hVhkH3xBjhAX;2SncuoslTEtJ50Tq^U^nBaZ2Oh*!Lp(Nf$NqmNq_yQ&I6_Qx} zgzGC^LEsIPz-44fc_@J^;kb?x_!1@XHA>)n)a2lhzpo|MhUv+(vJ|Hzt2BO3^|yP$ zH3t12YA~FWh}_g}$;N|rtEF<@p=*{8N=Li4W9D76;N+Po6&=$q?Ra}m(Vg{=qs`c2 XI+ICT^X8njl+89)_2$OWQGMxA`!@4WzKvwTzBUKtQLA;qXQl4aGhTvrCh1s4>w( zTzsKGSf04VWQoLh!FYL7jR`t=0Sb*8qVUEGGX|nBe1Syb3!{nO-{Uh+_V4GMr|r4? z&pF*U+pqT&=7I}eF_b+-BQfJQW?1!wyihKd8`FvHKy@^Q zO4e(r1-yys?>%G=<{ZZGE7Z#W!fFhYwgBUsl~fWK$2ev&h|{PEy@U7REcRg~qpE|4 zQJJ&7_H(EeAH&CR3YD=N7(*Xl(gZi4+9@nNN+s*PF^e^{&*N=)1$8cNp;oekH`U>8 zR0sR99Z%o@p2a>4)*5p_@1rJk4mI#aB&p^SDr4W(lK(YSe&T^vT1D^L^Cncg3y=GZ z>BkMUuacJa7~st|+>9I|VP{UhU)J_wD1$u?f4N{vxycsDJ@ji zp{`#)>X3}!m-r%{!~sU#iPzA^wcITo!js7E7zedQucIdRE^39dsEJ=iW$;(Duz^9e zz(OY#&E!GU%xup$P!qa_`k*fNZfL~4IE*@^XHlQ~7B%n<)QWw4=^3mT%Q| zJdYZqoUJ%9o2D=ylLQ8WHF`}eW=N)(7#(a?55kR-{UDXSe!_zLD2!d zlThC(TL^a5-L}L+le+phix;#&2fwNQooA&!C6b_8nc6D zqtjGzr1)w@m%sL4E^lRXPaGb#$0pL&>ha>|RR?{=7Zy+Zo$l(aQ>xxq?5m0Tol@PI zvM24Qow=Hbb2+#_urb!2j3qj)cru-AceaG0deRX~#I1NLok%%{LeDPQl^Gj4oEfsy zmObwL92#_b!ylCoViXSguR_6TC hc*Hr?bfB1Qe%|kdR$M5z^VUdi+ZDqt{{lGK&P@OS delta 2554 zcmZwITWl0n7{Kw~QC2E&7ZfEc{QOYi}V`hv!2A_j>`HJbSUW-s)?lRfi0b31d+ zcfOhZvGwb=%ny|lk19$RbrJQ0Ql*~3-aFV(^kk)Ka0#x&_WXVtr?dYCF2r}R6))g? zESaLzY+Q(CxE2>+3v!9-!g)$%R4V>1&^V>y0`)p!+`;XnEP zB~x?9H{nE%Cs77wV+3DCx&JiI#gB0o&sX2mc$Wh=@nsxkxZSvXno=9^dF;V+NN`k$ zX-h{{C_!3-GJzOM$IZx?R0oD}7s|{J;GOt3%KaxW#`D!#8g+ORE3ulhv#<#_<7V83 zM^QSsj)YGAk>4-lphRQ=%FNf}leiIUa18urY=&q2$J?{P8Pzs6?rsaV^J($hZg|!ojWbBF$1sXjxPK1u zmrx$#0L!b+pv?4>{QfWb3;#qJ=xi1^gdtpl>re*13#Fep$^-Xd10KRgynwPqV<=0q zh>NAawhRqTV++dblR~1Vj$`mTq9o5X{0wj5VLZn>wg)>n`5>M|gJUR3x|`HznU#gI zRD&o38$p@iL6m`Kj?<9PokER2q0Dd+8yUz_l!4XfO`{C#B=S>Vuz3W3#U0qpNmfH0 zLb+~~jXd}aN(8<{nfWbzR^I==X{_OZ%fhluY83CrQz##f8yLgCunE_&a1O>%W_AVT z0pFo4$qnqr3Z^MD>__Q0jdK41Y{s+LBk%uM(BO-tm3oR3Cs0CJL2r_!!zcsUhtlDG zlq5ZjlJ&2nJm4d2!E4A*&0d=O05xF=`|VUII@so3d3k;i{?7bCd4O~(Bb6edl_J@^ zg(}~JWmGAoLNGvRCr}@zwozA836#pnxAW3hlv&oK@I)~%2Dz}a-)MPMV42VfMv_5A zJ~FbVB!7^lpdO`4Virn;e`(SS+4jlnO0#cG?Jk*MB@+JnX)8)S$1j_8}D3O+LP3(aN0oWtO+ajt<`VO8s z?gp1T{`Y!+cg2TwR%*x;h81_xY2yw$b|Pu_6}t^aqm#DlS$5n+{6#Y}jZNXYx^S#s zM`JCGjp1lRG+NfNJ=|%AlWx+n!)=ylT68R0SG=yNrM}t!YUXo(cjXh)w_0}Jkk!W} z#`RBBzMr*cT`JA)oa>jASt)H@JZUA8X}@)TO^N0A&9BW~pI0@Zy3Oo0LEMc=Yc3TE`35WH pFk+)qRw3fS=z{SEmueD(`^PO68E1IhPQsFMT>t!>kl(&I^dC(=m(TzJ diff --git a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po index cc51820b24..ac6c77bf74 100644 --- a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 @@ -12,63 +12,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-23 06:39+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadatos" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documentos que sin metadatos requeridos" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documentos sin metadatos opcionales" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "QuerySet que contiene una referencia de instancia de tipo de meta datos y un valor para ese tipo de meta datos " +msgstr "" +"QuerySet que contiene una referencia de instancia de tipo de meta datos y un " +"valor para ese tipo de meta datos " -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nombre del tipo de metadatos" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valor del tipo de metadatos" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valor de un metadato" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Retornar al valor de metadata de un documento específico" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Requerido" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadato" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadato" @@ -85,31 +89,34 @@ msgstr "ID" msgid "Name" msgstr "Nombre" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Actualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Error en valor de búsqueda: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Error en valor por defecto: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" es requerido para este tipo de documento." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variables de contexto de plantilla disponibles:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Eliminar" @@ -141,20 +148,21 @@ msgstr "Crear nuevo" msgid "Delete" msgstr "Borrar" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadatos" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nombre usado por otros módulos para hacer referencia a este valor. No utilize palabras reservadas de Python o espacios." +msgstr "" +"Nombre usado por otros módulos para hacer referencia a este valor. No " +"utilize palabras reservadas de Python o espacios." #: models.py:47 msgid "Label" @@ -164,7 +172,9 @@ msgstr "Etiqueta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +msgstr "" +"Introduzca una plantilla para generar. Use el lenguaje de plantillas de " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Por defecto" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Introduzca una plantilla para generar. Debe resultar en una cadena de texto delimitada por comas. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Introduzca una plantilla para generar. Debe resultar en una cadena de texto " +"delimitada por comas. Use el lenguaje de plantillas de Django (https://docs." +"djangoproject.com/en/1.7/ref/templates/builtins/). " #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Lista de opciones" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "El validador rechazará la entrada de datos si el valor introducido no se ajusta al formato esperado." +msgstr "" +"El validador rechazará la entrada de datos si el valor introducido no se " +"ajusta al formato esperado." #: models.py:72 msgid "Validator" @@ -193,47 +208,48 @@ msgstr "Validador" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "El analizador volverá a formatear el valor introducido para ajustarse al formato esperado." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"El analizador volverá a formatear el valor introducido para ajustarse al " +"formato esperado." #: models.py:78 msgid "Parser" msgstr "Analizador" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "El valor no es una de las opciones provistas." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documento" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "El tipo de metadatos es requerido para este tipo de documento." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "El tipo de metadato no es válido para este tipo de documento." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadatos de documentos" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opciones de tipo de meta datos de tipo de documento " -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opciones de tipos de meta datos de tipo de documento " @@ -273,137 +289,185 @@ msgstr "Eliminar tipos de metadatos" msgid "View metadata types" msgstr "Ver los tipos de metadatos" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Llave principal del tipo de meta datos a ser agregada." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Llave primaria del tipo de metadato del documento." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valor de la instancia de tipo meta datos correspondientes." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Sólo seleccionar documentos del mismo tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "El documento seleccionado no tiene metadatos." -msgstr[1] "Los documentos seleccionados no tienen metadatos." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Error editando metadato para el documento %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadatos del documento %s editados con éxito." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Editar meta datos de documento" -msgstr[1] "Editar meta datos de documentos" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Error al añadir tipo de metadatos \"%(metadata_type)s\" al documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Agregar" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo de metadatos: %(metadata_type)s añadido con éxito al documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo de metadatos: %(metadata_type)s ya presente en el documento %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Añadir tipos de meta datos al documento" msgstr[1] "Añadir tipos de meta datos a los documentos" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo de metadatos: %(metadata_type)s añadido con éxito al documento " "%(document)s." -msgstr "Remoción con éxito el tipo de meta datos \"%(metadata_type)s\" del documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Error al eliminar el tipo de metadatos \"%(metadata_type)s\" del documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo de metadatos: %(metadata_type)s ya presente en el documento " +"%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Editar meta datos de documento" +msgstr[1] "Editar meta datos de documentos" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar metadatos del documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "Error editando metadato para el documento %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadatos del documento %s editados con éxito." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Meta datos para el documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Remover tipos de meta datos del documento" msgstr[1] "Remover tipos de meta datos de los documentos" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Meta datos para el documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Remoción con éxito el tipo de meta datos \"%(metadata_type)s\" del " +"documento: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Error al eliminar el tipo de metadatos \"%(metadata_type)s\" del documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Crear tipo de metadatos" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "¿Borrar el tipo de metadato: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Editar tipo de metadatos: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nombre interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipos de metadatos disponibles" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipos de metadatos asignados" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipos de metadatos opcionales para tipo de documento: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipos de metadata requerida para tipo de documento: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +628,47 @@ msgstr "Tipos de metadata requerida para tipo de documento: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo index 77a41754ad3e6e368f14bcb87077886f737ac5b8..96647b4326a56cc46e49ab949457c4012d2c8109 100644 GIT binary patch delta 1589 zcmYk+TWAwm9LMp~n6{c;lhjLeZO6uHy`-7Mrq-zK!&bW$b-RM%1ze-X%dTy`)dx|d zh{cr($|xeNA_xjf&0_FD^i>dKm+G>RAo$>eFY1H(;0mICe`5syk|1*{{zNumwyvqcUpP9@df??DOe!*(|9rfTrjN?g+;XMrCYt(>d zoH5Iw4p-o>sOLwD-bXFu5&9Y5jMCA7&x_WQzqOoqpeA+!Yw$8Q;4SRMe~>XvL&et& zHlyB?L>qVDD!hmq@D=KPZ;;(G|6@io{zPXg2H04g+c;EWOcy3Of5fu2=VdIT5rf!* zZMX!}I1O(ib25LUGM7glHE&S^YZVrhqt2Ua$p1t-Q7-7lZd{71u?PReMfd_WfpG2D zny|4|_u&*gg|qM)HsdJHzz>*4ivrWchETP3ws?M3`B#zM;sTR2|6(UTM_q4ZV<%xZ zs%kf(is=9@$0w-FHIOz77vp-|h`R4CDih=RG-MRD@*dPy_Gakl^VyBvn8maB9(Cg% zjH;?WgGzB0HNnTIjQA;aO`slieG%Gt2-n~U>OEf4tV~yMP$t5tuc)Vmj-?K2Z-2uQ zWMS@$R495tlhpUGP>K~QzL?vi=$$>@V8$w*=|gKO_F0J=tsLjlv~GneOG{veZmvm{ zTjtt0#T;5YjpB4e{}l8es)fe4YZlTHw0SfId!2E2H_pjS_mVO5Q5#FT-27=X70QY7 z`Ylv_3T=||sGKU4lJ7$~i_oGpeNzfmAXzhQ>Zx33(-zPaDoe#;=Td1j_ptO~N$s|Q zz1G%&ErWgO{{2a-X`gefJf5o<+vM@CO!cL6M}74k=X2!@XKmHt#Qcbzh{W5iSR$FQ zBX+B8`+9$ltV$o)xo_t{f21q5Kb^GVc8vR4Bk`COYfHx49AEXp%H^s4?SrZ9{CQi- zIbOZNd0D;LS2&ixT{xM~7KWU@nsBbKCgX8N{Z-?h4qN$LVJM$31eZ#706UyO;y@9(%0O*&!rvpY9C z^PAtyGE?(My|wJmepgXisSi`PXDW3Fo3pu4<~&MO;0Nf#Z}B1g5g*4pScsuDO66c1 zZp1G1;>*aN8sV}5$M8OU3k#I8)cf4z(lC!(@N?XXKc$~D7)4?!Lz%c5gV=`hUK}65 z30#k7up2Mn5%e${Yf=VE|1c7>8o@QpuU_GXKV@+V;7ODfe1>_rg!1A|tixZi7WG=C z{J0-wViWh^81BWZDDV48i&%oPz!1uU4qyfIt3%w73N?-rfSvX$e1YfRkYuQ**C};B z?!!m$D0ZQR#H5x`#&J=``2|C`k$u~bd$0#*Q3Ch}Eg3kA&!TKe1lw>HOYjyFyYl3(WHcXnRaK+R+n7)OH8(Bkh8`^9xi8(( z!gii#@EN>@%~;Gb30@sRIV=6R17~m(evOs5jOFNMpG*v%bN~m~MX$ALRKkc`==aS;#W_bB}Wyd-DqRN9X$Zt7{c zf|8Ou_!Rz$vd7IFZTZYz#11@*Z{sbL{-dO;7+*t4`B{{Jub^b;Zu6|pzQq;W}swIewTyA!BcE2Ck)3PFLZ!%OD%qDpLe*o`2I_XIEK-VWKj%7?efgT$$<$7jp_FRsqg07q zio_^KqJ}E#+fCg`-9eSY5w#S@Dzyvc*h+1r%0Xq{yS5f7wk|Kv!N{c<@sY%Xxu4dS8c(-I3;jsOQ zw>&c*wSVwdBGmU2?gpJb!b;peS`gt?^U}q_pq>I+$rsR>Rfgby0onF?y8PTKB{8cIp{DG4;GC+F3>I_U`q*4U^0|&ngIzrKF>> I8;hR*7n28?3IG5A diff --git a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po index 6768c807b8..cbf7d4a7be 100644 --- a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammad Dashtizadeh , 2013 @@ -9,63 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "متادیتا" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "اسناد متا داده مورد نیاز را ندارد" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "محتوای مجموعه درخواستها شامل یک نمونه مرجع و یک مقدار برای متا داده مورد نظر است" +msgstr "" +"محتوای مجموعه درخواستها شامل یک نمونه مرجع و یک مقدار برای متا داده مورد نظر " +"است" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "نام نوع متا داده" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "مقدار نوع متاداده" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "مقدار متا داده" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "مقدار خاص مستندات متا داده" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "مقدار" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "الزامی" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "نوع متادیتا" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "مقدار متادیتا" @@ -82,31 +86,34 @@ msgstr "شناسه" msgid "Name" msgstr "نام" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "به‌روزرسانی" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "حذف" @@ -138,16 +145,15 @@ msgstr "ایجاد" msgid "Delete" msgstr "حذف" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "ویرایش" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "انواه متادیتا" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +176,8 @@ msgstr "پیش فرض" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +196,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "سند" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "نوع" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "نوع متاداده برای این نوع سند مورد نیاز است" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "این نوع از متادیتا برای این نوع سند قابل قبول نیست." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "متادیتای سند" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "نوع سند" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "متادیتای قابل قبول برای این نوع از سند." -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "متادیتاهای قابل قبول برای این نوع از سند" @@ -270,133 +275,175 @@ msgstr "حذف انواع متادیتا" msgid "View metadata types" msgstr "دیدن انواع متادیتا" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "کلید اولیه برای نوع متا داده اضافه گردد" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "مقدار مرتبط با نوع متا داده" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "فقط اسناد از نوع همسان را انتخاب کنید" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "اسناد انتخاب شده هیچ متا داده ای ندارند" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "متادیتای سند %s با موفقیت ویرایش شد." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "اسناد متاداده را ویرایش کنید" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 +#: views.py:95 +msgid "Add" +msgstr "افزودن" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" +msgstr[0] "ًانواع متا داده را به اسناد اضافه کنید" + +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "نوع متا داده افزودن خطا \"%(metadata_type)s به سند %(document)s; %(exception)s" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "جذف موفق متادیتای ندع : %(metadata_type)s برای سند : %(document)s." -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "متادیتای نوع : %(metadata_type)s در سند %(document)s. موجود است." -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" -msgstr[0] "ًانواع متا داده را به اسناد اضافه کنید" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" -#: views.py:429 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "اسناد متاداده را ویرایش کنید" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "ویرایش متادیتای سند : %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "متادیتای سند %s با موفقیت ویرایش شد." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "متا داده برای سند : %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "انواع متا داده را از اسناد حذف کنید" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "حذف موفق متادیتای نوع \"%(metadata_type)s\" از سند %(document)s." -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" -msgstr "خطا در حذف متادیتای نوع\"%(metadata_type)s\" ازسند: %(document)s; %(exception)s" +msgstr "" +"خطا در حذف متادیتای نوع\"%(metadata_type)s\" ازسند: %(document)s; " +"%(exception)s" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "انواع متا داده را از اسناد حذف کنید" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "متا داده برای سند : %s" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "ایجاد نوع متا دیتا" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "ویرایش نوع متا دیتا : %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "نام داخلی" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "متادیتا نوع اختیاری برای نوع ستئ %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "متادیتای نوع الزامی برای نوع سند :%s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +601,47 @@ msgstr "متادیتای نوع الزامی برای نوع سند :%s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo index d26681e94eed3cd6bb65142d7cc40540f206ae0a..ea46d50cce9ddb23b6ac82c2fd95fefacc16fe5e 100644 GIT binary patch delta 1938 zcmX}sUu=_A7{~FmuKQEBveC7|RyVqix<631cC=tOV4G|xFt#v5oI_Hy8w!!&1`;kv zqrs2}At@*B%7mCe0xBk^@djB;9GaQTXd*X?k;Kf!8zTg-OicX#-o1FT=lz`Xc0KPo z&-Iyv`)IjmuP2iM_UR9*ay+Q}dvYQlY} z39{IQmvBFRiNhGEHRct4j#|(>>cI<0QqA|MjQvzg{@dx?=Z1FbV|KmsM%1_mFO(QF zf_mUR(xU(O@nHvcBSmBmp^9w^*JB>Dcom~qMg=xu8*%h)^DZ}CB@Z z_y|?iYk9Ft*ozjM`R{T398Y5nm82p(kJ`X{s0YoWHgE;C^Bd^LMabwk8R4w=tzKyKa{DR8dBV=w9;zvZk3!Qi#yHPv+0{ieT zYJnkELFV#i9i2D0@dE0DuTT>$Vhoq@Rjg(eDxwppcX%3m@q+6DW*L{UtwT74NAYX) zVpnA4)TEG;Y<6O~&i@FV9&Q{!Hft`UQg;*iuK59}K_|W7q)$@pW}7;+T`M?OJuE?_ z+m!so4wZ@Ve5dW>syY}XJOo)XJBU4m(x;uP>33p;pe&r$&Nc1!l{GaT zt?f>4<-+0lzman1$m&Kvk>AQi1+tM)7F2vHL{;na#N(!FZzcE*a+)&r9KmaMUdJX> z9VlZ%gkI(2Hb6(GK~1%xqwKc*W-q;Gi3srwq13Bo2pyH3L>r-BM7?iLl+*MMcN4=z z2cc6y379SR&+?7lXly2GuT{rveZ_`iUqz3{_Ego_cYMKO-ZxfK?5LXc*d>3icw*H_ zj~!fn%O(S7{afN)sd#d0B$3Lby6o*hSa&wZlZi+ook^zcQs7MW-owX_oH~4DG837a zwg>Ab?47#t8a*vCIdd{HJ^ALT*Jtc!;jnECCT%uYU(5zaOYQH`TI&nfdNYyOO!4ZP cA4`hM^+!wXnZ}F79ZmjHd#icb-j5Fa2b!Y8MF0Q* delta 2487 zcmZwIZEO@p7{Kvq%Zn`(=o_y^M&6DW@3_0tQcFuI)>5#AiUbfMbiLb_BX_&?cCVx) zdNCmwKojGJ1QHXXXhM;Q+9=Ua)kOt(CVn6q|IgmFl*GwB``ek@ znVo%R_U>NGyKUK<<&#b+$_}EMxLBxE3L7VLpxm3HQ~>Yioi|mf>C{_rK5oMen83Ms z9xL%HEWztI4}U>E>H&v2SoD}u44G96IH{sxF)qY<f*J#HuhvJ&e--0M5n~R^U`7U!x3k z1tmGxkS9<#PzJt*%t8H)L6kJflZS8ywxjgljZri)!u{20PRelwQ&gAQ#pk!ni<;id3i})J`a5J4GgEj{7HIxZo%GW=~>>e6!=f7y0sT3d8%3%@i z#4dDEp6m+BfZw4EcniZgV^(heG-D_Ax3OEk$Ct2$PBOvwQ6?~mBwc-6M*bz0U(&D= zhfy+c2PH-SqU?zX>5=yBc(OpL7|I0xq;VB4WXH+oYsaN%U^gDa#rP{ejwNg~8D}NR z{hF%CKg*?hX?Ox1l$o7E8R#sw;WsE5n8rfOjVh6cQ$bvd8?X+YeEkBhrv5Yf{aCl< z)GM(I*Q1Q{MwSz~(FZ7NIf}RO5A^UFS6SH0PI>{a<6#W*?#ZS+kMaN?qTJ{*$^#6e zJozY=;$3XO2Phe>Taa7g>`qR|j&gAm9>+$!ihNWtKMIn%Whk4g75CzM$iu0BP%>A^ zsIuGZa0PZ@5f0$%_zFISlNn5&ycsvj`@e@1neiEvRGz~W{+MrXV<*bMUAPPnVGQ3w z*-U?-tmy-6#F;v02X<3Gj{ETr%D7vY?IFC3ljQwhOrCfFQ~-JPRUOK}Ew~=rk*uks zxB<^1A9a%h_f!R}TLC^vNG6^kq{#Y9hNQ^2%|tCBla(crjlY8XkC)c`nXIFfXLI=L zEUD}uWMX4w8z*b>m8Wql5hR$8|60n=Z4I%Vkj%9aQe;`B$irn@{8OcL-pwe>v5Ju8 z*how)yz>6LEUA_vn=eAFBUTdZTR$tZ%cX20b`X+b$)fx)$#SwCq-50=jW8& zz?(mH_0X27>k5a?7Vj=7GU9QsY1;Ba*Y>*S1%~dGyi>TOGvm0rFKzcH;-)rSoiq&^ zY|GSfJC;eAmK*X;mYU0~i>pPN_%I%T>>+;EMM+A010aVKdhFvT+);FE|u@~YAT}Mv5K;xS1Y=Tyhvr$ zP{o{23yK5AAv;5c0^XX+IbL|t>_Q{s=lZj`M~YVLvNJrH*>4`vJ$5E-CDPi+=#6&Ft!F?RL?BRj$NUh zhr^5vYAayqK0_u!k3rW6l4omV&~!qoE_VS=GGH?PVA_i0mmIV&jc8^-$*9n j-i<{+%r=r{CM`|Lz}QkylVp`U`r*PEmdpLUi@NncRjrKj diff --git a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po index 8e705b5f33..1e33ba75d0 100644 --- a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po @@ -1,9 +1,10 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: +# Christophe CHAUVET , 2016 # PatrickHetu , 2012 # Pierre Lhoste , 2012 # SadE54 , 2013 @@ -12,63 +13,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Métadonnées" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documents avec des métadonnées manquantes" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documents avec métadonnées optionnelles manquantes" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Jeu de requête contenant une référence d'instance MetadataType et une valeur pour ce type de métadonnées" +msgstr "" +"Jeu de requête contenant une référence d'instance MetadataType et une valeur " +"pour ce type de métadonnées" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nom du type de métadonnée" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valeur du type de métadonnée" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valeur de la métadonnées" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Retourne la valeur de la métadonnée du document spécifié" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valeur" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Requis" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Type de métadonnée" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valeur de la métadonnée" @@ -85,31 +90,34 @@ msgstr "ID" msgid "Name" msgstr "Nom" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Mettre à jour" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Erreur de recherche de valeur : %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Erreur de valeur par défaut : %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." +msgstr "\"%s\" est requis pour ce type de document." + +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:146 msgid " Available template context variables: " msgstr "Variable de contexte du modèle disponibles :" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Supprimer" @@ -141,20 +149,21 @@ msgstr "Créer une nouvelle" msgid "Delete" msgstr "Supprimer" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Modifier" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Types de métadonnées" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nom utilisé par d'autres applications pour référencer cette valeur. Veuillez ne pas utiliser de mots réservés Python ou d'espaces." +msgstr "" +"Nom utilisé par d'autres applications pour référencer cette valeur. Veuillez " +"ne pas utiliser de mots réservés Python ou d'espaces." #: models.py:47 msgid "Label" @@ -164,7 +173,9 @@ msgstr "Libellé" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Indiquez un modèle à restituer. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Indiquez un modèle à restituer. Utilise le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +184,12 @@ msgstr "Par défaut" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Indiquez un modèle à restituer. Le résultat doit être une chaîne de caractères délimitée par des virgules. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Indiquez un modèle à restituer. Le résultat doit être une chaîne de " +"caractères délimitée par des virgules. Utilise le langage de rendu de Django " +"par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +199,9 @@ msgstr "Recherche" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Le système de validation rejettera les données saisies si elles ne sont pas conformes au format attendu." +msgstr "" +"Le système de validation rejettera les données saisies si elles ne sont pas " +"conformes au format attendu." #: models.py:72 msgid "Validator" @@ -193,47 +209,48 @@ msgstr "Validateur" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "L'analyseur syntaxique reformatera la valeur saisie pour la rendre conforme au format attendu." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"L'analyseur syntaxique reformatera la valeur saisie pour la rendre conforme " +"au format attendu." #: models.py:78 msgid "Parser" msgstr "Analyseur" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "La valeur saisie ne fait pas partie des options proposées." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Document" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Type" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Le type de métadonnée est requis pour ce type de document." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Le type de métadonnée n'est pas valide pour ce type de document." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Métadonnée du document" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Type de document" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Options de type de document de type de métadonnées" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Options de type de document des types de métadonnées" @@ -273,137 +290,187 @@ msgstr "Supprimer des types de métadonnées" msgid "View metadata types" msgstr "Voir les types de métadonnées" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Clé primaire du type de la métadonnée à ajouter." -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valeur de l'instance de type de métadonnées correspondantes." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Vous devez fournir au moins un document." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Sélectionner seulement les documents avec le même type." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Le document sélectionné n'a pas de méta-données." -msgstr[1] "Les documents sélectionnés n'ont pas de métadonnées." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Erreur lors de la modification des métadonnées du document %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Métadonnées pour le document %s modifiées avec succès." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Modifier les méta-données du document" -msgstr[1] "Modifier les métadonnées des documents" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Erreur lors de l'ajout d'un type de métadonnées \"%(metadata_type)s\" au document: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Ajouter" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Le type de métadonnées: %(metadata_type)s ajouter avec succès au document %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Le type de métadonnée: %(metadata_type)s est déjà présent dans le document %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Ajouter des types de méta-données au document" msgstr[1] "Ajouter des types de métadonnées aux documents" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Le type de métadonnées: %(metadata_type)s ajouter avec succès au document " "%(document)s." -msgstr "Type de métadonnées supprimer avec succès \"%(metadata_type)s\" pour le document: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Erreur lors de la suppression du type de métadonnée \"%(metadata_type)s\" pour le document: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Le type de métadonnée: %(metadata_type)s est déjà présent dans le document " +"%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Modifier les méta-données du document" +msgstr[1] "Modifier les métadonnées des documents" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Modifier les métadonnées pour le document: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Erreur lors de la modification des métadonnées du document %(document)s; " +"%(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Métadonnées pour le document %s modifiées avec succès." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Métadonnées du document: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Supprimer les types de métadonnées du document" msgstr[1] "Supprimer les types de métadonnées des documents" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Métadonnées du document: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Type de métadonnées supprimer avec succès \"%(metadata_type)s\" pour le " +"document: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Erreur lors de la suppression du type de métadonnée \"%(metadata_type)s\" " +"pour le document: %(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Créer un type de métadonnée" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Êtes vous certain de vouloir supprimer le type de métadonnées : %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Modifier le type de métadonnée: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nom interne" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Types de métadonnées disponibles" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Types de métadonnées attribués" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Types de métadonnées optionnelles pour le type de document: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Types de métadonnées requises pour le type de document: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +631,47 @@ msgstr "Types de métadonnées requises pour le type de document: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo index 7befe12136e58f006218f0b8b58ba0bf87b57ff3..e8145a64694868d2c0505c5ab7267fbe32eb9489 100644 GIT binary patch delta 195 zcmX@edY`5Ko)F7a1|VPoVi_Q|0b*7ljsap2C;(z!ATET`^+1{rh%WLN;5D6F$e&;U^^IG@{>z*Q}ap`N-7Id875Abop{5C*Id`Y zRM*Ht!O+yo)L^n9qcljwMAyhr!O+ag$ZT>XV-1f_VqSV_VtT5TLPqK2D~!>TZJ6Q# D__QB} delta 299 zcmXYq%}T>S6on_6D2TsZR~RU|n>tC2mFx;#S`?SAoSI=8O=iT-6coX&b|WPe7hSo~ zC-4QtmvE(zqQ~HYkMD9haK8Qb;O?vDPYDu$I_QE$kb}S6gB9@b?0ajZgOd6$ diff --git a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po index f553baa2f6..c876a82726 100644 --- a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po @@ -1,70 +1,72 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metaadat típus" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metaadat érték" @@ -81,31 +83,34 @@ msgstr "" msgid "Name" msgstr "" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "" @@ -137,16 +142,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -169,8 +173,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -189,47 +193,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumentum típus" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -269,137 +272,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +#: views.py:95 +msgid "Add" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -560,47 +603,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo index 25923ff24d24da737938e553a821784fe451bb96..5b9023f54488c163281d2bb9db463afc55ec418a 100644 GIT binary patch delta 247 zcmaFKx{P&#NJ%qBN5*7Eoy=B1Y= krURujQzrjmjGmmrq{>#3n46TCF}Z`ukS!yzptP6)0FJ6F3jhEB delta 314 zcmX|*u}Z{15QZnwScr;`uy7&>?y;9MDrvpKLQ%xZ%GE6A60-@}-2)4;zRn|sZy*Zx z;sf{wf)8M&Phh8i_nC;(B;jI1i21_eBFmbSh=B=piR~yv@W`+E1F(;JWz= zP8Rm08G1QHL}$%TxY|^q5WBMWmKCZvQ?<^eVOBYv$=qB?W~K9ZAa5V&(uJ(NrC+4{ BMRNcE diff --git a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po index 028716db1e..2f57167ba4 100644 --- a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po @@ -1,70 +1,72 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Jenis 'metadata'" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Nilai 'metadata'" @@ -81,31 +83,34 @@ msgstr "" msgid "Name" msgstr "" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "hapus" @@ -137,16 +142,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -169,8 +173,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -189,47 +193,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Jenis dokumen" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -269,133 +272,173 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "tambah" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" - -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "" -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -553,47 +596,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo index 3afdd8fbc0e024af020ec99471422e1033768bb4..ac2ba46a992f8b1ba87be7809d901998a75f5a3f 100644 GIT binary patch delta 1937 zcmXxlSxj729LMqhOj{PqK8!*Qk|W#|o?^Y~{S)meWXJ9OIb58a#oT(7SjK&SF27@Kz153l+Jn z-+vah;+JqQPN5?92gWeKmo&jPRKEjr57Nl^4`#8F{yAKR-=Xs2FVspl^H2kBMGdeI z+i?p5ydXHhS{hy>LxqayZ074g5B#?Rc)N=q4CdmcsgyYRh$**3hD z{&m9Aj;naM0v|w4>G;YDqP$3VJfr@A&Dhb2evVJ$BqrJDyYL*Qv5d2&BpgQ4!X8IW@F;3QFQS95peAq{lXwR8o~y{NTCRfl z5Pgec0$Xt{rco<>1NmD!joRCY{osv$0oQ0P+?Tz`(Dv%yZyE%SSWf~oT_lEXgf4f zQp79kxU#EW_*e3NuWaS2No=NSUs;6RNxhe<@GE30+9It^Ay?7q>F`?fnXaaeR*!#A zDA5XKH4Vb+1f?bPpXcVlJah9p=e7K6>WhE+v*)LcE^iaD>hNJWxZ4- zW1(!Iq2sHf{~7x2@XJo?qqULhQ177LL{&*qw^KJ!b)=L;YpL3M744<+MoD=Km0wkF zyE@%y@v;2t#a+Rw!I4oXGxEsz;q35O%31kD{(R|RAphLr6G6ATBIC|g?9TUBHU!N5+5vQN2JD(l^EYxb3Q#@dsy#2P1_OeNdhb)g2`SshEnop?to(cwNCnl9^05APpO z@6V>3p)vQr(11Hw`$;|&J{gQ0&W@!s>9Mr)Sa#GII#if}I~%FXe;PRw$RA(web9Zm Wanx;#j^w|IhJx<>&INZzQ}6!}WyN0r delta 2534 zcmZwHZEO@p7{KxAfxKKPFD(>lp-u&Qy!5Vj*OtOTL7+&BAhk52P>{8^w3}RaOLt3z z#+(`wLyRaagv5l1nn)rEnj9ve2H(IS#%N+fh%XrR1AZ}xpZH*m|L1P6^aGR5{bpx( zc4nS=w(qo_T%WyJKK_KFbW`V2KM5(d4|^WqhoUDc6~S6ugdM^45KiIx4Xna5xEjB} z2eD+5QZum%!`OgxFois#x^cErS=B>h0v#UC!V#Q@N0C4EK0h&F@}dx#$Uin{0b|WU;RSk936M?5T0ha+i_v3Qfu*f+=-te!BN$0 zTV7Oy5~O;R4J1)syaHL1>cl8Mjk5EXaVoxrGX4WhGQYY+BY}6Y9OrYl0+-7OZ6UJ($L4@e0a97nKu#nJCJ(iN0z= z3F&HFjBO~9urY}*q2$JgLH`f%8tu8V7abDjg2S^??!pgZj^}a!+Lx%@Ek7U`lsM} zJm)9xOJr%t%2L>ZJt!+aj+2{L!Ujy>I+Wb-umML<&h{+ISMhUjKf-y* zgfWyPU4s&lXHX(=201--9vkr*F311yN%{U;7`2s-Bk1Bylu&l*!b;DhcKOM!fDNElaA z<-8va`is=jc({0h1TmiZPZSx6bb(dDv6#|3u%x7`66MKGn4R17E9SomGhJ& zk|H^#c2`op%*Oot$btr{@2l*sii)*Aq;;;ea{Nx`GNuK{# z3i)iVmqt*g`&TBskn5P(63V?fd3(t?Bc1kJOY1_O0|REQ;f{$rX7EU~qpF_Y!?RJVi% zipRpU#g}=GwjG7%&HSPZcOwEcB diff --git a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po index 83cc6837ee..00ac4fbee1 100644 --- a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Marco Camplese , 2016 @@ -10,63 +10,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadati" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Nel documento manca un metadato obbligatorio" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Nel documento mancano metadati opzionali" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset che contiene il riferimento all'istanza MetadataType e il valore " +msgstr "" +"Queryset che contiene il riferimento all'istanza MetadataType e il valore " -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nome tipo metadato" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valore del tipo metadato" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valore del metadato" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Ritorna il valore di un metadato specifico del documento" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valore" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Obbligatorio" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo di metadato" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valore metadata" @@ -83,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aggiornato" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Errore nel valore di ricerca: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Valore di default errore: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" è richiesto per questo tipo di documento.." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variabili di contesto template disponibili:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Revoca" @@ -139,20 +145,21 @@ msgstr "Crea nuovo" msgid "Delete" msgstr "Cancella" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Modifica" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipi di Metadati" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nome usato dalle altre app per riferirsi a questo valore. Non utilizzare parole riservate di python o spazi." +msgstr "" +"Nome usato dalle altre app per riferirsi a questo valore. Non utilizzare " +"parole riservate di python o spazi." #: models.py:47 msgid "Label" @@ -162,7 +169,9 @@ msgstr "Etichetta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -171,9 +180,12 @@ msgstr "Default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Inserisci il template da renderizzare. Deve essere una stringa separata da virgole. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Inserisci il template da renderizzare. Deve essere una stringa separata da " +"virgole. Usa il linguaggio di template di Django (https://docs.djangoproject." +"com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -183,7 +195,9 @@ msgstr "Ricerca" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Il validatore rifiuterà l'inserimento se il valore immesso non è conforme al formato richiesto." +msgstr "" +"Il validatore rifiuterà l'inserimento se il valore immesso non è conforme al " +"formato richiesto." #: models.py:72 msgid "Validator" @@ -191,47 +205,48 @@ msgstr "Validatore" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Il parser riformatta il valore immesso per renderlo conforme al formato voluto." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Il parser riformatta il valore immesso per renderlo conforme al formato " +"voluto." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Il valore non è compreso tra i valori ammessi." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documento" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Tipo di metadati è necessario per questo tipo di documento." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Il metadato non è valido per il tipo di documento" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadata documento" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo documento " -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opzione per tipo documento del tipo metadato" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opzioni per tipo documento del tipo metadato" @@ -271,137 +286,185 @@ msgstr "Cancella il tipo di metadato" msgid "View metadata types" msgstr "Visualizza il tipo di metadato" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Chiave primaria del tipo metadato da aggiungere." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Chiave primaria del tipo metadato del documento" +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valore dell'istanza corrispondente del tipo metadato." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Devi fornire almeno un documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Selezionare solo documenti dello stesso tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Il documento selezionato non ha nessun tipo di metadato." -msgstr[1] "I documenti selezionati non hanno nessun tipo di metadato." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Errore modifica metadato per il documento: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadata per il documento %s modificato con successo." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Modifica metadato documento" -msgstr[1] "Modifica metadato documenti" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Errore aggiungendo il tipo metadato \"%(metadata_type)s\" al documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Aggiungi" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo metadata: %(metadata_type)s aggiunto con successo al documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo Metadata: %(metadata_type)s già presente per il documento %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Aggiungi tipo metadato al documento" msgstr[1] "Aggiungi tipo metadati ai documenti " -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo metadata: %(metadata_type)s aggiunto con successo al documento " "%(document)s." -msgstr "Rimosso con successo il tipo metadato \"%(metadata_type)s\" dal documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Errore rimuovendo il tipo metadato \"%(metadata_type)s\" dal documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo Metadata: %(metadata_type)s già presente per il documento %(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Modifica metadato documento" +msgstr[1] "Modifica metadato documenti" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Modifica metadata per il documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Errore modifica metadato per il documento: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadata per il documento %s modificato con successo." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadati per il documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Rimuovi tipi matadato dal documento" msgstr[1] "Rimuovi tipi matadato dai documenti" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadati per il documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Rimosso con successo il tipo metadato \"%(metadata_type)s\" dal documento: " +"%(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Errore rimuovendo il tipo metadato \"%(metadata_type)s\" dal documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Crea tipo metadato" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Cancellare il tipo metadato: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Modifica il tipo metadato: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nome interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipo metadato disponibili" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipi metadato assegnati" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipi metadati opzionali per il tipo documento: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipi metadati obbligatori per il tipo documento: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -562,47 +625,47 @@ msgstr "Tipi metadati obbligatori per il tipo documento: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo index 89be2431e28f9f07f4f2b0b84cf05d4d96b7ad4a..99bbce486631c1b4c518634411aa466c3afacdd9 100644 GIT binary patch literal 2576 zcma)-OK)366vwBf4>0fYN_n)CKxiU#V>>h@+$e~qPNkqY38@>9x}X!^WBVreVdjqQ z7V!m&P=zWX78J38Z8nwIlnoUUOEyTAK(MLA2S7+Hy5WDWug7*02}XD3H;*%C&N*{D z{^Qu8&jrdU)E7}J2ZWdbKRt*B-jcY-vN(d z{5|*-_%rwzcrW8$AU<&boB7-$Alo$pJ`SD)Pl9=n^{#>}_ddw`wm_DTL42Z(hR^vJ zdFwC4EzS%7Jz!MX-lI5__Z`nT z39|ohf-LtIh)=wmjW2mc|mP zB1TbPMST{P3(Gu=$~nsR^WAb`-#D*Mq4IfrCxhh`3|>HGo4BygoUdFsk2&_7w;UUo zkmfXy`YO3IP}mQ?JH8+GVH}mq6Q~?BE*y&!sO)Q6#>SH|=_gXthb>=|Cu^~mrhyqR zuC_voj5Jr9G$qb@9##vf89TlzSoRby5%QbUKoe3Tf9=>hbVg(jRtLS9sg%9+TH8jN2r-=$o`_ENeOr z2QOwlyJc+5uG>0T;b>iK;%Z53@KtnM8P}k|N^SVmv7b~bJwCagdiCvjnTdg>07D3)A!6sKu7m9B*XYVrH4gJSPL%dz zoe$YBhrBS!V^gXy9|a$*EaxZf39d|Ma^iCr-E4b6khy7=yLS%^|t3#BP z+Ln<|tq$>GR|!j`b5X3#8v56^N7GTd4@h{+Ik23%O delta 1015 zcmX}qPe@cj9Ki7@-9MV^maUbo>5zw#P}pXeiai*^<2ZmRY{hBUe-jz9s){^> zcrlMMaM69Rf?c%l;X!z}J=PgGfS@ls9)MNH`ODdr&USJ9)FzRB>Gl8dlZ`p3O40c!N z8WqnE)Ft_4A0rE@Ju{!{9?lty{z`jvsdzVBy!6>j>O`V#w=*R z, 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-09 16:41+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Johan Braeken\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadata" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documenten missen vereiste metadata" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" -msgstr "" +msgstr "Documenten met ontbrekende optionele metadata" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Metadata soortnaam" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadata typenaam" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Waarde van een metadata" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Waarde" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Verplicht" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata type" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata waarde" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "Naam" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Updaten" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Standaard waardefout: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" is vereist voor deze documentsoort." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Verwijder" @@ -138,16 +144,15 @@ msgstr "Maak nieuwe aan" msgid "Delete" msgstr "Verwijder" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "bewerken" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadatasoorten" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Verstekwaarde" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Document" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Type" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" -msgstr "" +msgstr "Document metadata" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Documentsoort" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -240,15 +244,15 @@ msgstr "" #: permissions.py:12 msgid "Add metadata to a document" -msgstr "" +msgstr "Voeg metadata toe aan een document" #: permissions.py:15 msgid "Remove metadata from a document" -msgstr "" +msgstr "Verwijder metadata van een document" #: permissions.py:18 msgid "View metadata from a document" -msgstr "" +msgstr "Bekijk metadata van een document" #: permissions.py:21 msgid "Metadata setup" @@ -260,147 +264,187 @@ msgstr "" #: permissions.py:26 msgid "Create new metadata types" -msgstr "" +msgstr "Voeg een nieuw metadatatype toe" #: permissions.py:29 msgid "Delete metadata types" -msgstr "" +msgstr "Verwijder metadatatypes" #: permissions.py:32 msgid "View metadata types" -msgstr "" +msgstr "Bekijk metadatatypes" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" +#: views.py:95 +msgid "Add" +msgstr "Voeg toe" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +605,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo index 674ae9326143efc98064454e1f8d0317baf31d6e..d2927c2138996ddc0d74017be1c1d7ce12896e88 100644 GIT binary patch delta 1563 zcmYM!OGs2v9LMo9qD3Nzv}hMZWD8xmXb~0F_jkSKVb1xSb06pNKj+ST%|amcsW|Jg zA+?aVkiUD3If655DM;(GjoFQPt~Tmc5`B0EH{&H-kGF6W-p5>gg=P2#b8s3r;2f?q zCS|@+DdNHs`f&|U?ZiUdg%P)%biILDTpvdb{2cY(6qevDPU085i4U1Y8Q~l@g7bV8qiz{(|9z;#dIL4VQDhEgJViw_%U}|hP@h*jqxkSJD%72>=WrkGE6C40rO*~- zTxXFl*m;+(oC69bMBYZ$q?B|Xw6Ihig$`4UtP~_`OO$HKJIMNu6%8dtK?5u4Gp%%L z%loScD0(_mO8QUHHfRB1@=B_rqHQ3hOoXzUY>`)z4r7Dc(CTcru9Yh(q&i6YTI$Ih z184idl#>-&gV%{-Koiq^q(|X0B#eWo4%FDmkFg;6)q7)?wdA`+Q^$sXD#Y^8m=tSzC6 z)(g?Zm|fUtAdw3+CSI6bxEn9<0)x9C;thrnUy%fov4BPsuQ2-kblg^_Dp2hE)`JjYbjOoRQ?=u*rU&Z_Ib!@}acrSj8 zi*W{5<5#!{uVW|P#8zx(aHTOd6QmJhU>$a0A3lh?{C>svBnBA&47Kp*sOP@N4xGa& z{1acpDWZ4`ldN_ZR*<#LQDlmF1zTC)9H$XwU=p>1Gq?;dp%%D?3H%M?*t5i#b{s}6 zd>A#q<~xbn$SG97XOW$n8Pvj;aTtG8pY_cE`CE?LaXmhbtYwO*2an=Td=p3TG9JXO zOXnAO5B1{H$UDtPsGWX-5&RSt=vBNQfA{;VILF!y=N+b@Gya+FZp77WM>~3)k2Sa( zb><%Gj=Y3g=mb85@1qvHfI8!gs13~GD*P3d$;Iqa^EOH-jp90<1PW}nb z>|tOlW>A5g@+VwG1u}~Yq?tTwM;)lthEY4;jr^HmKD2>6j$jG({nw~8>7#NP zYlh3%I1612T`r|%9d&@ZQ1p)^>US*aNaB89$Dscg%96@v>L#jwdSR-5QMwB%$_yuY zr>xXgbmMgid#E~_g_5Sx<#%Gf_taZj_D+wqYzTDitdz=je4=<{EbCgQZ1b+eK+$t; zwwS3DT(8_e{pymnP5Vo3-p!QV?45BMZprH{+fnBTk9t*GaLZ2CDLegU&!}tv^+1Uy z{&W8HyKO^Fq0P~FJeo+_SR$QD)vqjFqmfuNF<@g`(#cf4HCU}r2KROEaJ)km=a8GW z*8ohh$79@{pQusuCi&B38fYKGO04aQ^k*s;dA z=ENd)yN%nlP1HXKy)eCK*_A+q%#4*@B<8Gh?hTtMTF=Q9yfHUtb8go4_~NjipKI;G zrdsvjgmSPjYME&Zj{V|{ll7{ZQ9n6q_M5$p$x8A3E2{qN+_~fb_kqwqmZ;zA_~S1J CunnvL diff --git a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po index cc9d5d1219..5def0d5a52 100644 --- a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -12,63 +12,69 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadane" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Dokumenty, w których brak jest wymaganych metadanych" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Dokumenty, w których brak jest opcjonalnych metadanych" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset zawierający referencję do instancji MetadataType i wartość dla tego typu metadanych" +msgstr "" +"Queryset zawierający referencję do instancji MetadataType i wartość dla tego " +"typu metadanych" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nazwa typu metadanych" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Wartość typu metadanych" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Wartość metadanych" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Wartość" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Wymagane" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Typ metadanych" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Wartość metadanych" @@ -85,31 +91,34 @@ msgstr "ID" msgid "Name" msgstr "Nazwa" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aktualizacja" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Błąd dotyczący domyślnej wartości: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Dostępne zmienne kontekstowe szablonu:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Usuń" @@ -141,16 +150,15 @@ msgstr "Utwórz nowy" msgid "Delete" msgstr "Usuń" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Edytuj" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Typy metadanych" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -164,7 +172,9 @@ msgstr "Etykieta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Domyślny" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Podaj szablon do wyrenderowania. Wynikiem szablonu musi być łańcuch rozdzielony przecinkami. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Podaj szablon do wyrenderowania. Wynikiem szablonu musi być łańcuch " +"rozdzielony przecinkami. Użyj domyślnego języka szablonów Django (https://" +"docs.djangoproject.com/en/1.7/ref/templates/builtins/)." #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Wyszukanie" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Walidator odrzuci dane jeśli podana wartość nie będzie zgodna z oczekiwanym formatem." +msgstr "" +"Walidator odrzuci dane jeśli podana wartość nie będzie zgodna z oczekiwanym " +"formatem." #: models.py:72 msgid "Validator" @@ -193,47 +208,46 @@ msgstr "Walidator" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "Parser zmieni format podanej wartości na format oczekiwany." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Wartość nie jest jedną z dostępnych opcji." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Dokument" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Typ" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Typ metadanych jest wymagany dla tego typu dokumentu." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Typ metadanej jest niewłaściwy dla tego typu dokumentu." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadane dokumentów" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Typ dokumentu" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opcje typu metadanych dla typu dokumentów" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opcje typów metadanych dla typu dokumentów" @@ -273,141 +287,186 @@ msgstr "Usuń typy metadanych" msgid "View metadata types" msgstr "Przeglądaj typy metadanych" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Wybrany dokument nie ma żadnych metadanych." -msgstr[1] "Wybrane dokumenty nie mają żadnych metadanych." -msgstr[2] "Wybrane dokumenty nie mają żadnych metadanych." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Błąd podczas edycji metadanych dla dokumentu: %(document)s; %(exception)s." - -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadane dla dokumentu %s zostały pomyślnie zmodyfikowane." - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:272 +#: views.py:43 #, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:313 +#: views.py:95 +msgid "Add" +msgstr "Dodaj" + +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Błąd podczas edycji metadanych dla dokumentu: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadane dla dokumentu %s zostały pomyślnie zmodyfikowane." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadane dokumentu: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "Metadane dokumentu: %s" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -446,18 +505,21 @@ msgstr "" #~ msgstr[0] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_0" #~ msgstr[1] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_1" #~ msgstr[2] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_2" +#~ msgstr[3] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_3" #~ msgid "Add metadata types to document: %(document)s" #~ msgid_plural "Add metadata types to the %(count)d selected documents" #~ msgstr[0] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_0" #~ msgstr[1] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_1" #~ msgstr[2] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_2" +#~ msgstr[3] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_3" #~ msgid "Remove metadata types from document: %(document)s" #~ msgid_plural "Remove metadata types from the %(count)d selected documents" #~ msgstr[0] "6ecb682bfaa127b9e56a8036a602ccf4_pl_0" #~ msgstr[1] "6ecb682bfaa127b9e56a8036a602ccf4_pl_1" #~ msgstr[2] "6ecb682bfaa127b9e56a8036a602ccf4_pl_2" +#~ msgstr[3] "6ecb682bfaa127b9e56a8036a602ccf4_pl_3" #~ msgid "Metadata for: %s" #~ msgstr "metadata for: %s" @@ -571,47 +633,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo index 203a0a0fb18469dbe6db76d63300bfa49a266a9c..cad86a15bea821ddca967cbd6ea476943610d6e0 100644 GIT binary patch delta 793 zcmXZaPe_w-9LMqB=CeQ9EL~})HJ`#7f`ez%EqPASQS2ZjJ4gquwUbWTB!qI;A_U_{ zDB_{rItCqzf-YSw5D^S-(jmcF>KIS6d|qYs1^kV-aR=4;F>2y2E^0J|nkrh-J^~&fcI5`MH|BrT(|63|J z3Vo~2FO!;_#)7zJ--L(k*YHaFv&wV#Y30fMOlh{}yLYOe@3#zu?2_}P?Ow*qXL2KM zHt**>J09uPH^Z4+*3B0DT){3xUM0q+X3O(a<&y8t)$CDZ(msxs?YHPBr&4ui>~gHr O32IKqiXrDKRn8 z!HC{45LQB*Wub9la%LcL5#pd5b|fxM{GXTVNzVJ-_jT?)_r0d`&8eR|fgMHMCU21e zpHdTeffCz(rS9Sf9L5F?;VE`v6GM231K7eojC4>7M^WC3VFYK8N7Q2sDpglc8FX>s z8OE`IVcbC}w2!m+85gkCzCTBGd2R{Ev4}F^I}Wm-k2r$6?ehjQp*lus_A5r1U;SjT zO}BqA$&I(XJ%(TK4xXcQ+Co`qkQ3=BjMs1ixuvF2<3p4k%A<6;iIi4b*p06-f$uTO z{OXv26#9nD+2Vg8-(5acl$0HjkR9Xm zhP|z1;a&{bU4Po1`0e4Vj$z;ULT$aO%N2K{xNLN;s#i^p3vS8iWj9}2Go|XJ-3uJ` zO~sSRcq*+Esca@=p9iCIB@s{E*NJ=CbjH33Zdxa_)H9ze6>7PH$?CFw5h~iV(81xS l&P8ABk=ZbM#jTV~-c)qith$=&?z*n6{h!L6w3l5k{{r}6WpMxi diff --git a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po index fd1c9fc7f3..327f4def70 100644 --- a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,63 +11,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadados" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadados" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadados" @@ -84,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Atualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Remover" @@ -140,16 +145,15 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadados" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -172,8 +176,8 @@ msgstr "Padrão" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -192,47 +196,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -272,137 +275,180 @@ msgstr "Excluir tipos de metadados" msgid "View metadata types" msgstr "Ver tipos de metadados" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadados do documento %s alterados com sucesso." +#: views.py:95 +msgid "Add" +msgstr "Adicionar" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo de metadados: %(metadata_type)s adicionado com sucesso ao documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo de metadados: %(metadata_type)s já existe no documento %(document)s ." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo de metadados: %(metadata_type)s adicionado com sucesso ao documento " +"%(document)s." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo de metadados: %(metadata_type)s já existe no documento %(document)s ." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar os metadados do documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadados do documento %s alterados com sucesso." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -563,47 +609,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo index 5d8c3cf9abdd1be43541131681c4e33367647459..e87b6b8b1550cd0c9fd438ff1c119eccdd32b49a 100644 GIT binary patch delta 1969 zcmXxlZERCj9LMpq4%`Fofv#g?wevEVn~XwRST{R1$JkI|8#sI-3$j8BL0~0qr^zCz ziPKj)oL3h}j7x~d86V#CjWN!rsbPpwqi+aiCKxpaQAm76BJumX-kt2+&pG$D=brOF z|I=OTz0#Fi^e%hVQ1(#opuXlY=9t>cxlqpEW=s<d(+i?fh;a=>* zQLM%H(1%}PDPG3a_#5(8g3LLV;c*ru?Yj%iTs&iE-NvCW%wkn#R*)8vu^(z z*BiKu`_(1?Ppl3%(r-n5KY{gnf11WBZcJen&f@#{5l-MSro9cX<1j{67(PIp67>$JcU=Azje}Q-6kEp!(2epzu9%{fr z)BqzG!bu#$PjCRemBt*@bJT?9Q7=A^1l4?tirA$};(s@dpShuxmN2^ZJb>zV;Ohm( z?8c4s{~|0QJ?CKy4x$DeM}2;R%Q`%RiohIdA$~GYk?KGt;a;rA$9=?~EHtOMp}lzy z)t^CS^INC^K1Y4=3TkVvA#-vvH4I)dRuk*R1{}lncm}odd9?5XZpEueuuOA~Owo+n zQ8U_)n#j|538(QzJjwKT;4M^W`#4)l!dWCO%sZ%%et;eLF)ETbQ4y+T&@I@2I_8g} zA9Gn6TFFaz51vB{e?s1E{zZk(M>w>%8}MNqM@8a0)Wm;r`yNKso>yZQ>rkINjU9Ln z70E@6>iqvfBgqYmX({y2Bk5o!aShJkgZP>IyozNJJ>$oA45KFg1n$E(a0GARaXi56 zG@*;ANPO>l8JFw)|4L&653ZsjQOkx~xE>XOU08rR0V<5^6zyN9+rH0L=w-@@R&^*^ z)MhFv!og@P1cVahcOH_1v2%}TjDW@n8 zy4<$VqLzwsK#8idjha&k%czQg_D4UdO31sY4^Wqiwxo%wWK&_g&HYq%&pCQJp4u*g z>s=%Wo^MwYcSGogaO7yxow(3wte|+@FSo}ybW}VC)=ozw0eZ%&c@6&us z^_-_XW1UE5_H!(Donb CNz{M< delta 2574 zcmZwIZ)_7~9Ki9X<^Sdw8;k*iaR}QO($bcV$$&XLH`uzJn z&)t6LxZah!Ts`)%BK4DJlRpkBwFd{raUmHKlxo6xxDdOG_gTDy``2+69>)$mi!(4V zQK@M-3(If`&ct@)C#oN7mCC6B3gfA8u?F|y96X5psSmhR;YqB(&v8Cp#0B_I@qXT< zLj77COMMb$Vitz+Wt8?OaXNm6QyE`fqVPTyH}C~K%5*nlL%C9`@fqBTpCZ9gbu3#t zsz(XZVw45MP&!_Y%t`fP2)CfD{3V=>$57gzz!>AJPbft323F&Io=(MOxB)ldCOnMN z!Br%5>bK&38I=-|nJ6n?h1+lqHsMi}2%g6fevdNYiIv2E5rs+$@}M0b#oZ`BID`DD z^IYcQMeM~tQC8SJrO8GSP+A#9syqv23ERT2MmT zfz8;35(x`q_&mzl_^??2EuIW0bq&MRALYc!1ir?*P!5!|UyKW|6D2YlWkJI=#9u;r zl?pkfe`7t4XCvj5HlXZXsCd5~zb_m*ajk@Eo!j^&>JT^)JdE*UWt%=8#asNOAl0wtuU za50`niPUv$#an1#D;qA6dISU5O_pT%*TVUb@zoM?U$IgKl2=JqEa`y){-^hT${WaX zk|jy_WrA$IT16g7{S@SFXePH8EBSV*G35KmU1W(kfm1mN(Ms~|X(>1IeoJaA;2#Y@wfiY$x;jJof47#>gR^FKZwd{@H{7r+7Yh<$a z-ef`>rfa0MNri1`BVoq})7o;w-u?>RV5No(N2he$Ej@4yd#B;<)`nxIwc!qBw0FH? zpmwC4k=Cx6FkRDs6wbF!UJ~3|=t3t-olww@)#Mtx&Am*(8Y(pltA6R*AM>^b4lVxo z_ulp?r=w)P2ZfCRF$=FsRY3(X?>(9nWT8?X4aUJ$%SLIrlg`&|=Y^f26wYRp0 zA}x_fS#M9MPw!1SN!to_nXYa(Vv(r-yJ(vcTiPCJ^Db1?Hm^=43Dvr+PP(RJtTg4e z)4%R4)P>`AI=my>;r&q+_mb6*RcI?T9_uj%v7R-efqn3@mf_4GFb^`>o@ ziDaBn&1`YX37aJo-(<%2u2j~H%a~cy@NzSn^EYd2$24|n;+F7(2 zOqYUehrMZa`xdRvXp33;AuWtBvR5*Mv~$vSVW0zbhw?wwJssR$`o(B7erXNAZ5tWe zaR!s4vka>q>85aM=&>}8tYEZ-PLDS6w$*>tVy5h@kud!|8Gg%(Cpj@JRu)}2LehS8 NGdYrMTl3uI{{hT&o~r-= diff --git a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po index af31537046..95faf41579 100644 --- a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -12,63 +12,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadados" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documentos em falta metadados necessários" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documentos sem metadados opcionais" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Contendo queryset para MetadataType, referência de instância e um valor para esse tipo de metadados" +msgstr "" +"Contendo queryset para MetadataType, referência de instância e um valor para " +"esse tipo de metadados" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Metadados nome do tipo" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadados valor do tipo" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valor do metadata" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Devolver o valor de um documento específico de metadados" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "exigido" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadados" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadados" @@ -85,31 +89,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Atualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Erro de valor de pesquisa: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Erro de valor padrão: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" é necessário para este tipo de documento." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variáveis de contexto do modelo disponíveis:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Remover" @@ -141,20 +148,21 @@ msgstr "Criar novo" msgid "Delete" msgstr "Excluir" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadados" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nome usado por outros aplicativos em referência a este valor. Não usar palavras reservadas de python, ou espaços." +msgstr "" +"Nome usado por outros aplicativos em referência a este valor. Não usar " +"palavras reservadas de python, ou espaços." #: models.py:47 msgid "Label" @@ -164,7 +172,9 @@ msgstr "Label" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Padrão" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Insira um modelo para renderizar. Precisa resultar em uma seqüência de caracteres delimitada por vírgulas. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Insira um modelo para renderizar. Precisa resultar em uma seqüência de " +"caracteres delimitada por vírgulas. Use a linguagem de modelo padrão do " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Tipo de metadados não é válido, para o tipo de documento" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "O validador rejeitará a entrada de dados se o valor inserido não estiver de acordo com o formato esperado." +msgstr "" +"O validador rejeitará a entrada de dados se o valor inserido não estiver de " +"acordo com o formato esperado." #: models.py:72 msgid "Validator" @@ -193,47 +208,48 @@ msgstr "Validador" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "O analisador irá reformatar o valor inserido para estar em conformidade com o formato esperado." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"O analisador irá reformatar o valor inserido para estar em conformidade com " +"o formato esperado." #: models.py:78 msgid "Parser" msgstr "Analisador" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "O valor não é uma das opções fornecidas." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documentos" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Faltando metadados necessários" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Tipo de Metadados é necessário para o tipo de documento" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Documento Metadado" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de Documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Tipo de Documento - Opções de tipo de metadados" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Tipo de Documento - Opções de tipo de metadado" @@ -273,137 +289,184 @@ msgstr "Excluir tipos de metadados" msgid "View metadata types" msgstr "Ver tipos de metadados" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Chave primária do tipo de metadados a ser adicionado." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Chave primária do tipo de metadados a ser adicionado." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valor da instância tipo de metadados correspondente." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Apenas selecionar documentos do mesmo tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "O documento selecionado não possui metadados." -msgstr[1] "Os documentos selecionados não possuem metadados." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Erro editando metadados para o documento: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadados para o documento %s alterados com sucesso." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Editar metadado do documento" -msgstr[1] "Editar metadados dos documentos" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Erro ao adicionar metadados de tipo \"%(metadata_type)s\" para o documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Adicionar" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo Metadado %(metadata_type)s adicionado com sucesso para o documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo Metadado: %(metadata_type)s já está presente no documento%(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Adicionar tipos de metadados para o documento" msgstr[1] "Adicionar tipos de metadados para os documentos" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo Metadado %(metadata_type)s adicionado com sucesso para o documento " "%(document)s." -msgstr "Removido com sucesso o Stipo de metadato \"%(metadata_type)s\" do documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Erro para remover o tipo de metadado \"%(metadata_type)s\" do documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo Metadado: %(metadata_type)s já está presente no documento%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Editar metadado do documento" +msgstr[1] "Editar metadados dos documentos" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar os metadados do documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "Erro editando metadados para o documento: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadados para o documento %s alterados com sucesso." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadados para documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Remover tipos de metadados do documento" msgstr[1] "Remover tipos de metadados dos documentos" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadados para documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Removido com sucesso o Stipo de metadato \"%(metadata_type)s\" do " +"documento: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Erro para remover o tipo de metadado \"%(metadata_type)s\" do documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Criar Tipo de documento" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Apagar o tipo de metadados: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Editar o tipo de documento: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "nome interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipos de metadados disponíveis" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipos de metadados atribuídos" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipo de metadado opicional para os tipos de documentos : %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipos de metadados requeridos para documento do tipo: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +627,47 @@ msgstr "Tipos de metadados requeridos para documento do tipo: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo index 78f128bfdfb279f9f6374f782db0df577819b03c..dc9051532553e93b7d7800d5651fddcecb2b3aa7 100644 GIT binary patch delta 849 zcmYMyKWGzS7{~E9X)bAMH8p9ht*Ks>U^|>%Vv}k>a8Qt9NeK>uLJ9V)Ei@_l;~+>B z9J-k0@E@gvgNq1lsY3@Br;3wf9qLpN1V_Qq?=J>?==*-Ixx43i-uJyviLZ&)_ju^J zAx<$;jKP306WAYQA~x|XZeb68!x7xaVf=#;jB_)LBbdZ7Jd9Hq!fUAartu_tm@uYg zo^nAB^9n6o!(M!Y4!*-9xQ9yk1E=vf&fpcY>wdfII;!A%CN;E$THH?e_r31#`)E<$ z9B?tp13!_DOfOyRvI{A6`Tu|{T49n&iAHe@FQXcrL;lQtCgoYder#hD*HF*D#We2X z3H*f?^-Yv4dN77cILve&Pva1lFosK5#D{nbzhE5C@bXd2BWp0%Q7fOpalDCamU)C~ z>1>)-|dbMWQBy=u*#uikAgdzD7PPS>|* zdnN+@dgx_fQPP%U2Y|$xs4;Jf-)rxbq-0%u^*3IzTq?66qnS3Fe z_uJNL>_)k=&@3--yH=em75!xRw*NT%%(o&RQp;YWJkP843I%J;|FzS0eS0HvC*WU- GuKoq+v|w-m delta 869 zcmYk)%WD%+6u{w|G@aN-tTx6+we?EG$6|DnI8_6>QWUYo1{XdSGPc(`QYR(JwAf7+ z3hKfv99&631s6dVLfyJh1TBaZ!IdH|)IUKei1<4(f`{DsCil+VbI!~xr(dQUUj`HR z6fwfs!sw4FwHtq-#Dlm}JMke7;Sz4bZJukY*$Td)>lCYwT)-}}fkm6!a0g1E$5A>T=P-a z&iV(GeLmw}@~iKhY`_e&188Fj58)ZSgM;`3*WwDwljt(^d#}Z9kp{gJ73UFzUaEPv(IsQPnGPlne}UaC9scpbyL)N zC&zV;oj;(R{l$VCEp*?CT, 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadate" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valoare" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadate de tip" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valoare metadate " @@ -82,31 +85,34 @@ msgstr "ID-ul" msgid "Name" msgstr "Nume" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Actualizați" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Scoate" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editează" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadate tipuri de" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Iniţial" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tip" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tip document" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,141 +274,185 @@ msgstr "Ștergeți tipuri de metadate" msgid "View metadata types" msgstr "Vezi tipuri de metadate" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Trebuie să furnizeze cel puțin un document." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadate pentru documentul %s editat cu succes." +#: views.py:95 +msgid "Add" +msgstr "Adaugă" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipul de metadate:%(metadata_type)s au fost adăugate cu succes documentul %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipul de metadate:%(metadata_type)s e deja prezent în documentul %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipul de metadate:%(metadata_type)s au fost adăugate cu succes documentul " "%(document)s." -msgstr "" -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipul de metadate:%(metadata_type)s e deja prezent în documentul " +"%(document)s." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editați metadate pentru document:% s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadate pentru documentul %s editat cu succes." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -568,47 +616,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo index 348cd83c882cd6c024af7c92c8e8afee133f8e8c..1e03f44ddf5fa4fcf582e67c162a1350c4940a50 100644 GIT binary patch delta 1460 zcmYk+OGs2v9LMo9I;Q4~`4}@bb9zknn$ejWtt<94!L&EDNCc-cH>tfWDrh#gaMj}y zBot)QB6l%}K_Ue~P$?EvI}M^m4=PBKBC7B2YS4jmKj)tDy#D8Z?XDiJh>z#EuNq1f zbv|{{Wz0@|mdt~amSRjPrlY#T=)ou!;$~crO*jv)qYnpgHa@`ue2J;}1!v(D<{1+= zziAZH;iESVBbbd<=*8{m#zxeF%^1RSGr#xa0^aZ8TzrkW_!&20600_14JP4D)VzI| z!usYe4J|x~L41JP@n_7$G=9{8eB6cs+>S?4zYk+Rj?BEjLv45xb&wyZc{9?dPreTI zzESV2Z`x_h!A>l}3%Cn!BV)~X)I@(!1G9BJu|H z_g}CK{Y(IhWxE7z{DRgt3E+0%Vv%T#sSg zgDu#F`YJx)UYtU0pq|87jQg<~&!Zwbgq*>=iu26`X}rf6<`b7=cm@aYBWl4u!bEUP zKWgCpnfFoD#1mMK#hixuorDEv6WXZqN?(cc&-_D98+EPEc+&f}zEr~nn?_Kt{j2>@gusj-!to4VZ zRsJI}kCN zRVp!s7GftRKD13VCPa-9-4b!-lK5bFYGxkPHxd$?RO3Uvq?(u*|KBj;1AX^|v%fR5 z=klHJoaK7U`F*LCV*fjevX2_1`Zp=ngFk2SL1_&rRflbuk2;oP93RH>xE+`AZd}DY zyp221w^^xdtU&%$H6NvTKUON0QU_?{@S+!sun!Ax1pW9H%7Pa#jMLut-(eZgKVS*| zg->B2s~yBXd=@`M_M`$VBJ<`Tv8gi5VSN>(5#mJ+O2j?56$eoUyowz-j-B|e_kDG) zQrmcrqV(^;YJ3_c@Yk>oM^QHR5z0FANUZ87d1ig}i}zwDc`M|(7I$I`cH?nmO*M@& z(G1E&U*j>ng%a4IElRzBZ=(e8E6PHDAWNvfQFflgIg)y{6;qPBJv6qFqXT$^=M!wF z2H(dvT*e(f(nxd>o`ZLBe%OhUv6t~dyoAMg9VH{H7{OcEfK^0KQyoRg%*i71FB6RO zLeBUDJd8_N%7T7olY!+#*^V99ievaDF5)mA;^xV72IZ{xbHgg|5tKlBQ7-2oK8mBb z8<$JT|1KK8^Fjtxa-&XS8=80-B~?WnbQ3n9WG05kaU3PZt0)29#73;r4mslt>Ua}h!VaSR0_U-x{wBX!31EdNCABwD z#^3gybMIN3zZ~T#P9VeF&C2|#7Cs~uY}7qdxhPV|tg3QbYde>wTq;gxy~u*KRGC=L zQ;te5s+2v{W@-Voo+`U;rE-PbB3UF*x&LdIjLf-3(j{jl>6F6dRs`){FnN{|poXck zbB#(?)n2L;InIZuau1~N^LH~W|IZ}l^2_3f;Fh4;@3r6ougM9xXLuiyb+>Rm)V*F? zh|6jIg~WDGiMXS{V_w+O>Mx? zd69@4S}bvDXwZn8VfDB^XsE9Ez=)PK28>hY`d3LU@uFs)Hnb!?G;`#P5l;V^^P{g< zUb$V3*m`FgMlxP!YNz#KmWq#PgNCWcbW;zjC+;*L$%s4lw^s5lH@Acu8$;2(S|r-u z+#HHDMIw3KU7=&faDTEt5f2^KO`~0lMjG9Ik*F4FYHw_|KHc())sp{A{$qN)Z%FT> z%h{pyRDO}q`o5qv{Y}ADzx8o(U+y(~(f-Vyu|KyaOX}-tcKsXa^RmbKq-JL{Tl!?2 zbN0MFYcDvX&N=J3lFD>e$&swo6<#rcGsfpNdyX!Pn!V(_&TB?FZ#bhew>`(G3!3zz zF{LqJLi0u}Y?wc+?04;XXG+=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Метаданные" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Значение" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Требуется" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Тип метаданных" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Значение метаданных" @@ -82,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Имя" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Обновить" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Удалить" @@ -138,16 +145,15 @@ msgstr "Создать новые" msgid "Delete" msgstr "Удалить" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Редактировать" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Типы метаданных" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +176,8 @@ msgstr "Умолчание" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +196,48 @@ msgstr "Валидатор" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Введённое значение будет переформатировано парсером так, чтобы удовлетворять требованиям формата." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Введённое значение будет переформатировано парсером так, чтобы удовлетворять " +"требованиям формата." #: models.py:78 msgid "Parser" msgstr "Парсер" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Документ" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Тип" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Метаданные документа" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Тип документа" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,73 +277,33 @@ msgstr "Удаление типов метаданных" msgid "View metadata types" msgstr "Просмотр типов метаданных" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Первичный ключ добавляемого типа метаданных." -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Необходимо предоставить хотя бы один документ." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Выберите документы одного типа." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Выбранный документ не имеет никаких метаданных." -msgstr[1] "Выбранные документы не имеют никаких метаданных." -msgstr[2] "Выбранные документы не имеют никаких метаданных." -msgstr[3] "Выбранные документы не имеют никаких метаданных." - -#: views.py:139 +#: views.py:43 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Ошибка при редактировании метаданных документа: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Метаданные для документов %s изменены." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Редактировать метаданные документа." -msgstr[1] "Редактировать метаданные документов." -msgstr[2] "Редактировать метаданные документов." -msgstr[3] "Редактировать метаданные документов." +#: views.py:95 +msgid "Add" +msgstr "Добавить" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Ошибка добавления метаданных типа %(metadata_type)s к документу: %(document)s; %(exception)s" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Тип метаданных: %(metadata_type)s успешно добавлены к документу %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Тип метаданных: %(metadata_type)s уже есть в документе %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Добавить тип метаданных к документам" @@ -344,21 +311,74 @@ msgstr[1] "Добавить типы метаданных к документа msgstr[2] "Добавить типы метаданных к документам" msgstr[3] "Добавить типы метаданных к документам" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." -msgstr "Успешно удалён тип метаданных \"%(metadata_type)s\" из документа %(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Тип метаданных: %(metadata_type)s успешно добавлены к документу %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Ошибка удаления метаданных типа \"%(metadata_type)s\" от документа: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "Тип метаданных: %(metadata_type)s уже есть в документе %(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Редактировать метаданные документа." +msgstr[1] "Редактировать метаданные документов." +msgstr[2] "Редактировать метаданные документов." +msgstr[3] "Редактировать метаданные документов." + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Редактировать метаданные документа:%s." + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Ошибка при редактировании метаданных документа: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Метаданные для документов %s изменены." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Метаданные документа: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Удалить тип метаданных из документов" @@ -366,49 +386,82 @@ msgstr[1] "Удалить типы метаданных из документо msgstr[2] "Удалить типы метаданных из документов" msgstr[3] "Удалить типы метаданных из документов" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Метаданные документа: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Успешно удалён тип метаданных \"%(metadata_type)s\" из документа " +"%(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Ошибка удаления метаданных типа \"%(metadata_type)s\" от документа: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Создать тип метаданных" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Удалить тип метаданных: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Редактировать тип метаданных: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Внутреннее имя" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Доступные типы метаданных" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Назначенные типы метаданных" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Дополнительные типы метаданных для типов документов: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Обязательные типы метаданных для типов документов: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -575,47 +628,47 @@ msgstr "Обязательные типы метаданных для типов #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo index 5f7cd966a97397e64c58f446bb6f868cc3dab29a..ea118ab3526c30129e2bbc69b36cf2e09a08ac75 100644 GIT binary patch delta 250 zcmX@ZHjQn9N<9Yy1H(=r<^|$IK+Fon7ohxWK$;JTp8zon5Pt^ZD~t>bKY%ny-&rPz zzH3054ak22qy>QVYalHOr2hbEW*{vDB!Jq$04M}j3*rEUMC6T delta 303 zcmbQnc7|<&NP}bS%8?2k%8d~5DNn_NZku2 z1_m}D{S8P90O`L#S`?&?8KO@GNCOdr2ao`2fdi0TAOKd*4rG7~0a*Y7APo}_8Y%mh z7MCa#6y=v?rlcw)mMG+;CISWW^HLR3@{>z*Q}asnCVmRyHPbaT)HO0zFfg(*HJu#D zC=C%YG*>XNurjrrT*=rqS(qt`-zPCIy)-dB)k>i_CqCG7at>4CwaHbzK%4$YtYOal?hI#U&fJFe9X_9`dX-WML#ZK5VgmCRz#_(Q z9mBYfCZ3?=pW*;sBVFAx1o0j%d_vjxg0k-w{rHZf*fLbLy%3-Z9}5;HF^Y1qi&q|{ zmT;c=2d7BhIKw2SZ~}`c7agPQKf`{kBV9c(Nd6;A{wGp{3i+!__3>d*)(F}d$2pXW z*E()uig_7(u!h}u*;%jS81rYO-u9Vtu{6p1YjUPMte5B_Vv7ts?!U=zj}TEpE|OQt zOG1RSL4rHl)yprI7Svy!X&pD3`p0O5XVaN%+RfWewvf%}rgvCYX40->JGp|J(=Bf; ivRvA$9F{8E1^Z}cYjs5*m>c@d+`U`yIUarEzxV~(U^XHE delta 629 zcmXZYzfTlF6u|M>`zhdoil-m<)Pg`lEFgEWFciejf?#5|J@60M_CEUeMY@+1-!hZaNlK&4=sNzc9g>+msqQC(~)R&nuF{q}`xPWm1JyE-h_Nt;a^kTK&(1WnV8Y)mLisjxPJ!b;<Fp$!q!?~o7vRI|C%IQfdBvi diff --git a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po index cb8bfc085e..189af167ff 100644 --- a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Siêu dữ liệu" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Giá trị" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Loại siêu dữ liệu" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "Tên" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Cập nhật" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Xóa" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Sửa" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "Mặc định" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Kiểu tài liệu" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,133 +273,173 @@ msgstr "Xóa loại siêu dữ liệu" msgid "View metadata types" msgstr "Xem các loại siêu dữ liệu" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "Thêm" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" - -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "" -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +597,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo index ba9e5196dd819087e7ac54f226936deff633a710..7773b71345acf1de4862bab24ef114a592abc793 100644 GIT binary patch delta 744 zcmYk(Pe_w-7{Kx0=H6MGwl}lI-X8|VyFWQT~T zONU>H7sU#^36cjdo;*nRL8qu7@+3$Xp+nL4nZH91d-i#s_xHZPKhL{o*X-)ome5;8 zbdp`si#US&X1q0Y@?0GGDWAVE4&Y_HZt5|#sEgQ*Pf#}S65nvBRlGv& z^KzK=)dMctxsgXXNyYdIo2b{#_$JDU_s#fsloK7}Y5a}SxrRoiVtCa!gg2;f;V`~7 z_iGqsef5J2-c?7&W4uWH$J8D4izX-sWurYP8_l46B{`kc9IW12sLv;xkdVzuFr7L} zUXX%_k~wL)Oe)`0+Gdmghn!FrmuMrUBN7o(x*^eWLj5zg>P+yOo(w*-AD3sGN9FOk z>0+spc6w*GzXam}9S`j!2V5`d`h!j)nNE7H*YA0e(R=Rw;?t?wsdCB97AnQG<9i97 z>v#QxlSrlgl#W@?V|NOriMhfA!wZuShwo}_<@I0drnS8F^ZlC6hG!xN%P$VzePB6f Ndn4Q#(BB%z{{g6~R*e7v delta 760 zcmXxhOK1~87{KvKnxt*4CibCLZCnXOp|0JeMkOap6;zBB4<4jg7Q3_oO^V(0&`Wx- z6g>D~d>jO!^d=q(>meXm=t1z@vjrgy3L*+#Jc$0kb^4Ln-+c4Pyf)Jt>H1c8?3p6^ zDTgUd${^)Ugb#5ps?;$Y#e-Nz8G9f5@D=XHx2Assd&oZ_KlPJO2mV4E|KJ`RY76Jp zRgubN8ZKf9HOhd`#vhm^|BErq@=4%vJc7d}AICWP4IID;l#MLlQx5YGkCJDZd;l+C zpQbXYG&>p`ZiHWW*LuDR0;S(up|yQ;eqm-IwpHfSZ1k%9H4 juPg7qEC<_bPg;*2H{ZW(HWr(W*RAKvt(8^%z1{l, 2014 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "元数据" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "值" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "元数据类型" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata值" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "名称" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "更新" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "移除" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "元数据类型" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "文档类型" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,133 +273,173 @@ msgstr "删除元数据类型" msgid "View metadata types" msgstr "查看元数据类型" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "必须至少提供一个文档" - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "新增" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "文档 %s 的元数据编辑成功。" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "元数据类型: %(metadata_type)s成功加入到文档%(document)s" -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "元数据类型: %(metadata_type)s 已经存在于文档%(document)s." -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "编辑文档 %s 元数据" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "文档 %s 的元数据编辑成功。" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +597,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/serializers.py b/mayan/apps/metadata/serializers.py index 12b70a50c7..0afcf95540 100644 --- a/mayan/apps/metadata/serializers.py +++ b/mayan/apps/metadata/serializers.py @@ -1,64 +1,159 @@ from __future__ import unicode_literals +from django.core.exceptions import ValidationError as DjangoValidationError from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse -from .models import DocumentMetadata, MetadataType, DocumentTypeMetadataType +from documents.serializers import DocumentSerializer, DocumentTypeSerializer + +from .models import DocumentMetadata, DocumentTypeMetadataType, MetadataType -class MetadataTypeSerializer(serializers.ModelSerializer): +class MetadataTypeSerializer(serializers.HyperlinkedModelSerializer): class Meta: + extra_kwargs = { + 'url': { + 'lookup_field': 'pk', 'lookup_url_kwarg': 'metadata_type_pk', + 'view_name': 'rest_api:metadatatype-detail' + }, + } fields = ( - 'id', 'name', 'label', 'default', 'lookup', 'parser', 'validation' + 'default', 'id', 'label', 'lookup', 'name', 'parser', 'url', + 'validation' ) model = MetadataType -class DocumentMetadataSerializer(serializers.ModelSerializer): - document = serializers.PrimaryKeyRelatedField(read_only=True) +class DocumentTypeMetadataTypeSerializer(serializers.HyperlinkedModelSerializer): + document_type = DocumentTypeSerializer(read_only=True) + metadata_type = MetadataTypeSerializer(read_only=True) + url = serializers.SerializerMethodField() class Meta: - fields = ('document', 'id', 'metadata_type', 'value',) - model = DocumentMetadata - read_only_fields = ('metadata_type',) - - -class DocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): - class Meta: - fields = ('metadata_type', ) + fields = ('document_type', 'id', 'metadata_type', 'required', 'url') model = DocumentTypeMetadataType + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) -class DocumentNewMetadataSerializer(serializers.Serializer): + +class NewDocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): metadata_type_pk = serializers.IntegerField( help_text=_('Primary key of the metadata type to be added.'), write_only=True ) + url = serializers.SerializerMethodField() + class Meta: + fields = ( + 'id', 'metadata_type_pk', 'required', 'url' + ) + model = DocumentTypeMetadataType + + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['document_type'] = self.context['document_type'] + attrs['metadata_type'] = MetadataType.objects.get( + pk=attrs.pop('metadata_type_pk') + ) + + instance = DocumentTypeMetadataType(**attrs) + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs + + +class WritableDocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'id', 'required', 'url' + ) + model = DocumentTypeMetadataType + + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class DocumentMetadataSerializer(serializers.HyperlinkedModelSerializer): + document = DocumentSerializer(read_only=True) metadata_type = MetadataTypeSerializer(read_only=True) + url = serializers.SerializerMethodField() - pk = serializers.IntegerField( - help_text=_('Primary key of the document metadata type.'), - read_only=True - ) + class Meta: + fields = ('document', 'id', 'metadata_type', 'url', 'value') + model = DocumentMetadata + read_only_fields = ('document', 'metadata_type',) - value = serializers.CharField( - max_length=255, - help_text=_('Value of the corresponding metadata type instance.') - ) - - def create(self, validated_data): - metadata_type = MetadataType.objects.get( - pk=validated_data['metadata_type_pk'] + def get_url(self, instance): + return reverse( + 'rest_api:documentmetadata-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] ) - instance = self.document.metadata.create( - metadata_type=metadata_type, value=validated_data['value'] - ) - return instance + + def validate(self, attrs): + self.instance.value = attrs['value'] + + try: + self.instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs -class DocumentTypeNewMetadataTypeSerializer(serializers.Serializer): +class NewDocumentMetadataSerializer(serializers.ModelSerializer): metadata_type_pk = serializers.IntegerField( - help_text=_('Primary key of the metadata type to be added.') + help_text=_( + 'Primary key of the metadata type to be added to the document.' + ), + write_only=True ) + url = serializers.SerializerMethodField() + + class Meta: + fields = ('id', 'metadata_type_pk', 'url', 'value') + model = DocumentMetadata + + def get_url(self, instance): + return reverse( + 'rest_api:documentmetadata-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['document'] = self.context['document'] + attrs['metadata_type'] = MetadataType.objects.get( + pk=attrs.pop('metadata_type_pk') + ) + + instance = DocumentMetadata(**attrs) + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs diff --git a/mayan/apps/metadata/static/metadata/js/metadata_form.js b/mayan/apps/metadata/static/metadata/js/metadata_form.js new file mode 100644 index 0000000000..a39726fac8 --- /dev/null +++ b/mayan/apps/metadata/static/metadata/js/metadata_form.js @@ -0,0 +1,11 @@ +'use strict'; + +waitForJQuery(function() { + jQuery(document).ready(function() { + $('.metadata-value').on('input', function(event) { + // Check the checkbox next to a metadata value input when there is + // data entry in the value's input. + $(event.target).parents('tr').find(':checkbox').prop('checked', true); + }); + }); +}); diff --git a/mayan/apps/metadata/tests/test_api.py b/mayan/apps/metadata/tests/test_api.py index 79ccff4acb..c6bf065d3d 100644 --- a/mayan/apps/metadata/tests/test_api.py +++ b/mayan/apps/metadata/tests/test_api.py @@ -4,15 +4,14 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) -from ..models import DocumentMetadata, DocumentTypeMetadataType, MetadataType +from ..models import DocumentTypeMetadataType, MetadataType from .literals import ( TEST_METADATA_TYPE_LABEL, TEST_METADATA_TYPE_LABEL_2, @@ -21,8 +20,10 @@ from .literals import ( ) -class MetadataTypeAPITestCase(APITestCase): +class MetadataTypeAPITestCase(BaseAPITestCase): def setUp(self): + super(MetadataTypeAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -59,8 +60,10 @@ class MetadataTypeAPITestCase(APITestCase): self._create_metadata_type() response = self.client.delete( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)) + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ) ) self.assertEqual(response.status_code, 204) @@ -71,20 +74,24 @@ class MetadataTypeAPITestCase(APITestCase): self._create_metadata_type() response = self.client.get( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)) + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ) ) self.assertEqual(response.status_code, 200) self.assertEqual( response.data['label'], TEST_METADATA_TYPE_LABEL ) - def test_metadata_type_edit_via_patch_view(self): + def test_metadata_type_patch_view(self): self._create_metadata_type() response = self.client.patch( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)), data={ + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ), data={ 'label': TEST_METADATA_TYPE_LABEL_2, 'name': TEST_METADATA_TYPE_NAME_2 } @@ -97,12 +104,14 @@ class MetadataTypeAPITestCase(APITestCase): self.assertEqual(self.metadata_type.label, TEST_METADATA_TYPE_LABEL_2) self.assertEqual(self.metadata_type.name, TEST_METADATA_TYPE_NAME_2) - def test_metadata_type_edit_via_put_view(self): + def test_metadata_type_put_view(self): self._create_metadata_type() response = self.client.put( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)), data={ + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ), data={ 'label': TEST_METADATA_TYPE_LABEL_2, 'name': TEST_METADATA_TYPE_NAME_2 } @@ -125,8 +134,10 @@ class MetadataTypeAPITestCase(APITestCase): ) -class DocumentTypeMetadataTypeAPITestCase(APITestCase): +class DocumentTypeMetadataTypeAPITestCase(BaseAPITestCase): def setUp(self): + super(DocumentTypeMetadataTypeAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -147,56 +158,53 @@ class DocumentTypeMetadataTypeAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() self.document_type.delete() + super(DocumentTypeMetadataTypeAPITestCase, self).tearDown() - def test_document_type_metadata_type_optional_create(self): + def _create_document_type_metadata_type(self): + self.document_type_metadata_type = self.document_type.metadata.create( + metadata_type=self.metadata_type, required=False + ) + + def test_document_type_metadata_type_create_view(self): response = self.client.post( reverse( - 'rest_api:documenttypeoptionalmetadatatype-list', + 'rest_api:documenttypemetadatatype-list', args=(self.document_type.pk,) - ), data={'metadata_type_pk': self.metadata_type.pk} + ), data={ + 'metadata_type_pk': self.metadata_type.pk, 'required': False + } ) self.assertEqual(response.status_code, 201) - document_type_metadata_type = DocumentTypeMetadataType.objects.filter( - document_type=self.document_type, required=False - ).first() + document_type_metadata_type = DocumentTypeMetadataType.objects.first() - self.assertEqual(response.data['pk'], document_type_metadata_type.pk) + self.assertEqual(response.data['id'], document_type_metadata_type.pk) - self.assertEqual( - document_type_metadata_type.metadata_type, self.metadata_type - ) + def test_document_type_metadata_type_create_dupicate_view(self): + self._create_document_type_metadata_type() - def test_document_type_metadata_type_required_create(self): response = self.client.post( reverse( - 'rest_api:documenttyperequiredmetadatatype-list', + 'rest_api:documenttypemetadatatype-list', args=(self.document_type.pk,) - ), data={'metadata_type_pk': self.metadata_type.pk} + ), data={ + 'metadata_type_pk': self.metadata_type.pk, 'required': False + } ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') - document_type_metadata_type = DocumentTypeMetadataType.objects.filter( - document_type=self.document_type, required=True - ).first() - - self.assertEqual(response.data['pk'], document_type_metadata_type.pk) - - self.assertEqual( - document_type_metadata_type.metadata_type, self.metadata_type - ) - - def test_document_type_metadata_type_delete(self): - document_type_metadata_type = self.document_type.metadata.create( - metadata_type=self.metadata_type, required=True - ) + def test_document_type_metadata_type_delete_view(self): + self._create_document_type_metadata_type() response = self.client.delete( reverse( 'rest_api:documenttypemetadatatype-detail', - args=(document_type_metadata_type.pk,) + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ), ), ) @@ -204,10 +212,69 @@ class DocumentTypeMetadataTypeAPITestCase(APITestCase): self.assertEqual(self.document_type.metadata.all().count(), 0) + def test_document_type_metadata_type_list_view(self): + self._create_document_type_metadata_type() -class DocumentMetadataAPITestCase(APITestCase): + response = self.client.get( + reverse( + 'rest_api:documenttypemetadatatype-list', + args=( + self.document_type.pk, + ), + ), + ) + + self.assertEqual(response.status_code, 200) + + self.assertEqual( + response.data['results'][0]['id'], + self.document_type_metadata_type.pk + ) + + def test_document_type_metadata_type_patch_view(self): + self._create_document_type_metadata_type() + + response = self.client.patch( + reverse( + 'rest_api:documenttypemetadatatype-detail', + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ) + ), data={ + 'required': True + } + ) + + document_type_metadata_type = DocumentTypeMetadataType.objects.first() + + self.assertEqual(response.status_code, 200) + self.assertEqual(document_type_metadata_type.required, True) + + def test_document_type_metadata_type_put_view(self): + self._create_document_type_metadata_type() + + response = self.client.put( + reverse( + 'rest_api:documenttypemetadatatype-detail', + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ) + ), data={ + 'required': True + } + ) + + document_type_metadata_type = DocumentTypeMetadataType.objects.first() + + self.assertEqual(response.status_code, 200) + self.assertEqual(document_type_metadata_type.required, True) + + +class DocumentMetadataAPITestCase(BaseAPITestCase): @override_settings(OCR_AUTO_OCR=False) def setUp(self): + super(DocumentMetadataAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -237,8 +304,14 @@ class DocumentMetadataAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() self.document_type.delete() + super(DocumentMetadataAPITestCase, self).tearDown() - def test_document_metadata_create(self): + def _create_document_metadata(self): + self.document_metadata = self.document.metadata.create( + metadata_type=self.metadata_type, value=TEST_METADATA_VALUE + ) + + def test_document_metadata_create_view(self): response = self.client.post( reverse( 'rest_api:documentmetadata-list', @@ -249,22 +322,64 @@ class DocumentMetadataAPITestCase(APITestCase): } ) - document_metadata = DocumentMetadata.objects.get( - document=self.document - ) + document_metadata = self.document.metadata.first() self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['pk'], document_metadata.pk) + self.assertEqual(response.data['id'], document_metadata.pk) self.assertEqual(document_metadata.metadata_type, self.metadata_type) self.assertEqual(document_metadata.value, TEST_METADATA_VALUE) - def test_document_metadata_list(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE + def test_document_metadata_create_duplicate_view(self): + self._create_document_metadata() + + response = self.client.post( + reverse( + 'rest_api:documentmetadata-list', + args=(self.document.pk,) + ), data={ + 'metadata_type_pk': self.metadata_type.pk, + 'value': TEST_METADATA_VALUE + } ) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') + + def test_document_metadata_create_invalid_lookup_value_view(self): + self.metadata_type.lookup = 'invalid,lookup,values,on,purpose' + self.metadata_type.save() + + response = self.client.post( + reverse( + 'rest_api:documentmetadata-list', + args=(self.document.pk,) + ), data={ + 'metadata_type_pk': self.metadata_type.pk, + 'value': TEST_METADATA_VALUE + } + ) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') + + def test_document_metadata_delete_view(self): + self._create_document_metadata() + + response = self.client.delete( + reverse( + 'rest_api:documentmetadata-detail', + args=(self.document.pk, self.document_metadata.pk,) + ) + ) + + self.assertEqual(response.status_code, 204) + + self.assertEqual(self.document.metadata.all().count(), 0) + + def test_document_metadata_list_view(self): + self._create_document_metadata() + response = self.client.get( reverse( 'rest_api:documentmetadata-list', args=(self.document.pk,) @@ -274,56 +389,49 @@ class DocumentMetadataAPITestCase(APITestCase): self.assertEqual(response.status_code, 200) self.assertEqual( - response.data['results'][0]['document'], self.document.pk + response.data['results'][0]['document']['id'], self.document.pk ) self.assertEqual( - response.data['results'][0]['metadata_type'], self.metadata_type.pk + response.data['results'][0]['metadata_type']['id'], + self.metadata_type.pk ) self.assertEqual( response.data['results'][0]['value'], TEST_METADATA_VALUE ) self.assertEqual( - response.data['results'][0]['id'], document_metadata.pk + response.data['results'][0]['id'], self.document_metadata.pk ) - def test_document_metadata_edit(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE - ) + def test_document_metadata_patch_view(self): + self._create_document_metadata() - response = self.client.put( + response = self.client.patch( reverse( 'rest_api:documentmetadata-detail', - args=(document_metadata.pk,) + args=(self.document.pk, self.document_metadata.pk,) ), data={ 'value': TEST_METADATA_VALUE_EDITED } ) self.assertEqual(response.status_code, 200) - - self.assertEqual( - response.data['document'], self.document.pk - ) - self.assertEqual( - response.data['metadata_type'], self.metadata_type.pk - ) self.assertEqual( response.data['value'], TEST_METADATA_VALUE_EDITED ) - def test_document_metadata_delete(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE - ) + def test_document_metadata_put_view(self): + self._create_document_metadata() - response = self.client.delete( + response = self.client.put( reverse( 'rest_api:documentmetadata-detail', - args=(document_metadata.pk,) - ) + args=(self.document.pk, self.document_metadata.pk,) + ), data={ + 'value': TEST_METADATA_VALUE_EDITED + } ) - self.assertEqual(response.status_code, 204) - - self.assertEqual(self.document.metadata.all().count(), 0) + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.data['value'], TEST_METADATA_VALUE_EDITED + ) diff --git a/mayan/apps/metadata/urls.py b/mayan/apps/metadata/urls.py index e317927bd1..658368c25e 100644 --- a/mayan/apps/metadata/urls.py +++ b/mayan/apps/metadata/urls.py @@ -4,10 +4,8 @@ from django.conf.urls import url from .api_views import ( APIDocumentMetadataListView, APIDocumentMetadataView, - APIDocumentTypeMetadataTypeOptionalListView, - APIDocumentTypeMetadataTypeRequiredListView, - APIDocumentTypeMetadataTypeView, APIMetadataTypeListView, - APIMetadataTypeView + APIDocumentTypeMetadataTypeListView, APIDocumentTypeMetadataTypeView, + APIMetadataTypeListView, APIMetadataTypeView ) from .views import ( DocumentMetadataAddView, DocumentMetadataEditView, @@ -82,30 +80,25 @@ api_urls = [ name='metadatatype-list' ), url( - r'^metadata_types/(?P[0-9]+)/$', APIMetadataTypeView.as_view(), - name='metadatatype-detail' + r'^metadata_types/(?P\d+)/$', + APIMetadataTypeView.as_view(), name='metadatatype-detail' ), url( - r'^document/metadata/(?P[0-9]+)/$', - APIDocumentMetadataView.as_view(), name='documentmetadata-detail' + r'^document_types/(?P\d+)/metadata_types/$', + APIDocumentTypeMetadataTypeListView.as_view(), + name='documenttypemetadatatype-list' ), url( - r'^document/(?P\d+)/metadata/$', - APIDocumentMetadataListView.as_view(), name='documentmetadata-list' - ), - url( - r'^document_type/(?P[0-9]+)/metadata_types/optional/$', - APIDocumentTypeMetadataTypeOptionalListView.as_view(), - name='documenttypeoptionalmetadatatype-list' - ), - url( - r'^document_type/(?P[0-9]+)/metadata_types/required/$', - APIDocumentTypeMetadataTypeRequiredListView.as_view(), - name='documenttyperequiredmetadatatype-list' - ), - url( - r'^document_type_metadata_type/(?P\d+)/$', + r'^document_types/(?P\d+)/metadata_types/(?P\d+)/$', APIDocumentTypeMetadataTypeView.as_view(), name='documenttypemetadatatype-detail' ), + url( + r'^documents/(?P\d+)/metadata/$', + APIDocumentMetadataListView.as_view(), name='documentmetadata-list' + ), + url( + r'^documents/(?P\d+)/metadata/(?P\d+)/$', + APIDocumentMetadataView.as_view(), name='documentmetadata-detail' + ), ] diff --git a/mayan/apps/metadata/views.py b/mayan/apps/metadata/views.py index 22606c392a..a37007978b 100644 --- a/mayan/apps/metadata/views.py +++ b/mayan/apps/metadata/views.py @@ -127,7 +127,9 @@ class DocumentMetadataAddView(MultipleObjectFormActionView): if queryset.count() == 1: result.update( { - 'queryset': MetadataType.objects.exclude( + 'queryset': MetadataType.objects.get_for_document_type( + document_type=queryset.first().document_type + ).exclude( pk__in=MetadataType.objects.get_for_document( document=queryset.first() ) @@ -139,33 +141,49 @@ class DocumentMetadataAddView(MultipleObjectFormActionView): def object_action(self, form, instance): for metadata_type in form.cleaned_data['metadata_type']: - document_metadata, created = DocumentMetadata.objects.get_or_create( - document=instance, - metadata_type=metadata_type, - defaults={'value': ''} - ) - - if created: - messages.success( + try: + document_metadata, created = DocumentMetadata.objects.get_or_create( + document=instance, + metadata_type=metadata_type, + defaults={'value': ''} + ) + except ValidationError as exception: + messages.error( self.request, _( - 'Metadata type: %(metadata_type)s ' - 'successfully added to document %(document)s.' + 'Error adding metadata type ' + '"%(metadata_type)s" to document: ' + '%(document)s; %(exception)s' ) % { 'metadata_type': metadata_type, - 'document': instance + 'document': instance, + 'exception': ', '.join( + getattr(exception, 'messages', exception) + ) } ) else: - messages.warning( - self.request, _( - 'Metadata type: %(metadata_type)s already ' - 'present in document %(document)s.' - ) % { - 'metadata_type': metadata_type, - 'document': instance - } - ) + if created: + messages.success( + self.request, + _( + 'Metadata type: %(metadata_type)s ' + 'successfully added to document %(document)s.' + ) % { + 'metadata_type': metadata_type, + 'document': instance + } + ) + else: + messages.warning( + self.request, _( + 'Metadata type: %(metadata_type)s already ' + 'present in document %(document)s.' + ) % { + 'metadata_type': metadata_type, + 'document': instance + } + ) class DocumentMetadataEditView(MultipleObjectFormActionView): diff --git a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo index de93f15b398fc5f992be10cef4c9615f2b2fd789..746c3a5003d341cb1777d8d3e7cb39efa5963cb0 100644 GIT binary patch delta 44 zcmZ3?vY2H;E3dh(fvK*Mg@U1}m8rqRNvnB$67$ka6Vp?z6cURj+b~8?Ucy)p04aYC A0{{R3 delta 44 zcmZ3?vY2H;E3cWZp`oskv4Vk-m8t2(NvkJ&F-GzDB<7`;CZ?xaDI^w6Ud-4404F65 A2mk;8 diff --git a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po index c92fce1501..2e837f61b5 100644 --- a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo index 0bab54a440bc75ecc75dbcd91b0b5aa46fe86851..2db5210aa5ead4e9bfe4b09e388ed35dce5e06b9 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8rqRN$Yrg67$ka6Vp?z6q3>>+cQQ_Ue2fk066~+ A4FCWD delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8t2(N$V#2GDh+EB<7`;CZ?xaDI}#&UdE^k05\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo index 62051bec48072de7e0758d5af9800ddb9bdb24f3..d2ed956a3ea71581e5551d6eebcf0d6ba72d59c4 100644 GIT binary patch delta 47 zcmdnRvWsOxE3dh(fvK*Mg@U1}m8rqRNhkPy67$ka6Vp?z6q1VLog61eGDc56!dM0X DU~ms< delta 47 zcmdnRvWsOxE3cWZp`oskv4Vk-m8t2(Nhc;}F-GzGB<7`;CZ?xaDI^ugJ2_51%vcTp DU>^^0 diff --git a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po index ac177fba8f..47940e7b61 100644 --- a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo index 51a000c16af970f501b6608f412a8e845b699eb2..cc5a688b7e8d0be6ba43b9bdf4cf9c690b488aaf 100644 GIT binary patch delta 44 zcmcb>e1UmFE3dh(fvK*Mg@U1}m8rqRNvnB$67$ka6Vp?z6jBl=+b~8?Uc#sY05^LL A`Tzg` delta 44 zcmcb>e1UmFE3cWZp`oskv4Vk-m8t2(NvkJ&F-GzDB<7`;CZ?xaDWoJ$Ud*Tq05w?+ A{{R30 diff --git a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po index 234d769840..8ed63d1b7b 100644 --- a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo index 6cff24c79301713e8472b53f8873bf75e66e5d49..b3201fa2917e7e17758aa8e39e51423bf2f077a0 100644 GIT binary patch delta 49 zcmcc1c9(5~6(g^?u7Rnpk%fYxsg7|M3sa6UpsqrqZli8S}Cl@lk F0RUu|4+Q`K delta 49 zcmcc1c9(5~6(g^iuA!l>k+Fh-k(H_GWOv2`lf{{$__$IQsZ4*Cl@fi F1pr?*4-EhS diff --git a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po index b087316afb..af4355dfce 100644 --- a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Berny , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:08+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Spiegelung" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Zeit in Sekunden, die ein Pfad zu einem Dokument zwischengespeichert werden soll." +msgstr "" +"Zeit in Sekunden, die ein Pfad zu einem Dokument zwischengespeichert werden " +"soll." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Zeit in Sekunden, die ein Pfad zu einem zu einem Indexknotenpunkt zwischengespeichert werden soll." +msgstr "" +"Zeit in Sekunden, die ein Pfad zu einem zu einem Indexknotenpunkt " +"zwischengespeichert werden soll." diff --git a/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a7e30c990fdd2d33100f323088b2afd..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" diff --git a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo index aeaabc0089a2ea92365cf9c5ed400e423e5cd62f..c2dd1cd363b7948256326ed8d06266441a876c00 100644 GIT binary patch delta 47 zcmaFC_JVDL6(g^?u7Rnpk%fYxsg7|M3sa6W9#gkt!MsE&al3)Y? DPXG=s delta 47 zcmaFC_JVDL6(g^iuA!l>k+Fh-k(H_GWOv3zlfN-W@%SX>rI#kAr&=kb7H{@vl4Jw` DRZ9*t diff --git a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po index bb26ad0ebc..9d6264842a 100644 --- a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:21+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Reflejado" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tiempo en segundos durante los cuales se almacenará en caché la ruta de búsqueda de acceso a un documento." +msgstr "" +"Tiempo en segundos durante los cuales se almacenará en caché la ruta de " +"búsqueda de acceso a un documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tiempo en segundos durante los cuales se almacenará en caché la ruta de búsqueda de acceso a un nodo de índice." +msgstr "" +"Tiempo en segundos durante los cuales se almacenará en caché la ruta de " +"búsqueda de acceso a un nodo de índice." diff --git a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo index 3b64a3b97721e35f77422cc2c4b54dff808a36b0..73028f60acc25ab0b7151a177acce9145e3ecfcb 100644 GIT binary patch delta 44 zcmX@be2RHOE3dh(fvK*Mg@U1}m8rqRNo#m~67$ka6Vp?z6w(qW+cHK^UdpHn05zly A>;M1& delta 44 zcmX@be2RHOE3cWZp`oskv4Vk-m8t2(Noyv1Ge+_FB<7`;CZ?xaDWoM%Uc#sb05gXT A@c;k- diff --git a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po index cca30de7cb..b03825e79d 100644 --- a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo index 973c969c2de93a2bb11f7ae36e7eaa69115c917b..9f306eb8f5b08dd0263c186a812b0685e617657d 100644 GIT binary patch delta 46 zcmX@gc9d;{6(g^?u7Rnpk%fYxsg7|M3sa6VUMU%Ohq9+$IT?PO$ C1`X)| delta 46 zcmX@gc9d;{6(g^iuA!l>k+Fh-k(H_GWOv3RlO>p_%ziY6B_T>$_s C6AkVF diff --git a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po index 0d80bc74a1..5f11e6df72 100644 --- a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Thierry Schott , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:08+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:9 settings.py:7 @@ -24,8 +25,10 @@ msgstr "Duplication" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Temps en secondes de rétention en cache du chemin d'accès à un document." +msgstr "" +"Temps en secondes de rétention en cache du chemin d'accès à un document." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Temps en seconde de rétention en cache du chemin d'accès à un noeud d'index." +msgstr "" +"Temps en seconde de rétention en cache du chemin d'accès à un noeud d'index." diff --git a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo index 4e73198520791032f59d8fbcb7cf7b39c256e7eb..6b92c7868bfa74701a0d88f2db09a8995a6316ab 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8rqRN$Yrg67$ka6Vp?z6f#OD+cQQ_Ue2fk06Do1 AApigX delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8t2(N$V#2GDh+EB<7`;CZ?xaDP)vRUdE^k05@I^ ACIA2c diff --git a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po index 12c85511a0..06819f51a4 100644 --- a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo index 479a91534cc429381ef72213ce983cff638f2314..d275d77dca0081b9816fa8bcbaa933fec166d051 100644 GIT binary patch delta 44 zcmX@he3p4aE3dh(fvK*Mg@U1}m8rqRN$Yuh67$ka6Vp?z6f#pLJ1|C1Ucsme05?Al A0RR91 delta 44 zcmX@he3p4aE3cWZp`oskv4Vk-m8t2(N$V&3F-GzDB<7`;CZ?xaDP*QhUe2fn05vfV A1^@s6 diff --git a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po index d2676a954c..135304099f 100644 --- a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo index 5b9e2fce3389931270fa99b7475eb4722578322d..98a00ed17bcdfd76f386b5d201420936db00ff0f 100644 GIT binary patch delta 46 zcmdnbwx4Z-6(g^?u7Rnpk%fYxsgJU)qe>7|M3sa6V^C6ig1q9^AvT>=0v Cc@5G4 delta 44 zcmdnbwx4Z-6(g^iuA!l>k+Fh-k(H_GWOv5>lZBb0xO@`x(n}N5Q>_#xXE9v`01pWa A_y7O^ diff --git a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po index 0d44e378d7..34d1514602 100644 --- a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Giovanni Tricarico , 2016 # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 08:52+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 @@ -25,8 +26,11 @@ msgstr "Mirroring " #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tempo in secondi per mettere in cache il percorso di ricerca del documento." +msgstr "" +"Tempo in secondi per mettere in cache il percorso di ricerca del documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tempo in secondi per mettere in cache il percorso di ricerca del nodo indice.." +msgstr "" +"Tempo in secondi per mettere in cache il percorso di ricerca del nodo " +"indice.." diff --git a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo index 9cb6cef19b31910c3ebe3fb9a85fb1ced4e11615..d47946894d1fc32bf299488f7be6c300816890ae 100644 GIT binary patch delta 47 zcmZ3)vWR8Ea$a*?15;fi3k5?{D^r7sTh8(OB<7`;CZ?xaDdgqE`}s_6WQ?BthS3ZF DW8n|4 delta 47 zcmZ3)vWR8Ea$YlCLqlC7V+8{vD^t^nTh2|M#2CfzlbDxYnwXwyrI42s@8>i5HKREI DWuOnY diff --git a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po index efb5a083f6..82688a5923 100644 --- a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo index 1d962cf8cfd08b3069996b922124b4bc89c809c4..92732f093ad2de4bcef97d20b64fffa90f95532c 100644 GIT binary patch delta 44 zcmeBT>0+7C%4@D`V5)0mp0+7C%4?=;XsBystYBbdWokNc((1`xj8Qy3iFxUziRr0U3I#cn7c-^<03PBE A#sB~S diff --git a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po index 050c8c3a01..414f42b51a 100644 --- a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo index d6cb0d7f17accdd9823102706864c6e75a5fcde1..99a6cf891afe929e95529cafdd1f198fc7b68c84 100644 GIT binary patch delta 44 zcmcb@e1&;JE3dh(fvK*Mg@U1}m8rqRN$Yuh67$ka6Vp?z6becvJ1|C1UcsmX06KOK AEdT%j delta 43 zcmcb@e1&;JE3cWZp`oskv4Vk-m8t2(N$V&3F-CFwB<7`;CZ?xaDHKdz#;6AXDPRq~ diff --git a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po index 5102d6b7c7..e7f04a4cf9 100644 --- a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo index 4aac618884b4564e8facea4ab44d73f6648de748..b3c3507b97c349e131d7d9cc73853809779b09fe 100644 GIT binary patch delta 50 zcmey*_MdHo6(g^?u7Rnpk%fYxsg7|M3sa6UFCGk!{lLeWgH`g#R GGXemD=nlvL delta 50 zcmey*_MdHo6(g^iuA!l>k+Fh-k(H_GWOv5Xla-jF__#VO5&Y@HdiyT GFaiL5rw-5n diff --git a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po index 8996463034..c44a192ca1 100644 --- a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-04 19:01+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Espelhamento" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tempo em segundos durante o qual se armazenará no cache a rota de busca de acesso a um documento." +msgstr "" +"Tempo em segundos durante o qual se armazenará no cache a rota de busca de " +"acesso a um documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tempo em segundos durante o qual se armazenará em cache a rota de busca de acesso a um nó de índice." +msgstr "" +"Tempo em segundos durante o qual se armazenará em cache a rota de busca de " +"acesso a um nó de índice." diff --git a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo index 88d7137d3d447d1125abbcfcf3d7b9934a35b28b..6719fad5f5c96604f130581a67912a7bf1386678 100644 GIT binary patch delta 47 zcmeBX>1LVG%4@D`V5)0mp1LVG%4?=;XsBystYBbdWokNc(yqxdj8XhPiFxUziRr0U3Pt(xLH?7sGKK*F DO=b@A diff --git a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po index e90bbb5f3c..e26cfb9cfc 100644 --- a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo index 50188f62fa9e246678749cb49d39ff11347479f7..f67be7a88f36972ebf2b592ed6ebc29bbd8232d5 100644 GIT binary patch delta 47 zcmaFJ{*Zlx6(g^?u7Rnpk%fYxsg7|M3sa6U_rIQ~sMsN0Jn#KqK DO~wwO delta 47 zcmaFJ{*Zlx6(g^iuA!l>k+Fh-k(H_GWOv57lRq*>@%SX>rI#kAr&=i#m2UQ8n$8FS DQ=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo index eb496c2c01b457ceda99baf0df8d87c1188675ff..586b5a86070f62b82e1d61b60c904aa5c3ecdda9 100644 GIT binary patch delta 47 zcmbQiGJ|D8E3dh(fvK*Mg@U1}m8rqRNqhKx67$ka6Vp?z6pC}=gFPqvGDc6{!I%I5 DQ~3`L delta 47 zcmbQiGJ|D8E3cWZp`oskv4Vk-m8t2(NqZ*8F-GzGB<7`;CZ?xaDHP|#2YXK5&X@=Q DQd|!f diff --git a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po index 393a1b22b8..d975c9f5ef 100644 --- a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo index 7acdd78d6999c9700394c248ba9a37b1440c9b0a..f720dc92b2595e67ff6c49591053874f99fafd54 100644 GIT binary patch delta 47 zcmcb|e2;lTE3dh(fvK*Mg@U1}m8rqRNqhNy67$ka6Vp?z6v{H=!~7=uF-A|`$*2kd DZ2b>t delta 47 zcmcb|e2;lTE3cWZp`oskv4Vk-m8t2(NqZ;9Ge+_IB<7`;CZ?xaDU@Z#hxtw3!KelR DYfukx diff --git a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po index 8378a062d1..4945a87694 100644 --- a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo index 0b054893379b4d2bb95772ea5f5ded11121fec98..f717381a5b131b4f5aa8c8f041916d09db8a93e8 100644 GIT binary patch delta 47 zcmcb?e1myHE3dh(fvK*Mg@U1}m8rqRN!$5-67$ka6Vp?z6sj`fo&6?zFh)<_%%}AWW delta 47 zcmcb?e1myHE3cWZp`oskv4Vk-m8t2(N!uq!GDh+HB<7`;CZ?xaDO6>|JNr%E#Ha=U DXP^&4 diff --git a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po index 90012aad6d..1898fc882d 100644 --- a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:7 diff --git a/mayan/apps/mirroring/management/commands/mountindex.py b/mayan/apps/mirroring/management/commands/mountindex.py index 7244716dae..2a57b9b948 100644 --- a/mayan/apps/mirroring/management/commands/mountindex.py +++ b/mayan/apps/mirroring/management/commands/mountindex.py @@ -11,6 +11,7 @@ from fuse import FUSE, FuseOSError, Operations from django.core import management from django.core.cache import caches from django.core.exceptions import MultipleObjectsReturned +from django.core.management.base import CommandError from django.db.models import Count from document_indexing.models import Index, IndexInstanceNode @@ -214,15 +215,35 @@ class Command(management.BaseCommand): def add_arguments(self, parser): parser.add_argument('slug', nargs='?', help='Index slug') - parser.add_argument('mount_point', nargs='?', help='Mount point') + parser.add_argument( + '--allow-other', action='store_true', dest='allow_other', + default=False, + help='All users (including root) can access the index files.' + ) + parser.add_argument( + '--allow-root', action='store_true', dest='allow_root', + default=False, + help='Mount access is limited to the user mounting the index and ' + 'root. This option and --allow-other are mutually exclusive.' + ) def handle(self, *args, **options): if not options.get('slug') or not options.get('mount_point'): self.stderr.write(self.style.ERROR('Incorrect number of arguments')) exit(1) - FUSE( - operations=IndexFS(index_slug=options['slug']), - mountpoint=options['mount_point'], nothreads=True, foreground=True - ) + try: + FUSE( + operations=IndexFS(index_slug=options['slug']), + mountpoint=options['mount_point'], nothreads=True, foreground=True, + allow_other=options['allow_other'], + allow_root=options['allow_root'] + ) + except RuntimeError as exception: + if options['allow_other'] or options['allow_root']: + raise CommandError( + 'Make sure \'user_allow_other\' is set in /etc/fuse.conf' + ) + else: + raise diff --git a/mayan/apps/motd/api_views.py b/mayan/apps/motd/api_views.py new file mode 100644 index 0000000000..4799ab357d --- /dev/null +++ b/mayan/apps/motd/api_views.py @@ -0,0 +1,76 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import generics + +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Message +from .permissions import ( + permission_message_create, permission_message_delete, + permission_message_edit, permission_message_view +) +from .serializers import MessageSerializer + + +class APIMessageListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_message_view,)} + mayan_view_permissions = {'POST': (permission_message_create,)} + permission_classes = (MayanPermission,) + queryset = Message.objects.all() + serializer_class = MessageSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the messages. + """ + + return super(APIMessageListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Create a new message. + """ + + return super(APIMessageListView, self).post(*args, **kwargs) + + +class APIMessageView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_message_delete,), + 'GET': (permission_message_view,), + 'PATCH': (permission_message_edit,), + 'PUT': (permission_message_edit,) + } + queryset = Message.objects.all() + serializer_class = MessageSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected message. + """ + + return super(APIMessageView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected message. + """ + + return super(APIMessageView, self).get(*args, **kwargs) + + def patch(self, *args, **kwargs): + """ + Edit the selected message. + """ + + return super(APIMessageView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected message. + """ + + return super(APIMessageView, self).put(*args, **kwargs) diff --git a/mayan/apps/motd/apps.py b/mayan/apps/motd/apps.py index 0258d066da..af38dfa4c0 100644 --- a/mayan/apps/motd/apps.py +++ b/mayan/apps/motd/apps.py @@ -6,6 +6,7 @@ from django.utils.translation import ugettext_lazy as _ from common import MayanAppConfig, menu_object, menu_secondary, menu_setup from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_message_create, link_message_delete, link_message_edit, @@ -16,13 +17,15 @@ logger = logging.getLogger(__name__) class MOTDApp(MayanAppConfig): + has_tests = True name = 'motd' - test = True verbose_name = _('Message of the day') def ready(self): super(MOTDApp, self).ready() + APIEndPoint(app=self, version_string='1') + Message = self.get_model('Message') SourceColumn( diff --git a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo index 56d5a2babfafdeb973ede5a11f802ee50b57a3ea..56f5c1d6efa995b88d605707e4378ed2b6c2191b 100644 GIT binary patch delta 44 zcmaFE@`h!?c3yK`15;fi3k5?{D^r7sM^^LrB<7`;CZ?xaDI^w6&SQ+8e2sA$08lIs AbN~PV delta 44 zcmaFE@`h!?c3v}GLqlC7V+8{vD^t^nM^;a+VT|JONz6+xO-xUn+a diff --git a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po index 324015cb62..6a520ab71b 100644 --- a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "لا شيء" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo index 94f1a9c70635892ea04ba1dddb9ceb1f3f50e89e..f05b1c7f9732009cf2a73fd6955614c41adb675d 100644 GIT binary patch delta 44 zcmZ3=vXo`Qc3yK`15;fi3k5?{D^r7sN7nK9B<7`;CZ?xaDI}#&E@X_Je3Q`!05}g0 An*aa+ delta 44 zcmZ3=vXo`Qc3v}GLqlC7V+8{vD^t^nN7hZQXN= diff --git a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po index b1ff9522f6..1f2c58cbd1 100644 --- a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Няма" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo index da5ac9527fe656da3dbc57f9676bf014c6140c94..9f7e3245d44c9bfdf58a6b4e4705425cc9243e97 100644 GIT binary patch delta 47 zcmeyv@`q)@c3yK`15;fi3k5?{D^r7sM^5njB<7`;CZ?xaDI^ugJ2_77W{jTvjj;^? Dhjb9d delta 47 zcmeyv@`q)@c3v}GLqlC7V+8{vD^t^nM@~$h!x+WylbDxYnwXwyrI1t{@8mf7D`PtV DibD|1 diff --git a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po index 05d1f0a9c5..349aabde10 100644 --- a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nijedno" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo index 84dbc72b69e767d531594dd7e47061ce68a2513d..66641a2dcc9ad18ffbb6745af198ee5aac2cfacb 100644 GIT binary patch delta 44 zcmey&{F!;eB3^S{15;fi3k5?{D^r7s>sRymB<7`;CZ?xaDWoJ$j%19Ue2~!y0848Q Ax&QzG delta 44 zcmey&{F!;eB3?6HLqlC7V+8{vD^t^n>sL=sXN=\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ingen" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo index 140ebef96620bb24806a41e097c7df5fba574d00..163b9d086a284311340e931540729f4155d1dcfa 100644 GIT binary patch delta 50 zcmX@jcbad*Pi9_oT?12HBMSvXQ!7)0$!sjg`F#@e(n}N5Q>_$IQsZ4*C!b-7-fYe) G!UO=1-w##* delta 50 zcmX@jcbad*Pi9^-T|+}%BVz>vBP&zW$!sjgC*Ng>;`d3+OD|1KPqk7=NsV`L-E77x G$^-zH1`l2U diff --git a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po index 39006d95d2..fc036376ca 100644 --- a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Berny , 2016 # Tobias Paepke , 2016 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-05-20 21:31+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Nachricht des Tages" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Startdatum und Uhrzeit" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Keine" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Enddatum und Uhrzeit" diff --git a/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a7e30c990fdd2d33100f323088b2afd..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo index 7efba470687b1528aea5cb8bf4c8cc2bd9073c3b..4433174d65ed449f8868b26f74e78db78f134bf2 100644 GIT binary patch delta 47 zcmeC<>*L$-lbP3C*T7WQ$U?!;)XLOgG8@Yx9-qX#^wPxiR4awl;>pWdqBrxi{$~UL DN$(DL delta 46 zcmeC<>*L$-lbP2{*U(Vc$XLO^$ja1oG8@aH$y-^XczhD`(n}N5Q>_$Iix=~;G64WR CSq*Lg diff --git a/mayan/apps/motd/locale/es/LC_MESSAGES/django.po b/mayan/apps/motd/locale/es/LC_MESSAGES/django.po index 34c363de35..03c0011320 100644 --- a/mayan/apps/motd/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/es/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:13+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Mensaje del día " -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Habilitado" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Fecha y hora de comienzo" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ninguno" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Fecha y hora cancelación" @@ -68,7 +69,8 @@ msgstr "Mensaje" #: models.py:23 msgid "Date and time after which this message will be displayed." -msgstr "Fecha y hora después de la cual este mensaje comenzara a ser desplegado." +msgstr "" +"Fecha y hora después de la cual este mensaje comenzara a ser desplegado." #: models.py:28 msgid "Date and time until when this message is to be displayed." diff --git a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo index 21beb0f96bf3078ef689f48c92c16e051343d152..d8f25c3e4e21482f918a0380be6a4a7d38df4e25 100644 GIT binary patch delta 46 zcmbQiI)inC2qUk#u7Rnpk%fYxsg7|M3sa6VUiIdMTMo%_jN&x^F CtPLyx delta 46 zcmbQiI)inC2qUkVuA!l>k+Fh-k(H_GWJSg`lW#Fb@%SX>rI#kAr&=kbB~CVGN(BHO C$_+69 diff --git a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po index c0c7967e4b..3d84bc7819 100644 --- a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "فعال شده" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "هیچکدام." -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo index 19af43041f4582fca5471c1b3c7a0777e1a7d9ba..b10a0f8c31e9b4e6369091ca02874b32e1c26479 100644 GIT binary patch delta 47 zcmey!`;m9UPi9_oT?12HBMSvXQ!7)0$!sipd3+M{(n}N5Q>_%ziY6aoiQcTmdYlme DaBB}$ delta 47 zcmey!`;m9UPi9^-T|+}%BVz>vBP&zW$!sipCtqNR;_*q$OD|1KPqk7=E848ddV&!E Dbng#Z diff --git a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po index ebf659b44c..0b4e0b550e 100644 --- a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-04-26 07:54+0000\n" "Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Message du jour" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Activé" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Date de début" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Aucun" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Date de fin" diff --git a/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo index 1806831aae8cbc22e30ef48e6646d9151bc80736..2360cfb21933c8ed74dbc3bec3efa7f3070b1f52 100644 GIT binary patch delta 44 zcmeyy{Ed0SB3^S{15;fi3k5?{D^r7s>(}x4B<7`;CZ?xaDP)vRj$w?Re1y>m08Ob5 A;Q#;t delta 44 zcmeyy{Ed0SB3?6HLqlC7V+8{vD^t^n>(@=rVvOSPNz6+xO-xU\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Semmi" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo index e55867630e72c99e0d0becadccac63ff26b141bc..c237220dcb73249dad97e26ff6d231c04a6862ac 100644 GIT binary patch delta 44 zcmX@he3p4aE3dh(fvK*Mg@U1}m8rqRN$Yuh67$ka6Vp?z6f#pLJ1|C1Ucsme05?Al A0RR91 delta 44 zcmX@he3p4aE3cWZp`oskv4Vk-m8t2(N$V&3F-GzDB<7`;CZ?xaDP*QhUe2fn05vfV A1^@s6 diff --git a/mayan/apps/motd/locale/id/LC_MESSAGES/django.po b/mayan/apps/motd/locale/id/LC_MESSAGES/django.po index d86531e352..ca54c1cbb1 100644 --- a/mayan/apps/motd/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/id/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo index a8a530aaa430ac961f4478d06afc0d417a379788..3c9b36b898ce983fd1173fd5507fb48390fc83d4 100644 GIT binary patch delta 47 zcmZ3?x0r9kPi9_oT?12HBMSvXQ!7)0$!sk9d3+M{(n}N5Q>_#-OC}#-iQcTk`kfH~ DRhSO; delta 45 zcmZ3?x0r9kPi9^-T|+}%BVz>vBP&zW$!sk9CtqTT;_^w%OD|1KPqk9mtjYR|5db^m B4jcdg diff --git a/mayan/apps/motd/locale/it/LC_MESSAGES/django.po b/mayan/apps/motd/locale/it/LC_MESSAGES/django.po index c94b91b5a2..cf323be689 100644 --- a/mayan/apps/motd/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/it/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 10:04+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Messaggio del giorno" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Abilitato" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Data e ora inizio" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nessuna " -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Data e ora fine" diff --git a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo index 12c7950e30378f3a9f3c852e7461a806a7d26a3b..a97bae1f01e07b94cdb980663fe533833d838945 100644 GIT binary patch delta 50 zcmeyz`HyqM0w!K_T?12HBMSvXQ!7)0$!nR;@%tp^rI#kAr&=lG<;45>Os-;%-u#qV Gk`Vx=HxPpW delta 50 zcmeyz`HyqM0w!KFT|+}%BVz>vBP&zW$!nR;P3~rn;`d3+OD|1KPqk9W%Zc~%+5CiA GiV*;(rVxt& diff --git a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po index afed4b1605..a2a48d071d 100644 --- a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-01 09:04+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Bericht van de dag" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Geen" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo index 37cd5b08d12aee1ce9099b576071a8ef9130dd3a..5e3c880c0198c227b2db4692132e0788d844d73a 100644 GIT binary patch delta 46 zcmdnbx}SA}2qUk#u7Rnpk%fYxsg7|M3sa6UFIg?K_Mo%_o>Hz>K CF%7f; delta 46 zcmdnbx}SA}2qUkVuA!l>k+Fh-k(H_GWJSi+lW#Ic@%SX>rI#kAr&=i#IDES C?hUyB diff --git a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po index b549ae513d..bf857417a1 100644 --- a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Włączone" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Brak" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo index dc6cd83cf8b04c3ff07e3e9c188e54a74a7167f9..017cf10283028f626a4acf4889167773c0e47c15 100644 GIT binary patch delta 44 zcmcc4a-C(u8(wo=15;fi3k5?{D^r7sKiBj4B<7`;CZ?xaDHN1UUd|XjnV-o609E1+ A?f?J) delta 43 zcmcc4a-C(u8(uSALqlC7V+8{vD^t^nKi5y*${5A%lbDxYnwXwyrBE=Lm&pqNNXia= diff --git a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po index 5b789a953d..e2e3279b8f 100644 --- a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nenhum" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo index dcce68a2110e588900dc05bb2abb506ff0ce0233..9abbb0210f036678362692e82529d82132aab8ea 100644 GIT binary patch delta 50 zcmZqYYv_#VO5&Y@He0ct GWds0#gb%*} diff --git a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po index 3312d49b26..aae326d49e 100644 --- a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Mensagem do dia" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "habilitado" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Data inicial" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nenhum" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Data final" diff --git a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo index 8014d5f271b11199c698b3cc42934e295a05e35a..ab6d397328eeead97fd8e817a99fb43af86c6426 100644 GIT binary patch delta 47 zcmbQiI)in>8(wo=15;fi3k5?{D^r7sKX>u_B<7`;CZ?xaDHP?$2l-Fl#27tUmZ=&5 DaL*6P delta 47 zcmbQiI)in>8(uSALqlC7V+8{vD^t^nKX*+&%oxS*lbDxYnwXwyrBIX~ALKt-hN%Vs Db!HFI diff --git a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po index 829432e60a..675dceee14 100644 --- a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nici unul" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo index 0a5c5af43cb9e6ba0783b4f339d3d37b201b5a4a..dd481931d572f540cd65fc4ca9ef5e4606cddf8e 100644 GIT binary patch delta 47 zcmbO#G*xKBPi9_oT?12HBMSvXQ!7)0$!sihd3+M{(n}N5Q>_$=N+&O3iQde`%FO}* DOX>}s delta 47 zcmbO#G*xKBPi9^-T|+}%BVz>vBP&zW$!sihCvRYh;_*q$OD|1KPqk7gD&5S<%EJNx DPLd6x diff --git a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po index 508e21c03d..be16c6c10e 100644 --- a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po @@ -1,40 +1,43 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-02 04:15+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Объявление дня" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Доступно" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Дата и время начала" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ни один" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Дата и время окончания" diff --git a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo index b135516d4ea7d2aa63383f52e37f676402bf7bc9..5afc0109590036370e67d4a3358be09f5011e3cd 100644 GIT binary patch delta 47 zcmcc4a-C(u4qkIz15;fi3k5?{D^r7sNB8jiB<7`;CZ?xaDHP|#2YXI#V2qypnlT3e DdNUAY delta 47 zcmcc4a-C(u4qh`|LqlC7V+8{vD^t^nNB2yg$QZ@%lbDxYnwXwyrBIv`AM82#6=N;{ Dd&UrK diff --git a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po index 6d986669c1..1aab2b3a6f 100644 --- a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Brez" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo index 1130a9a565a063c0a16aa5e7f0dbd7e8b47beac1..02802112caa4ce7a2b5429156f06f568e0c43d5a 100644 GIT binary patch delta 47 zcmbQuGMi<>c3yK`15;fi3k5?{D^r7sNA~jjB<7`;CZ?xaDU@Z#hxtuzV2qypn$Z9N DWQq^B delta 47 zcmbQuGMi<>c3v}GLqlC7V+8{vD^t^nNA^yh$QZ@%lbDxYnwXwyrBId`ALcjt6{8^l DW&IDo diff --git a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po index e1fd1f8136..77606bd16d 100644 --- a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "None" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo index 04f6b653de9e7f6ad041ebe4d592dce9a44f9a21..7f3bffeabe45bf63f222d29285141f79b38d6d5a 100644 GIT binary patch delta 47 zcmey#{F8aYB3^S{15;fi3k5?{D^r7s>$mg!B<7`;CZ?xaDO6>|JNr#eWsIJDfl(6x Dej^X` delta 47 zcmey#{F8aYB3?6HLqlC7V+8{vD^t^n>$guXV~pbWNz6+xO-xU2<` DekKq6 diff --git a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po index 82766ee890..ec97a941ce 100644 --- a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "无" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/serializers.py b/mayan/apps/motd/serializers.py new file mode 100644 index 0000000000..1637ac91b6 --- /dev/null +++ b/mayan/apps/motd/serializers.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import serializers + +from .models import Message + + +class MessageSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:message-detail'}, + } + fields = ( + 'end_datetime', 'enabled', 'label', 'message', 'start_datetime', + 'id', 'url' + ) + model = Message diff --git a/mayan/apps/motd/tests/literals.py b/mayan/apps/motd/tests/literals.py new file mode 100644 index 0000000000..431ef052bb --- /dev/null +++ b/mayan/apps/motd/tests/literals.py @@ -0,0 +1,6 @@ +from __future__ import unicode_literals + +TEST_LABEL = 'test label' +TEST_LABEL_EDITED = 'test label edited' +TEST_MESSAGE = 'test message' +TEST_MESSAGE_EDITED = 'test message edited' diff --git a/mayan/apps/motd/tests/test_api.py b/mayan/apps/motd/tests/test_api.py new file mode 100644 index 0000000000..53b6ba7c30 --- /dev/null +++ b/mayan/apps/motd/tests/test_api.py @@ -0,0 +1,104 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Message + +from .literals import ( + TEST_LABEL, TEST_LABEL_EDITED, TEST_MESSAGE, TEST_MESSAGE_EDITED +) + + +@override_settings(OCR_AUTO_OCR=False) +class MOTDAPITestCase(BaseAPITestCase): + def setUp(self): + super(MOTDAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def _create_message(self): + return Message.objects.create( + label=TEST_LABEL, message=TEST_MESSAGE + ) + + def test_message_create_view(self): + response = self.client.post( + reverse('rest_api:message-list'), { + 'label': TEST_LABEL, 'message': TEST_MESSAGE + } + ) + + message = Message.objects.first() + self.assertEqual(response.data['id'], message.pk) + self.assertEqual(response.data['label'], TEST_LABEL) + self.assertEqual(response.data['message'], TEST_MESSAGE) + + self.assertEqual(Message.objects.count(), 1) + self.assertEqual(message.label, TEST_LABEL) + self.assertEqual(message.message, TEST_MESSAGE) + + def test_message_delete_view(self): + message = self._create_message() + + self.client.delete( + reverse('rest_api:message-detail', args=(message.pk,)) + ) + + self.assertEqual(Message.objects.count(), 0) + + def test_message_detail_view(self): + message = self._create_message() + + response = self.client.get( + reverse('rest_api:message-detail', args=(message.pk,)) + ) + + self.assertEqual( + response.data['label'], TEST_LABEL + ) + + def test_message_patch_view(self): + message = self._create_message() + + self.client.patch( + reverse('rest_api:message-detail', args=(message.pk,)), + { + 'label': TEST_LABEL_EDITED, + 'message': TEST_MESSAGE_EDITED + } + ) + + message.refresh_from_db() + + self.assertEqual(message.label, TEST_LABEL_EDITED) + self.assertEqual(message.message, TEST_MESSAGE_EDITED) + + def test_message_put_view(self): + message = self._create_message() + + self.client.put( + reverse('rest_api:message-detail', args=(message.pk,)), + { + 'label': TEST_LABEL_EDITED, + 'message': TEST_MESSAGE_EDITED + } + ) + + message.refresh_from_db() + + self.assertEqual(message.label, TEST_LABEL_EDITED) + self.assertEqual(message.message, TEST_MESSAGE_EDITED) diff --git a/mayan/apps/motd/tests/test_models.py b/mayan/apps/motd/tests/test_models.py index bb250982fa..457cacedac 100644 --- a/mayan/apps/motd/tests/test_models.py +++ b/mayan/apps/motd/tests/test_models.py @@ -7,8 +7,7 @@ from django.utils import timezone from ..models import Message -TEST_LABEL = 'test label' -TEST_MESSAGE = 'test message' +from .literals import TEST_LABEL, TEST_MESSAGE class MOTDTestCase(TestCase): diff --git a/mayan/apps/motd/urls.py b/mayan/apps/motd/urls.py index 2bec1ae108..7ee0ff1740 100644 --- a/mayan/apps/motd/urls.py +++ b/mayan/apps/motd/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APIMessageListView, APIMessageView from .views import ( MessageCreateView, MessageDeleteView, MessageEditView, MessageListView ) @@ -17,3 +18,11 @@ urlpatterns = [ name='message_delete' ), ] + +api_urls = [ + url(r'^messages/$', APIMessageListView.as_view(), name='message-list'), + url( + r'^messages/(?P[0-9]+)/$', APIMessageView.as_view(), + name='message-detail' + ), +] diff --git a/mayan/apps/navigation/apps.py b/mayan/apps/navigation/apps.py index e529d10406..c7289ffb0b 100644 --- a/mayan/apps/navigation/apps.py +++ b/mayan/apps/navigation/apps.py @@ -6,6 +6,6 @@ from common.apps import MayanAppConfig class NavigationApp(MayanAppConfig): + has_tests = True name = 'navigation' - test = True verbose_name = _('Navigation') diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index 6c065ca5f2..534854ca5d 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -11,7 +11,7 @@ from django.core.exceptions import PermissionDenied from django.core.urlresolvers import resolve, reverse from django.template import VariableDoesNotExist, Variable from django.template.defaulttags import URLNode -from django.utils.encoding import smart_str, smart_unicode +from django.utils.encoding import force_text, smart_str, smart_unicode from django.utils.http import urlencode, urlquote from common.utils import return_attrib @@ -113,9 +113,8 @@ class Menu(object): logger.debug( 'resolved_navigation_object_list: %s', - resolved_navigation_object_list + force_text(resolved_navigation_object_list) ) - return resolved_navigation_object_list def resolve(self, context, source=None): @@ -273,7 +272,7 @@ class Link(object): except VariableDoesNotExist: pass - # If this link has a required permission check that the user have it + # If this link has a required permission check that the user has it # too if self.permissions: if resolved_object: diff --git a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo index d83c33c4ca5489cf25a8ae5f3ec4d23bb982cd27..d79aaa2d29693efc2b1d9a771ee6f00ec57ca6c2 100644 GIT binary patch delta 24 fcmbQqGLvOOE3dh(fvK*Mg@U1}m8rqTN$rdPQ*#Eb delta 24 fcmbQqGLvOOE3cWZp`oskv4Vk-m8sdrN$rdPQvU{~ diff --git a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po index 90e3c66bb5..97f8b65a5b 100644 --- a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo index e6716564af05f3a309e844b19dd01c055e9ace79..d323281d60f75caaa24e7fcfef26382f6e655f3f 100644 GIT binary patch delta 24 fcmX@fe3E%WE3dh(fvK*Mg@U1}m8rqTN#=|ITSo@F delta 24 fcmX@fe3E%WE3cWZp`oskv4Vk-m8sdrN#=|ITGIx! diff --git a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po index 4ed1f660e6..5489407d5b 100644 --- a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo index c9ab428f67892693dbb99d00b1fdfba16f487f39..f03f1e17adf27daaac95d209541d8b7bb300fba8 100644 GIT binary patch delta 24 fcmdnMvVmnnE3dh(fvK*Mg@U1}m8rqTN%I&1SHlMK delta 24 fcmdnMvVmnnE3cWZp`oskv4Vk-m8sdrN%I&1S5F4( diff --git a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po index eca126c1e4..5deed43e66 100644 --- a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" diff --git a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo index 43d06ec1e4c898d9dbb2ec03d1f076e894546c50..a52bbfef50783d3588de230d4e926de3551ac0ee 100644 GIT binary patch delta 24 fcmX@ce2jTQE3dh(fvK*Mg@U1}m8rqTNhXW{TDJzW delta 24 fcmX@ce2jTQE3cWZp`oskv4Vk-m8sdrNhXW{T0;h_ diff --git a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po index 492ce519af..e859d30667 100644 --- a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo index 18cd4f8d8572d427e22f0e69499f776b5f16000a..4726008f6a211c4090cbccb6d895fed65f0aee77 100644 GIT binary patch delta 24 fcmZ3=vXo`Q0bX-m15;fi3k5?{D^r7wXCoK^T2BWI delta 24 fcmZ3=vXo`Q0bVm*LqlC7V+8{vD^s(LXCoK^S=$E% diff --git a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po index c8499968d3..c2cee40d8e 100644 --- a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo index 8dde99e13645246273c37929e7afdcac402d118e..18edf6e20f4f8e43da6ab96525895328410d7fd8 100644 GIT binary patch delta 24 fcmX@fe3E%WE3dh(fvK*Mg@U1}m8rqTN#=|ITSo@F delta 24 fcmX@fe3E%WE3cWZp`oskv4Vk-m8sdrN#=|ITGIx! diff --git a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po index 54e1532594..697787aa24 100644 --- a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" diff --git a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo index cd474a3cf51937364d6e8cef29a134c386a89f69..4616773577934fe3f26db5320845d64add72439f 100644 GIT binary patch delta 24 fcmbQvGM#0@0bX-m15;fi3k5?{D^r7wXT2B!SFZ-* delta 24 fcmbQvGM#0@0bVm*LqlC7V+8{vD^s(LXT2B!S33sV diff --git a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po index 816e9c1c62..1a02b67c99 100644 --- a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo index db7c629693625e4b94e8ac4ae1b632e02671e8c3..02e2318cda584b90100894dd4a2cc9dc453c7658 100644 GIT binary patch delta 24 fcmaFM{FZsbQeJai15;fi3k5?{D^r7wo2(fDWQPYw delta 24 fcmaFM{FZsbQeHD%LqlC7V+8{vD^s(Lo2(fDWD^HK diff --git a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po index 023065c1d0..ff890f5021 100644 --- a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo index 8a1026afcef85a1e2ed5b5c969479d5cb4b86d4e..3f9dd40452512c78b9d88d6e0ad623753def39c1 100644 GIT binary patch delta 24 fcmaFM{FZsbQeJai15;fi3k5?{D^r7wo2(fDWQPYw delta 24 fcmaFM{FZsbQeHD%LqlC7V+8{vD^s(Lo2(fDWD^HK diff --git a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po index 66797f1fd8..d5ef2a5489 100644 --- a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo index 7c684f452ff8c39ecf1e39fcefdde8ed533b1f59..e5415272828be51638c2b856020d1a5d8cbe5b5b 100644 GIT binary patch delta 24 fcmX@fe3E%WE3dh(fvK*Mg@U1}m8rqTN#=|ITSo@F delta 24 fcmX@fe3E%WE3cWZp`oskv4Vk-m8sdrN#=|ITGIx! diff --git a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po index 4c26fa24b9..4ad0c318d8 100644 --- a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo index 1cda33dd8823328161c70346b937cad8b3ef59ad..6ba75bf706f84b17b5afb65bbf2bd4ab8cc90875 100644 GIT binary patch delta 24 fcmX@ie3*GcE3dh(fvK*Mg@U1}m8rqTNrsF7S|z*N`BLc!3~%G6-vCO<|1Q9}lT delta 24 fcmZo*X<(VKl-Eqx&`{UNSi!)^%G7M*CO<|1P|pT? diff --git a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po index 4287d93437..9b34522073 100644 --- a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo index c9c921f230f8d6453c81c646ccdaddf4dba87b89..07e93c8c3d7d21f58fabf9a8ebd77a44be063466 100644 GIT binary patch delta 24 fcmZo0_DD%4@D`V5)0mp0_DD%4?=;XsBystYBbdWoou@QVk;jQ11qX diff --git a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po index fa7649e64e..d04d9d5e5c 100644 --- a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo index 0dc6a7dcbc4e0ffa651fcc790dfc7e7b388908e1..90e1f1faa20abc54ae1182e1181bdef994c96a52 100644 GIT binary patch delta 24 fcmcb@e1&;JE3dh(fvK*Mg@U1}m8rqTNluIaT~`L& delta 24 fcmcb@e1&;JE3cWZp`oskv4Vk-m8sdrNluIaT;m4S diff --git a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po index 121a78f3f1..a97ee3b87b 100644 --- a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" diff --git a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo index 36820d5e92d042243ccbc671263acb748bbbf5c9..d21e346c35213c1bbd1e178191b862198560bdcc 100644 GIT binary patch delta 24 fcmX@de2#fSE3dh(fvK*Mg@U1}m8rqTNj8iCTsH>F delta 24 fcmX@de2#fSE3cWZp`oskv4Vk-m8sdrNj8iCTf+v! diff --git a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po index 7d201b248b..56dd6c393b 100644 --- a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/ocr/apps.py b/mayan/apps/ocr/apps.py index 97aef9d214..e0e7042552 100644 --- a/mayan/apps/ocr/apps.py +++ b/mayan/apps/ocr/apps.py @@ -48,8 +48,8 @@ def document_version_ocr_submit(self): class OCRApp(MayanAppConfig): + has_tests = True name = 'ocr' - test = True verbose_name = _('OCR') def ready(self): diff --git a/mayan/apps/ocr/backends/pyocr.py b/mayan/apps/ocr/backends/pyocr.py index 78e5ea5a9c..baffdf7d0c 100644 --- a/mayan/apps/ocr/backends/pyocr.py +++ b/mayan/apps/ocr/backends/pyocr.py @@ -16,18 +16,19 @@ class PyOCR(OCRBackendBase): def __init__(self, *args, **kwargs): super(PyOCR, self).__init__(*args, **kwargs) + self.languages = () + tools = pyocr.get_available_tools() if len(tools) == 0: raise OCRError('No OCR tool found') + self.tool = tools[0] + # The tools are returned in the recommended order of usage for tool in tools: if tool.__name__ == 'pyocr.libtesseract': self.tool = tool - if not self.tool: - self.tool = tools[0] - logger.debug('Will use tool \'%s\'', self.tool.get_name()) self.languages = self.tool.get_available_languages() diff --git a/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo index d33d02381d1faf40009443a5f0102c554ec1e810..f5e31c9ce007ccc35dc3476efeae650b2568ed38 100644 GIT binary patch delta 269 zcmZ3$b%3M(o)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~}-;fcPX3vjg!zAO@*rV`O091=9RL z+80R60%>L-oeiWVfOI~Pz7ND5Kn&8K0hHte(sO~d5RhI2q(vDR+!*!)86X3$0%;&( zP-cM`pbn&gdcl@~ECvBKAZ7)#AOuhe0}~K4PnKmoJXwXwhu2)!z*N`BLc!3~%G6+T tEt51z#6;J~P{Gj5%E)Z;Ql?5CpTxZM(!}&sD}}_O$+FDRn_HQ~83FrwAiDqn delta 494 zcmb`?ze~eF6bJB^7`3f!p#ecq@C4UDFV%usb#Sn&h=LI8HFQbzauJ0>N5>+;-T%Qq zKp}|#MDfSw?BL|!_u10Fzz2`d@$R_q-BanlGJJKNJ3>{_Yv=*GfgYo|ghjLkH{c>X zge7HZjUz!&6zpQ-hEB4knpjnQB6IWGPHf0$@}@~b5*ah?`b*i~95 zT13j2ejJHQrPF>AQ=AylOR~62=iQ!3jJh(jJ)_c8>F{he$#1Mqt?fza`7P1(gY9, 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "not found" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "error getting version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "المحتويات" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,72 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "File path to poppler's pdftotext program used to extract text from PDF files." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"File path to poppler's pdftotext program used to extract text from PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -394,11 +379,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -455,9 +440,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo index 4264c346343417305dd4ece6c9a469c32387bcfd..7ccefa1970d9f07f4bc119adc21ccaa760de6533 100644 GIT binary patch delta 273 zcmaFB{*JBwo)F7a1|VPuVi_O~0b*_-?g3&D*a5^QK)e%(L2BLsF$WNT17cnv{tv{= zAT}cdg9MNk1k(LLtOdj%eY=<#7({^ddnnBUR4fPNO9E*iGGnj+l7>J58z2qT0|snR z8e}0WlntU-fEZ{F1M|eYrIYg*eN4@D4NP^7EEEh)txOGc4NMFSxB~ojgHp>fi!<}{ zbX^ilQmqt>3=DzlOmvM56%5U+jLas#XRP7zNz6+xO-u($C#6r$Vv3%8iRl3V_8KSS delta 395 zcmYk0!AiqG5QaCgwkmp1qzFpcn|O%qZqkCGM-LtprAN_2v@!IOK$G@Vus(nk2|k4$ zN+FCk?1*Cm}K7#m9>A_*Y{f6DynVpxXmB*i*(knx(g9Fe8Ti_i~Oo0PtpaQA} zV{32?rn*CT1+K$;@Ci)4TJSb}1CKxmsL!v-*e-125$v%uBsCn|!qjMhO~OOC3Qv~) zhS6g&99l$a=`u`1DNx2%0eu#;So&!;UgpjHFiQAC)C=1z@#EOM$VezCtiV^z*#T8Jh diff --git a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po index 8271504913..7243ae0bb9 100644 --- a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Pavlin Koldamov , 2012 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "не е намерен" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract версия" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "Съдържание" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -386,11 +369,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -447,9 +430,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo index 21a88cf9c23942c2f1af7d74e6f5aac44c870c5e..fe8549584b650dd9bf6bf8778b743ae7aca67a91 100644 GIT binary patch delta 272 zcmZ3(wU?v*o)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~}-;fcPX3vjg!zAO@*rV`O091=9RL z+80R60%>L-oeiWVfOI~P{szPyKn&7f50nJy+XAKc0%@RrH-=+ChBr{+3XldO1_c&~ z0V+Tms28jWWHAV^0Wm9>1tEY+7?^;Vd9p0y;mImYKD_3-2Bx}377B)@R;C7%Ynh}$ tA||><#EMX;!zr$TCbb>9siPJILC`_D+G|LayON|uMC>TIm7u%3 z;NYqtsQ4KK5&aS!#s4*$2QR{+6d=^qygqlV#pwG~==nu3mW)Q8wMK}p} zUR} zI^YTFh2P-}96=qBo*Z@Wy@)P-0exYjrRY{uc*XaW)-#k2!d~MF&y%&` z&*i%CJmoP*1c56Z))$`dDoIiWtgU*oMcr0AP=PoJ;;kQx3q+Bs=i`iD)vchcQI=oBl&1`b%^tdDHtmz-Dt=?ynRb$)n#OuuwXI;;2 l^8Rs$%MRChr*21(!~-Wv@|U5IilR9_{@*N~#G9F%egVRTV, 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "verzija pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nije pronađeno" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "greška pribavljanja verzije" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "verzija tesseract-a" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "Sadržaj" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,72 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Staza do popplerovog programa pdftotext za vađenje teksta iz PDF datoteka." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Staza do popplerovog programa pdftotext za vađenje teksta iz PDF datoteka." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo index a92146039693354ab886405fdd65b9403b8b2f59..1c0b8cf67f8b58d10f0d5fc747e17f2fe7b0b74d 100644 GIT binary patch delta 268 zcmX@ad5^vRo)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~}-;fcPX3vjg!zAO@*rV`O091=9RL z+80R60%>L-oeiWVfOI~P?g8QsAO`6d1xkYSdqL?SAkD+T;KmRIWP}4H(t$J(G3*Bt zQb77JkOt}nTL#hy0&GCc3T8nF79hn0#LSar84piZVe;WM*EKNJHL_4JG_^7{m|V*w q4H7ZYH8NB%G_x`?o4k~%lE)`8FTFG|J=IDfC2_JWbM)j^=C1%^YanR= delta 497 zcmZwCJxjw-6b9gvv|6L>U_tN;yn<_>Nwq^)Q5@_h3JOXvH=#umNp6aY(9uN@iLU+z z-JA{LpOB)9I5~FqJ+^ib4;-G`oAkUV-NKX6>6Y`iges!v(dXz%^edW6Xhh3!5fC1>c|ndywan-nR@dHR{k34jk}+e{;acz%R&4_23T7<@*79 za2CH0;0!#29B>0U;BMeOL?(@+ar`NMkBdKmXA>>-Lnm+?L67ns3Yokp(e-n-Dx)Zj zgfEq92EJ&^C~k%U1)&mNm;^2zyPgV_JW<1EO2)B_oWtQwdZ9H+HPf<8yDBPneWjMZ zYje1%R889wwpF*R)X-1UD}A@P=>&e___8isC;ilW8|$)lgxT)z{5Z}Y{Q%3*T1$9X NL8^b2*!sH!eFLzsUWxz! diff --git a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po index b133f3f72f..59d169290f 100644 --- a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mads L. Nielsen , 2013 @@ -10,49 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "Ej fundet" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Fejl ved versionssøgning" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +48,6 @@ msgid "Contents" msgstr "Indhold" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -79,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -128,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +137,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Fil sti til poppler's pdftotext program, brugt til at identificere tekst fra PDF filer." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Fil sti til poppler's pdftotext program, brugt til at identificere tekst fra " +"PDF filer." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +372,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +433,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo index e02f73938bffcbdc879995b4fa4b635a084a6424..4ce9e41c8a482303d1f386e4aac7db10394a0531 100644 GIT binary patch delta 1032 zcmX}rPe{{Y9LMpm&epc(G&R#qoi$qFR@>TE%qWDk4n}{lLqyn`CWG2=o0l#-1Re4? zf(+{t5kz6NAc8s+6henC{W%pB2weiZ)J=MS=IG0wy`JZR-}8Kb-{<+g9a!xve`{;H zVZ<)lR@!8P*$_T#U|#_$R%fk&u?KjAT4!QFV!X-3X=88_k# zYQ3xIVSl?thfM4qcHnE|XP@~ygkRB(y}VX02J4RC4#pYm!t3b6ySN9RVi14e0#)@; zj^m8)vseiKqL=+G;91)!ih5uMmH9j>ktJje`+$1$FR0S~L><}hy1or&EsO`zi$isf zqAGbB^`aTni}i7-!eo7%LA`knb(D8d zi9W-N_zIO^fHLjGxR3gW>6~NY0M4PtOSldHU<$i=N*8n-sbnpCu1PJl5l3y^Ys1=e z^{#EFqeK-tbKPkjnUe6+TsET~D&hRQqFSo6McBoU77_eT?{ zM5NO1?%B&sJRFPqqsde(IT#^4W9eckJYGoWikH%*d?DpOmA^1mDCM!3E@bnSYwq(c hW9i)VY{}^P8Ymun(U8&}O4?E=f}pUrhpLBA>Pb9!6}*TC5kbL=D8=t@cM^T@<}<%HGjD$H z_h$Yd`fqslLH~+*MN7~>q5sgP)Mxm*odfMzhf)XdIc~z;E0pTQuW=XVF^)guFfQUs ze25Wzf*;_EFplu>$HaX&sMM?)<>Y+^4&qvz!T~IY;}>up@uhJ5GWHTLVjAzEB+%K_ zn%Kd^#0POb{)n=;zmYYlN7#ptaUJhhuQ=&upr5qKNX2js?nW-DBlra#$0*KY3>QLg z;TGci_#w8l>{U33J8%T!coJoS-=oa)6ZY|b^}C$lb^MF+-^QcF-;&iR-oYMxiIPay zd#wrgqpZwBN%R*a2lWR^g{~k|saq&pdpq2Eo#!+6F#R>c_jBnru;>Vc59+tli51_`g$W-bQ%0hk%ZS+!qD&D*q6d&nwlaG-5 znu*E7@&egsNl+${z1~EZA4OJ|pi7e#OR};RQVnSoNR80t50T2sBBZUC{g>ZE+DCNR zC;2_3u}#hFhni9AARi7Nd~?4yzcVhUEWY`t$j2sMy0m`!M!J-JJDnYAwar_n{kmrx zzjiFN$4X_RtFE2V*4Nh5Y9?@}t*!=sF>ou5iLSeCUzs5A16?%Mmb{`qXM$SE_mt;b zU0|NPs^$yUx8@tWeC_Q-;oWo5$l=*>CzW#2J9RRh85?(!yOPQ7>`~{KIaiViok`c4 zj7}$0TpM%JNu5q*cBZ!{Y2An1nssu4>($Dx^@EJg`KL>6O=n$GJ!ABQZH9?zGyJke z!ZY@Bp7e@!w`iQ)+|9`Gx#8%^)k{Meoj0c@_chK(_jbgx1vjtH*DE@{oP6BLw#rax z-01nYJ-6S?lue*dn^HyZsn^P;W;~_{^wd&GO4BozLKUcr@!qM+(ha%g0xylc0a=34 A{{R30 diff --git a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po index 2ebf6dad14..4a519faeda 100644 --- a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 @@ -13,49 +13,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-20 21:32+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR-Schrifterkennung" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Dokument" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Hinzugefügt" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Ergebnis" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext Version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nicht gefunden" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Fehler beim Auslesen der Version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract Version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -66,7 +51,6 @@ msgid "Contents" msgstr "Inhalte" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "In die OCR-Verarbeitung einstellen" @@ -82,7 +66,7 @@ msgstr "OCR Einrichtung" msgid "OCR documents per type" msgstr "Texterkennung pro Dokumententyp durchführen" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "OCR Fehler" @@ -131,16 +115,15 @@ msgid "Document page content" msgstr "Seiteninhalt" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Seiteninhalt" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Ausnahme bei der Verarbeitung einer Seite: %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Programm pdftotext nicht gefunden in %s" @@ -157,71 +140,79 @@ msgstr "Verarbeiteten Text des Dokuments anzeigen" msgid "Change document type OCR settings" msgstr "OCR-Einstellungen für Dokumententyp beabeiten" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Pfad zum 'tesseract'-Programm" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Pfad zum \"pdftotext\"-Programm (bereitgestellt von poppler), das benutzt wird, um Text aus PDF-Dateien zu extrahieren." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Pfad zum \"pdftotext\"-Programm (bereitgestellt von poppler), das benutzt " +"wird, um Text aus PDF-Dateien zu extrahieren." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." -msgstr "Vollständiger Pfad zum Backend, das für die OCR-Schrifterkennung verwendet werden soll." +msgstr "" +"Vollständiger Pfad zum Backend, das für die OCR-Schrifterkennung verwendet " +"werden soll." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Neue Dokumententypen definieren, für die die OCR-Texterkennung automatisch durchgeführt werden soll." +msgstr "" +"Neue Dokumententypen definieren, für die die OCR-Texterkennung automatisch " +"durchgeführt werden soll." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Dokumente in die OCR-Verarbeitung einstellen?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d Dokumente in OCR-Warteschlange eingereiht" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "\"%s\" in die OCR-Warteschlange einreihen?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Dokument %(document)s in OCR-Warteschlange eingereiht" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Ausgewählte Dokumente in die OCR-Warteschlange einreihen?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Alle Dokumente eines Typs in die OCR-Verarbeitung einstellen" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d Dokumente vom Typ \"%(document_type)s\" in OCR-Warteschlange eingereiht" +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d Dokumente vom Typ \"%(document_type)s\" in OCR-Warteschlange " +"eingereiht" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "OCR-Einstellungen für Dokumententyp %s bearbeiten" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +381,11 @@ msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +442,11 @@ msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo index 98fbe96d5d7a9b18aa609aa0403cc06dacda569b..b9336b9d91567fa42e2a2e093642c0889c64fa1c 100644 GIT binary patch delta 26 hcmcb~c9U&GDI>4Bu7Rnpk%fYxsg3$uA!l>k+Fh-k(H_0<|fALi~wpr2Yvtm diff --git a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po index 3fcac13e17..75b7776122 100644 --- a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-06-17 22:12+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,43 +18,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 #, fuzzy msgid "Document" msgstr "document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 #, fuzzy msgid "Result" msgstr "result" -#: apps.py:160 apps.py:165 apps.py:170 -#, fuzzy -msgid "pdftotext version" -msgstr "document queues" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -#, fuzzy -msgid "tesseract version" -msgstr "document queues" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -84,7 +66,7 @@ msgstr "" msgid "OCR documents per type" msgstr "document" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 #, fuzzy msgid "OCR errors" msgstr "error" @@ -146,12 +128,12 @@ msgstr "clean up pages content" msgid "Document pages contents" msgstr "Document pages content clean up error: %s" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -168,76 +150,83 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#, fuzzy -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "File path to unpaper program." - -#: settings.py:15 +#: settings.py:12 msgid "" "File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" "File path to poppler's pdftotext program used to extract text from PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 +#: views.py:26 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit all documents for OCR?" msgstr "Submit documents for OCR" -#: views.py:40 +#: views.py:38 #, fuzzy, python-format msgid "%d documents added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:48 +#: views.py:46 #, fuzzy, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "submit to OCR queue" -#: views.py:73 +#: views.py:67 #, fuzzy, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:87 +#: views.py:81 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit the selected documents to the OCR queue?" msgstr "Submit documents for OCR" -#: views.py:94 +#: views.py:88 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit all documents of a type for OCR" msgstr "Submit documents for OCR" -#: views.py:109 +#: views.py:102 #, fuzzy, python-format msgid "" "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, fuzzy, python-format #| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Queued documents: %d" +#, fuzzy +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#, fuzzy +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#, fuzzy +#~| msgid "File path to unpaper program." +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #, fuzzy #~ msgid "Delete" #~ msgstr "delete" diff --git a/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo index f5894d90b9a29f7c7c0793dc99093593f7339dcc..df537c466727b53b644ca88cdbf7183cea6be62a 100644 GIT binary patch delta 991 zcmX}rKWI}?6vy$?q>V2zNo!O8*4P(KO)EzGLK8Iw{~%I@IyiTbQbVbzAR7UuB>c3`aCY#5VRzyp}WX@};~ zBApZiO97;Kk3IMr`LWM@?89#u$1KOnVj=VpZY7_@b$AWaIFCE=85Zy--k_=p%5ji< zj>%m7iVo}BG98sNmT2vG1ht2VwpW`^gt^5dWYKkYCxlianv@sFPp9 zJl;h8-*c?1EdC2dJ_iALg pSn^!2QY}^d(fCYqY~sw+`H87o)vcZLU&Y581BuJg#)niU@(3*LQ)(~%PUnmEHAATb_zkPDGgGN7JdJG_!CJh9+i?YR@GS=L6K=ro{y4yow=gck za;0WeBNywL=*1Eo#4?Qg^B1v{@lAjJE*3Ig!4`al59^6S<`Za37w)T%5xST=ac{HH=^5CQK*od@RQ%Y`|I^ zLP_uf$~p^J#QW84xxfc_o$^1&9>&LsO5*}Dr5>V`{3%LCKd}L8)+HA_;(H1;^QJ$( zgw>31U_CCQB)Ez*vS&ZI5X*weKsvFC@j;Xyj-y0AkKK45oAEPhtYrU8>_!Rb4tC&6 zl#&N1$4(654h$n7bu6Fy%L|4X$(~um32NHxtF8eH7A=@Q;Eme{~ z3OnI#33#QgLym)YPGpWkd6khW%NYyNrB%xQ%ilxVX1YWx8A)STyz*}IM#(R!P8MAb zrd00#Mv~q?MJgm^msU)d(l^p~(WMGrtF9ZdCoMOzl(Cpz5sRC8+;GRVYirk>m@pk< z#MR@D9d(Rzi9Ojb(t1qCu^k;XT{mV$^_1yM#B57hwyQ^3C!)q9qpt0m=iSu3wT1kr zXLAGn?H!@!=1@zk4!3l19c~MU^9~;h9W|$7vS4Vx;hJ5#CET2PuA{59ZT4zldbT)s zDA;FM(Mco9Bj!ZnZ0<}(eV?J7N!QR3Qyb36SZvDXGX5`iV=bM;hhRzi$z&QvT-(F0 pX_=0W8_9s5B`h^yYttIBE!Qz3w(_E8T9!^_rv@c+e>Rn&`U^*, 2014 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Añadido" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Resultado" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "versión de pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "No encontrado" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "error al obtener la versión" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versión de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Contenido" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Enviar para OCR" @@ -80,7 +64,7 @@ msgstr "Configurar OCR" msgid "OCR documents per type" msgstr "Realizar OCR por tipo de documento" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Errores de OCR" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "Contenido de página de documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenido de página de documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Error interpretando página: %s " -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Si no encontró el ejecutable pdftotext en: %s" @@ -155,71 +138,73 @@ msgstr "Ver el texto transcrito de los documentos" msgid "Change document type OCR settings" msgstr "Cambiar opciones OCR por tipo de documento" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "La ruta de archivo del programa tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Ruta de acceso al programa de poppler llamado pdftotext utilizado para extraer texto de archivos PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Ruta de acceso al programa de poppler llamado pdftotext utilizado para " +"extraer texto de archivos PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Ruta completa a la aplicación que se usará para OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Realizar OCR a nuevo tipos de documentos por defecto." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "¿Enviar todos los documentos para OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documentos enviados para OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "¿Enviar \"%s\" para OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s fue añadido a la lista de espera de OCR" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "¿Enviar los documentos seleccionados para OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Enviar todos los documentos de un tipo para OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "%(count)d documentos de tipo \"%(document_type)s\" enviados para OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Editar opciones OCR para el tipo de documento: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Resultados del OCR para documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "Resultados del OCR para documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "Resultados del OCR para documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo index 30872c763cf3eb3525daf579d6dc2940f438b076..f196eb4bdc6ec2fe4b6f333fde20050ac4b93c11 100644 GIT binary patch delta 536 zcmX}oJ4?e*6u|M@nEL9&+7`6d){26HM3T@%iC>|L2rfRr4BDX}C@AQX%}s;`r6A~s z=-?s_qI)~J`2hqcXTkpo!9&mexh&dq(Uoee(o`mG|0-{s3(>95{+7-QobWzt`qz!axloWnKT z!3DfSda4(c^RHOK9?BQ_!YckC^F<-&xL*` z$fMkt|NjpeNSdd*hW4HaUA>W6F-*s>S8JBzIc9jHmu07J*jCMQJ=+bR^viU^KW?7+ R%|owt_PxU6AMD!rDRP^RWyy(67eKCoT%zS1h!|aTTa`8rPH7LMYlp5JkT`7iWD8nVk^fdw}! zat<5FPug_D_zDlPulDK^U8AxEw6X zt;K2_#{Qjn@L%lL>wZ+ZK3HirvkRl8g6kH%IaBn?7fP+4*=bgaa|O>eo?CX^)}(W{ zweDOUxl##g%axj6Hq}b!k25pm+qQjUpBtOlm&U%Zo3_2PX17ebVmr2-u1flrdBP4> fHf9pO--BF#(vqVHBI7IEj5~?O{##TtvkGa}#{Y%`fM|J@-A&Ir$yA6DoafZ&);{ zpKCMMbe-9Ld{EC9b_cX6(Z;j9?ZUv5ZaVUx2nUed4jlAE2ezPOE9Y=5hwX#RZv$leY@;j>0pS5vdEzdCSMl~{uTH!SI;sUDS zMO0!H)E2$Kt@ss7+8ckf**NxM3a4-YZ{t~fgQGaee(1q@RMd;8D3_4A>^1Jh_oyWQ zppt7NmND!>ZShI$$3lSo711qjD6*Fr#$VWuUF)h3_G6OqIV4GURU8wyG$C7U8>>Ux zQd6i|!g5QE>P#ysrg7iXWT&btVeFo6#ivrtDs`z9Xd86+R9c~$R)bn)h)b(i1+|#1}nzGl?R7JR2D?dE<>nl&aZ|j^_P3e}AXe=2`>?ryH(l9v6U4q01R2Z`XhK3Bu`Ewi)YO^6O1 z>XH=&Q5IeH)WN7j1eMV#qPzxON+`M%2t@_;{jJ;P!1#GHZ{N&se!uZf{m+K+_f?Co zDq0JD9sOc~Ql0p_kUzAqMM@pSZ@39N7AdtDPh%Sn;1;}r4fqU~;s-3oFSr8da^qq? zu4P<_Yn2*T+j%Hs;t;OFlURczx%u;0&G>R|K7$pEpJ51RPy$%IWPV{k_Aow#^>_{C za1W6)s9CJU&sfd=>K6|sOjHpz5ve*{i5QnbU zj^PmA!%bMm@#PMMP`*#1)cgucDeoh(sF&sBzlnz#CM4y*P*PK|T&ZrXMM>Ey+=>Pz zl{c{!U!cZ0tin}9FW)s`7|);tFp09^3zU7{9Q;?lUJ`6ic;-(>?JF13L! z>5~*oxun)|TKPwzBH2p@*$w1SQWD9kG!mw^(HrPe8b4iHz0_Y)D{T#3{skpf(j;O{ zmlFMJk{vF5_F_s+7dDcRO|N7~Zn`wdiez9rT}nlT=38S^%u6Ti)MU}^!n)xRS0^1i zq^+l|n@YLHiCLXAUfeimr*rvOFhP{MJcvcUx&VWh|3|h~+ zV>bWp|3bN6Pxy*^#@qeDpg*)j2SSl>yFbtt2$V#R`j5M#!?K`%zhm8q4h4d|3(N0< z9g%RjIY28p?4+!}*EosPh+{ny(R)og;pu(d(F2DM^d8l_`eob_bCT|eYrQ>Af6TZk z*Gad;yt7?=o`|O>9u@aYRQmc#vm+MtaG)ieMA diff --git a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po index fd803f0095..1ea91d8399 100644 --- a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Bruno CAPELETO , 2016 @@ -13,49 +13,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-23 19:55+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR - Reconnaissance de caractères" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Ajouté" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Résultat" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "version de pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "non trouvé" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "erreur de récupération de version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "version de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -66,7 +51,6 @@ msgid "Contents" msgstr "Contenus" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Soumettre à l'OCR" @@ -82,7 +66,7 @@ msgstr "Paramétrage de l'OCR" msgid "OCR documents per type" msgstr "OCR documents par type" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Erreurs OCR" @@ -92,7 +76,8 @@ msgstr "Type de document" #: models.py:20 msgid "Automatically queue newly created documents for OCR." -msgstr "Ajouter automatiquement les nouveaux documents créés à la file d'attente OCR." +msgstr "" +"Ajouter automatiquement les nouveaux documents créés à la file d'attente OCR." #: models.py:24 msgid "Document type settings" @@ -131,16 +116,15 @@ msgid "Document page content" msgstr "Contenu de la page du document" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenu des pages du document" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Exception lors de l'analyse de la page : %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Impossible de trouver l'exécutable pdftotext dans : %s" @@ -157,71 +141,75 @@ msgstr "Afficher la transcription du texte depuis le document" msgid "Change document type OCR settings" msgstr "Modifier les paramétrages OCR du type de document" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Chemin vers l'exécutable tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Chemin vers l'exécutable poppler pdftotext, utilisé pour extraire du texte à partir des fichiers PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Chemin vers l'exécutable poppler pdftotext, utilisé pour extraire du texte à " +"partir des fichiers PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Chemin complet pour l'interface utilisée pour faire de l'OCR" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Traiter automatiquement les nouveaux types de document par l'OCR." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Soumettre tous les documents à l'OCR ?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documents ajoutés à la file d'attente de l'OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Soumettre \"%s\" à la file d'attente OCR ?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Le document : %(document)s a été ajouté à la file d'attente OCR." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Soumettre les documents sélectionnés à la file d'attente OCR ?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Soumettre tous les documents d'un type à l'OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d documents de type \"%(document_type)s\" ajoutés à la file d'attente OCR" +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d documents de type \"%(document_type)s\" ajoutés à la file " +"d'attente OCR" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Modifier les paramètres OCR pour le type de document : %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Résultats de l'OCR pour le document: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +378,11 @@ msgstr "Résultats de l'OCR pour le document: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +439,11 @@ msgstr "Résultats de l'OCR pour le document: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo index 44b43ad1b3fab2e559da4dd84d8a57f83066c4e6..7f562198e559b8214e1de6cf00a2a30362c7b6d4 100644 GIT binary patch delta 86 zcmX@cdW?00CZnmju7Rnpk%fYxsgk+Fh-krj|_U}9jv72vNMlvylWKYNcRgUk+Fh-krj|_U}9jv72vNMlvylWKYNcRgUcI;!D?HfV2K(B!~sY|HWNujLYinB+q$@PaKkV) zCWsCu%3}Oq6LmBuEXGZp#2^!k3A2Oo`+I4;ymz0wYkTi=&t3mS-$trG+dcP;(nsA# zz1Czlg3nwulqI*>7~aQT{DsZv^_UG{5aW0b4`3c!@GknWh8_5@F@A;Jj6YzHS=GMM z2{EySyYMgW!A{*m9K|DyXK^nsU>G0c34DWb+`vV$8Xz5GjF(uf z7uV6p`>i=(HiTi+56)vh7Ldo5X%xT;DwQuA<4>p^e?e_v6SVpB@DVDNKky)~qf+VSoOri&qvj8z<}aWEpTSAY zBagkOQ6Q@!@~>2EFrl+*A%8mK3@YMD)ch4xsuz(=I>*2@af` z+TEc=oPA3!lXF}2U(;bKpDOzAwAFvRpStSryq}wDtG@BjP$D^)NDs$SgW17kE$Z(% z$;?0^ort8qNePVS%9X@)DOV_8&sB=0Y;3A{b*@w?VmVjJ7i$at>EL*-Fn=pI XKbMW=E44NM<@#vgw7dQ!)av>NzSCup delta 1387 zcmYMzPe>F|9KiAC`X|>+)6)K!`6~aV&bGUnp;-wA8nqQtQXYa~cia|scedG4>XHya z9y%pPQDk%o>e68)>d?VUbm|a62hmG}M3;&VQ4xKA+o%uTe&+XP_RahK-kZ7lUk#H> z)kQOk7NGB--z-q-5dQJ;L;G5&)F6JtM(in4su(X|7sjv!@8T|;$94D-OYsYC!XI8- z%AdCrS7Dt}ld6M@4Gaun4UXUzOnT$jv6lFjH~s`S63=58-=Qp^xa9xD21ba7umNwQ zB=;Q2L4Cq1{EW4{U;XByjDc#F&5Be#ZpI$umO6M2Tk^j_vIHVlgd`e zcFDxD82L~n8+oxbDQzpAHMe1fu9(qzS&E?czH zq&gh<{K0Hm8T2Hnd==$vNZF-HwtMIu^me*bGvAt8qxN{(%{?rf_0=bmmd=>&MeW+! zwX#{uF{7@|ICk7IQ@Os9w*>>1oDT9@6` zdutPUPfz1zL|7sh#6F5&MloE|B!@UN~o_n^GicRZi6r5!6ep0ONzB{7Sv)7o|H T309%J+^FA50oI0A=TrXxmsrXg diff --git a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po index d2dec0e5e8..be2a3cd60f 100644 --- a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Marco Camplese , 2016 @@ -10,49 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 10:33+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Aggiunto" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Risultato" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "versione pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "non trovato" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "errore recupero versione" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "versione tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +48,6 @@ msgid "Contents" msgstr "Contenuti" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Invia per l'OCR" @@ -79,7 +63,7 @@ msgstr "Configura OCR" msgid "OCR documents per type" msgstr "OCR per tipo documento" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Errori OCR" @@ -128,16 +112,15 @@ msgid "Document page content" msgstr "Contenuto pagina del documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenuti pagine documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Eccezione durante il parsing della pagina: %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Non trovo l'eseguibile pdftotext in: %s" @@ -154,71 +137,76 @@ msgstr "Vedi il testo trascritto dal documento" msgid "Change document type OCR settings" msgstr "Cambia impostazioni OCR per tipo documento " -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Percorso del programma tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Percorso del programma poppler pdftotext.usato per estrarre il testo dai file PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Percorso del programma poppler pdftotext.usato per estrarre il testo dai " +"file PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Percorso completo al backend utilizzato per eseguire l'OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Imposta i nuovi tipi documento per eseguire automaticamente l'OCR per default." +msgstr "" +"Imposta i nuovi tipi documento per eseguire automaticamente l'OCR per " +"default." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Inviare tutti i documenti per l'OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documenti aggiunti alla coda OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Inviare \"%s\" alla coda OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s è stato aggiunto alla coda OCR.." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Inviare i documenti selezionati alla coda OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Invia tutti i documenti del tipo alla coda OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d documenti di tipo \"%(document_type)s\" aggiunti alla coda OCR." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d documenti di tipo \"%(document_type)s\" aggiunti alla coda OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Modifica le impostazioni OCR per il tipo documento: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Risultati OCR per il documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +375,11 @@ msgstr "Risultati OCR per il documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +436,11 @@ msgstr "Risultati OCR per il documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo index a439c27e41a8fa0f653315246f90e541374caeaf..787a5af03cc331b360c3fade7a6e75b3a5ff00dd 100644 GIT binary patch delta 540 zcmX}oJxjwt7zgmHiEpVkQpGwrWOI-}5}GO;{Ck7w5{O-xUJ$Fy(Z>js96;Bvq0&N!U6fH;n6h4T3 zI0z459(Lg{yn-X}22R5JB!7eB$UhRlAnpAFD^MO_On{qE!gkC?X9_=>a0vF`4D7>m zEV_W0$V%d00TztsCH7$k$D30D6m$RuZGd4WQ-Yuu8H;<2VgLW2o2Sumhq!1Opfjj2R&pFSI!cwZcIYZ0 zZ@Eg)ske9-x=!?xdW>!dEOSBCOx0LabhBt`s+QL@X>~=dxqCd|zNao@X;CpW9rN<4 zp(}c!XcVF)At%@Ty4wzYrRE2AoBL5u*p@BZYjo@emUzvrsug_-8&Op}%#=NcyI#n5 MoFL@8(S!K<3(DF~F#rGn delta 622 zcmXxg%PT}t90%|-53d>T#-k`FTSj-h$|Tt+iy^{-5{EhNT&{C<=guh7q$pMvH%qec zAJ};;lwzS|!NNlR09jcn<@>vH{pxo==lt%y=lst3jyy#R@ActhhNwffBF~Xc$j$&B zhyz#x4`DAnf@SaymcvKi7g&Y)yYDBg#ry}3!Dx`N5S)b(I1git6<7v?QWSPzGu(p> z@B~)C3wVu1ZXo@*6)rZi59z;4-&;rxJ-}-C45^_HfBprhF#mU(s^FmS;JCHSq@*Zaw_ef1;?uT, 2016 +# Johan Braeken, 2017 # Lucas Weel , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-01 09:05+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Toegevoegd" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Resultaat" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "niet gevonden" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "fout bij het ophalen van de versie" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +49,6 @@ msgid "Contents" msgstr "Inhoud" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -79,7 +64,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "OCR-fouten" @@ -105,7 +90,7 @@ msgstr "Documentversie" #: models.py:34 msgid "Date time submitted" -msgstr "" +msgstr "Indientijdstip" #: models.py:43 msgid "Document Version OCR Error" @@ -128,16 +113,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +138,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Bestandspad naar 'poppler's' pdftotext programma voor het extraheren van PDF " "files." -msgstr "Bestandspad naar 'poppler's' pdftotext programma voor het extraheren van PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo index e08822a63bff3220463f0ac10addfb3f639714a6..42bc015d86f0f7c47beaec7a1bb8d2dfa2e9de92 100644 GIT binary patch delta 630 zcmYMwzb^zq6u|LWcYXxxXX9s#f;h=0J8SQpbxTEcg+!^4EktwH#YG_@S1BoMRQ?PS zErnv~`S!77uVn5ztC%#}CzTpslU=Ox% zc!G65%D$mHX{?A{xYO_eyNQoc8aqR2=mOUD)r2wm&ALTQ0faE;x?*FV?N3k z6;U2oM~VovF0Ucj>{*jY9+Ny*`9aYyyF$M$p?8idB}`P z#&Hj{ZThxS){@B3u+nPSbbFR;I` zFS7dc;AZJQj*=hZ2=}WO1k&ki zlrQiBrNeJHhCj;u4?5&yyq!B#h%#vt<%0XjBkCc}qCsi+G0FhX%ls|M``@D_fh_q% z46bI12iB53C8csrAHA}=mKSGPn(20&=ZR_S%{bdgQlm_o>$S9JTB_Sx%hNpG&j0;a zj92d1i;m|xeqFnMaCNa*ugp<#>yGbhcPa21#nZ}8QLCq-t`4-hZkpW2QA%ASCcr4OcLoWW>`;@Nn*WgqE5WaK&cv3BmI9I^%rt^Z%Y6G diff --git a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po index 0976e91217..9d33d0836f 100644 --- a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -10,49 +10,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-22 07:14+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Dokument" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Dodano" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Wynik" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "wersja pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nie znaleziono" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "błąd pobierania wersji" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +50,6 @@ msgid "Contents" msgstr "Zawartość" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Zgłoś do OCR" @@ -79,7 +65,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Błędy OCR" @@ -128,16 +114,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +139,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Dokument : %(document)s dodany do kolejki OCR" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -242,6 +227,7 @@ msgstr "" #~ msgstr[0] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_0" #~ msgstr[1] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_1" #~ msgstr[2] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_2" +#~ msgstr[3] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_3" #~ msgid "Entry: %(entry)s was re-queued for OCR." #~ msgstr "Document: %(document)s is already queued." @@ -254,6 +240,7 @@ msgstr "" #~ msgstr[0] "3d821f1679e8cdd3b5844ba5a01a969b_pl_0" #~ msgstr[1] "3d821f1679e8cdd3b5844ba5a01a969b_pl_1" #~ msgstr[2] "3d821f1679e8cdd3b5844ba5a01a969b_pl_2" +#~ msgstr[3] "3d821f1679e8cdd3b5844ba5a01a969b_pl_3" #~ msgid "Submit the selected document for OCR?" #~ msgstr "Submit documents for OCR" @@ -389,11 +376,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -450,9 +437,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo index a6ee6111142610fafdc1c5a0d60c3a2975553cb8..5685fb3346880aa00296f37fd423458c38401403 100644 GIT binary patch delta 291 zcmbQo`JTQ0o)F7a1|Z-7Vi_Qg0b*_-o&&@nZ~}-;fcPX3vjg!zAO@*rV`O091=9RL z+80R60%>L-oeiWVfOI~Po&dxhKn&6^36$gn(tbdi3rI%*X+Z`CH-=;&BLXN;3Z#LE z;T(_vIph+M2I>V{2C^6g*npT7%z_XsK#B>7nJ4oy9-jP<(Z|$W*T7WQ$U?!;)XLOA z*TBTUfGfaXHz>6%vp6$9PuC@}B-Kj6$iNV&&P3P9P{Gj5%E)YTJyR`@PhwtrX<|B1 Qx}aq8Z>H$Y$;?cQ0Q_br^#A|> delta 444 zcmY+K9_R20-GLW8#1Zm{t<28_cW|C} zg-h7QWxPOoj(f5ESMI{@2VJ?JaC4@~%(xQ^H^3+2>R}jYV`am1bs}0x!y2njtvpff z&au(Ls!m6>L2BIW8Lh= oO;wex!N|{en|gR_q|$YxZ97hk*k_E}N|bCRc0Bv<-ekJ?23l)R_W%F@ diff --git a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po index f627db3c80..3003c24c2b 100644 --- a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "Versão de pdttotex" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "não encontrado" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versão de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Conteúdos" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -80,7 +64,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -155,71 +138,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Caminho para o programa pdftotext de poppler, usado para extrair texto de ficheiros PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Caminho para o programa pdftotext de poppler, usado para extrair texto de " +"ficheiros PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo index dc5993cdb8642038780f7448baca3da9015aa92c..7eba09bc6d53eb1c598327412883c74be9ae0fe8 100644 GIT binary patch delta 1032 zcmXxjO=uHA6u|MmmbNoyOewYFVtHI|r~tWB&@{6xG&!PqNu1rig*w&J?O=QdJq&_y(koV^Cte^CO$Iz+nJD=d2c2Q)=W?3TU+CG zAqHscX_E~iyYR7(2XWI7IgGck9~W>1`Wr=tuo7cpo{Hzr`~^t>*&A2 zE|H3SqS~ zh~uc4U&cPXfx7Y6Ska6Zc}e3R9LB+Bksi$9alC@N@e68+J2;n3XroSe0{KcVVn5EH z9@SIS1m;mQ|A1Pd2oFu9FHHUQ2Rj*v;VINhIEyX#pgul_y5J9_lHM_JO}x;FIBMyv zb-j%1uioY;ju(37dZ#sWo!g=XWUQ7E@7_kVOd5J0GzMsz0Y~U%1hR#u=h{Zo>UpI{ zt(b;Z;(vtQ=SI6u;$3Bx%jDe_O;i6D22Dc`thKsiJn~iN{O=pw`9LrCg)JGrThb+$ZqV8s0uJXswzCynaQP}KJi)Z%HA delta 1425 zcmYk*OKeR+7{KxA1AU-c)U!J11MRtPuePXqKNnu{Xrctud#Be;+H;z7M`J@1u@N>j z6;_0mU6YCskr0X4u&@&%5xNiyBz7$PzjLqFnKNh3eBaEyyyTM}`dC#wq9`%y zV(Qfbr8eT9LN1gaMM~|)pIC?Mi7E}Vyb`Tk2-P5XMj|31#5{Tvhc7G(ibrsgL0a3AeGSc^AMf_sR> zpvJKhzhX7tSHHO_qoaytvm#Z4b8tQKNbSeXcoa)<1Z(hi-ly0=`#sLbLc*Sji*Plr z!ba>y3GgDyJU6kD@2k6VgAec#>3@maX%Dd~jW19Z_=St4{5!_6u3V`$Jc=^m6_jx! zC?C3$?|+Dz_A``>d_oDZU^?HBJ*(zs8LmTF$Z=eb{V0)LLwVs5w&QDDhsEsM65NP~ z@dP&ED0bopl)YX+I_j|%W!`RN3Uy&7`LE;V3LUcNqbQNQLdn2ezWL&MJO5u=B6j>1Cq8DTlk|D_k zyAx$e_F5Jre-uf3j4DMYUP0wJMCSyeXjh?RTh5qAl~ODFFMkgy3#bx}tXK-$6z!X& z_+OFiaNwhZDG~l(BtrS8$YCqWKd3@Uc{5cq#*XAl{fcC8)^}rfif$LyWcsWgFz$?Y zfp#{VwV_EmJrD-z(DaXWPJL6b-G*Th>a=w(ICCj zo8pwRy(a6tBcbuLeZ~c0hu+$k@vYt!+Ke+<-D#w`CA#+J`eMnTKh_g&;#EI=)}*aB z{G{aAa9wG4#lM~oJ>X7lJ2ZB_)D|sIS#6TUACQgEXvn3&OlD>5-Sl{2*G{sbO`t=Y pv^_S|CW`vSy&$IcbJf;Q2EGeT%BU_xm@&-#d{f^%n=U*2Mq- diff --git a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po index 7f235b14eb..99f16696aa 100644 --- a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 22:54+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "Enviar para a fila de OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "adicionado" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "resultado" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "Versão do pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "Não encontrada" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Erro ao receber a versão." - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versão do tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Conteúdos" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Enviar para OCR" @@ -80,7 +64,7 @@ msgstr "Configurar OCR" msgid "OCR documents per type" msgstr "Realizar OCR de documentos por tipo" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Erros de OCR" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "Conteúdo de página de documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Conteúdo de páginas de documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Erro interpretando página; %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Executável pdftotext não foi encontrado em: %s" @@ -155,71 +138,73 @@ msgstr "Ver o texto transcrito dos documentos" msgid "Change document type OCR settings" msgstr "Alterar configurações de OCR para tipo de documento" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Caminho de acesso para o programa tesseract" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Caminho para o programa poppler pdftotext usado para extrair texto de arquivos PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Caminho para o programa poppler pdftotext usado para extrair texto de " +"arquivos PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Caminho completo para o servidor a ser usado para fazer OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Definir novos tipos de documentos para realizar OCR automaticamente" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Enviar todos os documentos para OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documentos enviados para OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Enviar \"%s\" para OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s foi adicionado à fila de OCR." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Enviar os documentos selecionados para OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Enviar todos os documentos do tipo para OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "%(count)d documentos do tipo \"%(document_type)s\" enviados para OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Editar configurações de OCR para documento de tipo: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Resultados de OCR para documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "Resultados de OCR para documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "Resultados de OCR para documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo index b9eb15eec2295753146a40c384b7f6a78258b0e3..ba02e81321a40766c882afe6191aed1f019b1436 100644 GIT binary patch delta 296 zcmX@h^@OATo)F7a1|Z-BVi_P#0b*VtUIWA+@BoNSfcPO0vjedhBLf2mkd_0|Aa&|M zS^!9!0%>0$?FOWof%Ft0Ediuw0O{jEyb*{&=2QYDL3XW!&~XeqfD9g>z#$+l2&B&g z=~y8B5J&?NgFOoag94Ct2GT$?7}$Uq27p3f$ABCL10X%DKn${kX|gWkmC3G5KD_3- z2Bx}377B)@R;C7%=P^lxL`-yz3>6H`tc=ViA7kp^_eso4FHKBOwNfa`j}P*n?8_Xz Jc?YutBLExTB-{W1 delta 530 zcmZ9{y-EW?5C`zRBx;NXHQ)!Ruwr2q%q1~_>s0I#1W^k?OLu8RN$TQ>^@(W2(uox>t z8xFu0OhXCj&M_Q?=dcd1VG?%W6#Rta&`K~i2qz)^e=fGoN;o{AX${h#Y$|SC=~;ur zsBc5M*nqn*gf!>{a`*;k;Wwm(Ci)o5!G)d<#27Y&L`yd^Y%xC2X7m~gdL0c!fA_`x zkOpBt#xCDqSB2I}b59uKOOGE39r#KzsSIzaP&V0Nvt^VKC+7E?5kVld+xV?Sw^lt{ z$=i0mSmK4Evs8&PiD^^{<-A?xcFD1;Q8955JtcNVYOeG`*AoucYHwrxZa%qeZ3(Sh pE%<@U)&Ap+FNGFvJTH`j$&kC)CNSK)KMj2Ie<$kM{JRvDegH8PVtxPs diff --git a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po index 542997cb74..d5d2a11564 100644 --- a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 13:17+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext versiune" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nu a fost găsit" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "eroare la obținerea versiune" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract versiune" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "Conţinut" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Calea de fișier pentru programul pdftotext folosit pentru a extrage textul din fișiere PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Calea de fișier pentru programul pdftotext folosit pentru a extrage textul " +"din fișiere PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +374,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +435,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo index 49e7ec9354fb865a542c2c0b3cbd9f24db5ec0a0..53b2e22a0b4d0c058b4df40711054f4bb3f27126 100644 GIT binary patch delta 1029 zcmX}rKWGzi6u|MJk6QnKf>Mb_ujj;;cxN!r=at` z5Qn(-b6x8YIf2hQxe*PA$Z33tL-+-^q01>UfELxT=oPtu%NW#!-wf5^#KOI7+k^-+h4>Qrtv#!bA)$_OkfN3M1N2pG(;WrBdcqAPJdbP~=}XaTN;~r(?9XOE`~B)Cc#H4*JtB18ri5_6()A zPpAundTWPfgXG$wHP@cjlCgh#gKoLJ)iliQ?q*|lXg_G^SE041gm&|R#JTjedNM7K zW{}EAKbHpC{~uk}3rDv;#BODkX0p3Qzcu|Xv^6#K+X=LOI#xPctFAX4*19|IKW-$_ zMk*UgrgQ0pHQ?zx#>$A1N=A~ITq-l1AiR0AQZ))?bD?tGtd`2T$V}f;puRIr9QSYRy)d)15{{WmRYuf+- delta 1413 zcmZY8TWkzb7{Kw{_@@%EX;0~<84qS*=aUKp~E`G#3{DPD5N4lTK z%d_Yg;%ue5R27Z!3^d?WY{TgoNsphvY4k6o$8X~#`a>ANS11b@larcQ$0qs>Sb~>O zg1e8zpgv(Ce#U8hU;Uy{z(5hpW<{zPr{HqrmTJaTxCQg^A{OKIv`=vX{dYJ6GYNYF z&c-FU7#HF;lmL&R%yR_``M$a-4eZAv(*6=<{4J|$!>wZ($6l0_KgUM=iJNfkxYU9# zr@ezZ<3lK!`ijjcX>NgyI3I6d*D@L}Xw=~!oQX9oUsBeLK0J&ico(YSXqYTMLYL32VVO{0 zV>o8L7V!DGw^a8BwSd1q7_9VB3L1^Lqqo{dG#)V=%dXcV;fPfoGos=4?!LU%?xOr{ z;~I@@>ppRxc&A6hP4rFd&))C$ zc&FS4ZlC+e?M*%Y0C?vy^PF@C+^5`S=$<>^9r2DzM=>^_ap`p*@)dbxP>nv|ozq5g JqyEc@`U@P&{g(g$ diff --git a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po index 858dd949f5..460ed583d0 100644 --- a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,49 +9,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-13 21:33+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "Распознавание текста" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Документ" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Добавлено" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Результат" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "версия pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "не найдено" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Ошибка при получении версии" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +49,6 @@ msgid "Contents" msgstr "Содержание" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Отправить на распознавание" @@ -78,7 +64,7 @@ msgstr "Настройки распознавания" msgid "OCR documents per type" msgstr "Распознавание документов с определенным типом" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Ошибки распознавания" @@ -127,16 +113,15 @@ msgid "Document page content" msgstr "Содержимое страницы документа" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Содержимое страниц документа" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Ошибка при чтении страницы; %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Не удаётся найти исполняемый файл pdftotext: %s" @@ -153,71 +138,77 @@ msgstr "Просмотр распознанного текста докумен msgid "Change document type OCR settings" msgstr "Изменить настройки распознавания документа" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Путь до программы tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Путь к файлу программы pdftotext Poppler, используемой для извлечения текста из PDF файлов." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Путь к файлу программы pdftotext Poppler, используемой для извлечения текста " +"из PDF файлов." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Полный путь до бекенда, выполняющего OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Задать новые типы документов для которых распознавание будет запускаться по умолчанию. " +msgstr "" +"Задать новые типы документов для которых распознавание будет запускаться по " +"умолчанию. " -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Отправить все документы на распознавание?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d документов помещено в очередь распознавания." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Отправить \"%s\" в очередь распознавания?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Документ: %(document)s добавлен в очередь распознавания." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Отправить выделенные документы в очедерь распознавания?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Отправить все документы определённого типа на распознавание" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d документов с типом \"%(document_type)s\" помещены в очередь распознавания." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d документов с типом \"%(document_type)s\" помещены в очередь " +"распознавания." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Редактировать настройки распознавания для типа документов: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Результат распозанвания для документа: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +381,11 @@ msgstr "Результат распозанвания для документа: #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +442,11 @@ msgstr "Результат распозанвания для документа: #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo index e35991b20c225299d531d54793e0ba80eb1c2671..4d51beeefaf98f4a0235aba759128a6f301bef3d 100644 GIT binary patch delta 290 zcmZo=+s;;hPl#nI0}!wQu?!IV05LZZ*8njHtN>yYAYKW?>_B`Eh&h1x8I*nxqUDx<U7DMkSHcjI MS)h;toy0FC`Hr2qf` delta 227 zcmdna*2-3YPl#nI0}!wRu?!Hq05Lld=KwJXbO5ml5O)GGNPHg|zFDpb#gJf`G}ln9L^LlbpmD#A~K& zXsBystYBbdWokA#o>3YoVqmOmWT;?dXk}$exJm=^wPxi UR4awD%=j?B$vjNalgpXf0b~mj%>V!Z delta 67 zcmeyz`j2&kFC(v+uA!l>k+Fh-k(H_08Vx, 2013 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "Nội dung" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -384,11 +367,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -445,9 +428,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo index 922e7f38d74bfd82ace5a9d09cc08f377ff52682..8e35b30a1ddbff4a3ae4d59fa9909046ddad2167 100644 GIT binary patch delta 296 zcmbQkb(*98o)F7a1|Z-BVi_P#0b*VtUIWA+@BoNSfcPO0vjedhBLf2mkd_0|Aa&|M z+80Qh0%<)U-3+9ef%GOIEdivr0qH3~d>)8F=A-~6*?{y+2pz|;0Lb703M>cGPC$AK zkk$gy-=X44EDQ|NK)ybZ2AY8afI?u$fD8lykOP6*7+8TAv z>Ka)n7@As{8cg29Bn=WV(KRwuFf_9=GMoH_sg>U+F)zI|F+J5vp(-QZ*>7?NbM)rR H%sh+$@Hr&q delta 528 zcmYMvze@sP7zgmz)6z_lgdiyB=HTkyQyYv5vY{c%8e2m2^>Vq3^VOooC8-D$(SpFg zAR2<8ptUh*X|ATzf+nYihQ6;S_Q1pE{q?-h`#$?x{_=a+b3qV6-TUH^CuXFA5b*v!VvuJ8yF%4ZOAAROTF-uIcFdW#BW51--(7e z-+KsfegwVsw{C)2mTAd4<2-NZa*0`mylD`_l zyttCFd4*C%i^!@L$5@T3sz0@zRv+xzW#{a)-MX<)9>1Dbq}{r, 2014 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "扫描输入" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext版本" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "未发现" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "获取版本出错" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract版本" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "内容" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "程序pdftotext文件路径,用以从PDF文件中提取文本。" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "用于执行OCR后台应用的全路径。" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -384,11 +367,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -445,9 +428,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/tests/test_api.py b/mayan/apps/ocr/tests/test_api.py index 1194a76748..181ff14ca1 100644 --- a/mayan/apps/ocr/tests/test_api.py +++ b/mayan/apps/ocr/tests/test_api.py @@ -6,21 +6,23 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from rest_framework import status -from rest_framework.test import APITestCase from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) -class OCRAPITestCase(APITestCase): +class OCRAPITestCase(BaseAPITestCase): """ Test the OCR app API endpoints """ def setUp(self): + super(OCRAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -41,6 +43,7 @@ class OCRAPITestCase(APITestCase): def tearDown(self): self.document_type.delete() + super(OCRAPITestCase, self).tearDown() def test_submit_document(self): response = self.client.post( diff --git a/mayan/apps/ocr/tests/test_parsers.py b/mayan/apps/ocr/tests/test_parsers.py index d222711167..e846ff5271 100644 --- a/mayan/apps/ocr/tests/test_parsers.py +++ b/mayan/apps/ocr/tests/test_parsers.py @@ -52,6 +52,8 @@ class ParserTestCase(BaseTestCase): @override_settings(OCR_AUTO_OCR=False) class TextExtractorTestCase(BaseTestCase): def setUp(self): + super(TextExtractorTestCase, self).setUp() + self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -63,6 +65,7 @@ class TextExtractorTestCase(BaseTestCase): def tearDown(self): self.document_type.delete() + super(TextExtractorTestCase, self).tearDown() def test_text_extractor(self): TextExtractor.process_document_version( diff --git a/mayan/apps/permissions/api_views.py b/mayan/apps/permissions/api_views.py index 47f2ea7c48..c6777bc76c 100644 --- a/mayan/apps/permissions/api_views.py +++ b/mayan/apps/permissions/api_views.py @@ -1,14 +1,9 @@ from __future__ import unicode_literals -from django.shortcuts import get_object_or_404 - from rest_framework import generics -from acls.models import AccessControlList from rest_api.filters import MayanObjectPermissionsFilter from rest_api.permissions import MayanPermission -from user_management.permissions import permission_group_view -from user_management.serializers import GroupSerializer from .classes import Permission from .models import Role @@ -61,54 +56,6 @@ class APIRoleListView(generics.ListCreateAPIView): return super(APIRoleListView, self).post(*args, **kwargs) -class APIRolePermissionList(generics.ListCreateAPIView): - """ - Returns a list of all the permissions of a role. - """ - - mayan_object_permissions = { - 'GET': (permission_role_view,), - 'POST': (permission_role_edit,) - } - permission_classes = (MayanPermission,) - - def get_serializer_class(self): - if self.request.method == 'GET': - return PermissionSerializer - elif self.request.method == 'POST': - return RoleNewPermissionSerializer - - def get_serializer_context(self): - """ - Extra context provided to the serializer class. - """ - return { - 'format': self.format_kwarg, - 'request': self.request, - 'role': self.get_role(), - 'view': self - } - - def get_queryset(self): - return [ - permission.volatile_permission for permission in self.get_role().permissions.all() - ] - - def get_role(self): - return get_object_or_404(Role, pk=self.kwargs['pk']) - - def perform_create(self, serializer): - serializer.save(role=self.get_role()) - - def post(self, request, *args, **kwargs): - """ - Add a list of permissions to a role. - """ - return super(APIRolePermissionList, self).post( - request, *args, **kwargs - ) - - class APIRoleView(generics.RetrieveUpdateDestroyAPIView): mayan_object_permissions = { 'GET': (permission_role_view,), diff --git a/mayan/apps/permissions/apps.py b/mayan/apps/permissions/apps.py index 9cc06178c1..2547e0aaf6 100644 --- a/mayan/apps/permissions/apps.py +++ b/mayan/apps/permissions/apps.py @@ -17,8 +17,8 @@ from .links import ( class PermissionsApp(MayanAppConfig): + has_tests = True name = 'permissions' - test = True verbose_name = _('Permissions') def ready(self): diff --git a/mayan/apps/permissions/classes.py b/mayan/apps/permissions/classes.py index 2eb6031dec..32cf056d67 100644 --- a/mayan/apps/permissions/classes.py +++ b/mayan/apps/permissions/classes.py @@ -66,8 +66,9 @@ class Permission(object): if permissions.stored_permission.requester_has_this(requester): return True - logger.debug('no permission') - + logger.debug('User "%s" does not have permissions "%s"', + requester, + permissions) raise PermissionDenied(_('Insufficient permissions.')) @classmethod diff --git a/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo index 5643d71d86f2c6f35aa4399d5ea355ea440ff77b..b666fbc87c0f61df211c4bd12db2393720eca734 100644 GIT binary patch delta 65 zcmaFH`HXWz2otZlu7Rnpk%fYxsgk+Fh-k(H_08Vx, 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "الصلاحيات" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "صلاحيات غير كافية." @@ -47,7 +49,7 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roles" @@ -59,27 +61,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "اسم" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "مجموعات" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "منح الصلاحيات" msgid "Revoke permissions" msgstr "إبطال الصلاحيات" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo index a26fbb3a049aa20342705eb12f03560c483ee52c..74647e8282cd9b13760af00a7675fc33ef6370e0 100644 GIT binary patch delta 65 zcmX@Yb%bj}J`=CGu7Rnpk%fYxsg7|M3 Tsa6U}>67J|qc^uR?_~r4G)xj5 delta 65 zcmX@Yb%bj}J`=B*uA!l>k+Fh-k(H_07|M3sa6U}>6_b__b~zhFj*2K diff --git a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po index 7bfa05a31b..283defa46d 100644 --- a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Iliya Georgiev , 2012 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-06-13 13:45+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Разрешения" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Недостатъчни разрешения." @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Роли" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Име" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Разрешение" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Групи" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "Издаване на разрешения" msgid "Revoke permissions" msgstr "Отмяна на разрешения" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo index 1bda6dbd5bae37cc24f08604473362c264bcf505..af040b8a98ffb9b44b7e3016cd347b973ec3563e 100644 GIT binary patch delta 68 zcmbQtIhk`q2otZlu7Rnpk%fYxsg7|M3 Wsa6U}#qmy#ljWGBH+M2~F#-TY-Vwn7 delta 68 zcmbQtIhk`q2otZFuA!l>k+Fh-k(H_0, 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Dozvole" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Nedovoljne dozvole." @@ -47,7 +49,7 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Role" @@ -59,27 +61,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Ime" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupe" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "Odobri dozvole" msgid "Revoke permissions" msgstr "Ukini dozvole" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo index f36971500f69590f50ab042bb746b4a60ee0d6de..d7f33d648ab1844d9b1c0772338dd4f6f9472717 100644 GIT binary patch delta 61 zcmaFC{DOJHB3^S{15;fi3k5?{D^r7s>!m>gCb~w33WjD@MrISQSMvBI=B1Y=rl(pd Pq$E!EXN;b_ozV~gEB+F0 delta 61 zcmaFC{DOJHB3?6HLqlC7V+8{vD^s(H>!pDL2FAKZh6+Z8RtClsuUAfvWsKtSNz6+x QO-xUvPcRf_S2qFr4QUq_c2T?ETQ4d}Pzi)}+kj-ayc{B6g+ua=ak!gJzO05fw zgSf_U4Q~_TDBRJ3Ka58(10TcP@D;oWx8NW=(ur6&1G`|UeP4zt++T&g@H$LG7w&`_ z?h>LUZezj=*WnPn2lv4Z$P3=UZulPZh9BT|_z{l4Z;%i84f|jZg7(5;$opm?@0*AC zi8=gnTp4C?zNlc5WCnR74WFP3O^6Id7Q5_+r=f<|ASdt+a%VPS5Bv_fBR?VU!&!5s zeURhFAt!bi?t!zg8|RA(CfwQ^kYB+n6}dizb=Q*7o|=rGcDx)} z&}5@(odRVVuC=cAi*(4wQRmzK6WOUkHaA1lg<@eUE~iG%;YmK5%Tw-naXNo&3Zu6y zZJ51cq;EYLYEz^O%E}crEZ8PY9fYFK1B%%2n`gZ+6bl7;b?^yl$;<@$;vs&z$Ylu^}s=sJ<_ KB+Yrzb@vZ}K)AjD delta 838 zcmZ9~%WD%+6vy#vUe#3FG`?$vq2QvJk(r4W9K?#Wir@?BMzNGB4rw4sArrgM#o!+x zsDtRbh_0#|5jUb6L7|&26rtk6l|rctDdIx(`%6<14-B7sGxwf*?#X;ByzhxW6*G4Y zv6p9nC$qtrAzVhqt&}kZyp7v&4tw!AZpJs5!*`weN6aw)ig{eYEdInk{Eb_&FWuf3 zn|%z5{7}N(ID*=65xZ~_m9T=Fu!c%Ji`{qwci~M`ArDdc=281zq1L@dU1SlJ|1;)I zY|Ix1kGbu4RAqC#?Z;=R0~b*nmvAF4qdKsPDkRIPx>*6Weh^hq33uWc>LL@U4u+^s zU&n6FH}@GR(F0V)Pdf9bs20D(9$dgZxYT+71J$t<*{Q`0;1(Q2t#^`v}-vXEOzK6Kst1Mv-J-~a#s diff --git a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po index 1ff5bc00e7..9bc9a4b988 100644 --- a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po @@ -1,31 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # tetjarediske , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 23:14+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Berechtigungen" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Unzureichende Berechtigungen" @@ -49,7 +51,7 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Rollen" @@ -61,27 +63,27 @@ msgstr "Mitglieder" msgid "Role permissions" msgstr "Berechtigungen" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namensraum" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Name" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Berechtigung" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Bezeichnung" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Gruppen" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rolle" @@ -109,6 +111,23 @@ msgstr "Berechtigungen gewähren" msgid "Revoke permissions" msgstr "Berechtigungen widerrufen" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" +"Komma getrennte Liste der Primary Keys der Gruppen die zu dieser Rolle " +"hinzugefügt oder ersetzt werden sollen." + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "Keine solche Berechtigung: %s" + #: views.py:45 msgid "Available groups" msgstr "Verfügbare Gruppen" @@ -127,7 +146,6 @@ msgid "Available permissions" msgstr "Verfügbare Berechtigungen" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Erteilte Berechtigungen" @@ -164,8 +182,10 @@ msgstr "Berechtigungen der Rolle %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +201,17 @@ msgstr "Berechtigungen der Rolle %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo index 09cc32a000aa6c6e411a40986bd510e1f5b66bc5..85a77117c04019f3bc01fcfe291310692561f2f9 100644 GIT binary patch delta 26 hcmX@lex7~9A4XntT?12HBMSvXQ!7)0&74ff7y)tx2XO!Z delta 26 hcmX@lex7~9A4Xm?T|+}%BVz>vBP&z0&74ff7y)sL2WkKS diff --git a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po index f62e6c72fb..4072b1bb13 100644 --- a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-02-02 18:18+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,11 +18,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissions" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Insufficient permissions." @@ -48,7 +48,7 @@ msgstr "delete" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 #, fuzzy msgid "Roles" msgstr "roles" @@ -63,30 +63,30 @@ msgstr "members" msgid "Role permissions" msgstr "role permissions" -#: models.py:18 +#: models.py:19 #, fuzzy msgid "Namespace" msgstr "namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "" -#: models.py:46 +#: models.py:45 #, fuzzy msgid "Permission" msgstr "Permissions" -#: models.py:67 +#: models.py:74 #, fuzzy msgid "Label" msgstr "label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groups" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -114,6 +114,21 @@ msgstr "Grant permissions" msgid "Revoke permissions" msgstr "Revoke permissions" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, fuzzy, python-format +msgid "No such permission: %s" +msgstr "role permissions" + #: views.py:45 msgid "Available groups" msgstr "" diff --git a/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo index 165c15ebb312560bb874821fc655848c4be215cb..b2825f834b6369417c211a23ab5f383070617c7b 100644 GIT binary patch delta 716 zcmXxi%}X0W7{~F+W|KBHCiOLMO<4~fDh-W^K?(f}#1}mD)RWZ323jLsgGEF|&|ADL z9tFLKXWN?xy;+2UhaP$oFCs!bNG~mv((g~!VK<+d$;>nJ%S|KbKYmX z@sKeu@Gq+DTE;xZJ?z0lOyW0;<4=s@RnTssP5TeF;XjOEENn~%Cb0|qka?@7LZy?A z*O`{#BqP zHpx1Rns~r2y735=@i{8MC2D~dCh%9#w&+x5G1SKMsEqqj@rIGdj0Wu~OtHS1q4F4) z12>SzZ1JO=Zlf~WM+H7cjXw?g&x8IO)c89jIb$(c8;qh(tOwbvd5P^#Z7bIADP)~gPE6I}8ANold1-?VOeC+d#Zc=z6!cRzis zd0wqPS9SV5zY#ubA1)Lth0=&KSgBTu{+OLp&rqRMc8cX{vFtC{OYyPkx!K0_tXp+l g&%d?bet8oa2&DQ3u0+@W0|U)d-v9sr delta 690 zcmX}qJ1hi29LMpo?mW&p&igzPAqtO;z4It85sgwpBnlGbip%8^IfX|-ajsHH$Wn<$ zAyFtqLq#NnM59mUpMQtGeWas5_7sE&%ZROkCw z^go1L+o}#Jl%`kFAEHy&ei(Pc>I`b9IMUyYG!vFnxquq|X, 2014 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:40+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-23 03:03+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permisos" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permisos insuficientes." @@ -49,7 +50,7 @@ msgstr "Borrar" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roles" @@ -61,27 +62,27 @@ msgstr "Miembros" msgid "Role permissions" msgstr "Autorizaciones por rol" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Espacio nombrado" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nombre" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Permiso" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etiqueta" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rol" @@ -109,6 +110,21 @@ msgstr "Conceder permisos" msgid "Revoke permissions" msgstr "Revocar permisos" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "No existe el permiso: %s" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponibles" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "Permisos disponibles" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permisos otorgados" @@ -164,8 +179,10 @@ msgstr "Permisos para el rol: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "Permisos para el rol: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo index 0d1852019473be39b90db6c49b1842cd1b8d180b..e2ac0e1df20945c724a31ae6298f98b7d8e3097e 100644 GIT binary patch delta 65 zcmX@leV%)R3p1~|u7Rnpk%fYxsg4 delta 64 zcmX@leV%)R3p1~ouA!l>k+Fh-k(H_07|M3sa6VUiJK!?$`}C<1Q87Y diff --git a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po index 390ff7b3c3..04722bc001 100644 --- a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mehdi Amani , 2014 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "مجوزها" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "اجازه ناکافی" @@ -48,7 +49,7 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "نقش ها" @@ -60,27 +61,27 @@ msgstr "اعضا" msgid "Role permissions" msgstr "مجوزهای نقش" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "فضای نام" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "نام" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "مجوز" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "برچسب" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "گروه‌ها" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "نقش" @@ -108,6 +109,21 @@ msgstr "دادن مجوز" msgid "Revoke permissions" msgstr "لغو مجوز" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -163,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo index 55a3d2737b03f73d6959665ca38b18974d551d1e..ebe7314167765c35dbc306a30feb80d7f8d1674e 100644 GIT binary patch delta 339 zcmXZWF-yZh6u|KpOPI$wk`9 z!O721a8g(2x;O~_PkTJ>$9wng-pv}5#-nYG?kth{vdD&rj2w|RmJ1)SN&bSXIKxeR z#})iSbMI$y-mLuhySPPNVHFS1#RN_NIo9x|BK^OHTMGO^?$Hb^v5sRTWWv_LCo~Vf zVhcZz*)m5$zS+!R(`52Cnt`3^r**Qlwx|3^h5KF*#gShow!1@RSA~HWbmOqQ?Xzl$ w&I@&%>0y4Ui!_V9!}P3|6)EOAyGYAt`>3Ai;owRSda>8f%5~>-dhNVfzhgZ#-v9sr delta 374 zcmXZWze~eF6bJB^HmzD}!5_3kMGhP#AwO(}AVtA3gOJj}?JQ|htchHbp_6}rW411W zqk~8b{TrOzx(RNAvy15B_oT<&eRy~8-n&_2*?3l!+b4zSt4y>*L=P3B7F?`+gx2$%JuQ6R*G`GY9QGIo5%#T8a?lBa=4^*9m1&3K}R hqb$lV^+9soEvBkp{HPaokH=xo!@y-jG50I)${+ciK#u?b diff --git a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po index d5bc7867c6..32d752f631 100644 --- a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Christophe CHAUVET , 2014 @@ -11,21 +11,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Droits" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Droits insuffisants" @@ -49,7 +50,7 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Rôles" @@ -61,27 +62,27 @@ msgstr "Membres" msgid "Role permissions" msgstr "Autorisations du rôle" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Espace de nommage" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nom" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Autorisation" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Étiquette" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groupes" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rôle" @@ -109,6 +110,21 @@ msgstr "Donner des droits" msgid "Revoke permissions" msgstr "Retirer des droits" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Groupes disponibles" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "Permissions disponibles" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permissions accordées" @@ -164,8 +179,10 @@ msgstr "Permissions pour le rôle : %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "Permissions pour le rôle : %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo index c51f4d7e48d667cbdd3d623afa9242ba3a87b55f..73512aa0244de8c749dfe768f59da5c50db8c907 100644 GIT binary patch delta 84 zcmX@fe3E%WtEsuJfvK*Mg@U1}m8pTQfr)_uSAf56P-Hq-bp%_L0 delta 84 zcmX@fe3E%WtEri;p`oskv4Vk-6_9OUVqm}(;IA8$T9#RynV+ZYl30>zrC?-WXsT;q lp=)HKU|?!xWH@nG&17fBC?220y!6tzrC?-WXsT;q lp=)HKU|?!xWH@nG?PM3mC?220y!6tMbN>pKB2ha2Y#T?me%_iA<4P(O`#MWBJf6&fz^y;{&eY zGZON_wSr$*&i!Edv0q%mDoaUa9c#Ez42`3S*MBk@mo>Q z+VnVftkTSFYc)tuRhH<;IZQfToh6tm-B0otvt5hTpm(Nv-N@-@xosU6+WI#B02PQd AiU0rr delta 366 zcmXZWF-yZh6bJAZO`}$AD_T+Na4s%#;Sx2_P()KYM+K$yu7|WB$R!O{_ XUzpwe*F3_MUU(+Mz-Prl>CN~9%1S-{ diff --git a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po index 96c545f732..404934fbda 100644 --- a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Giovanni Tricarico , 2016 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 10:09+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permessi" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permessi insufficienti" @@ -48,7 +49,7 @@ msgstr "Cancella " msgid "Edit" msgstr "Modifica " -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Ruoli " @@ -60,27 +61,27 @@ msgstr "Membri " msgid "Role permissions" msgstr "Autorizzazioni ruolo " -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome " -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Autorizzazione " -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etichetta " -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Gruppi" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Ruolo" @@ -108,6 +109,21 @@ msgstr "Concedere le autorizzazioni" msgid "Revoke permissions" msgstr "Revoca le autorizzazioni" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Gruppi disponibili " @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "Autorizzazioni disponibili " #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Autorizzazioni concesse " @@ -163,8 +178,10 @@ msgstr "Autorizzazioni per ruolo: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "Autorizzazioni per ruolo: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo index 352d591f419c99213aca56c39fc2bae2ae7c41d7..df5e5598beabacca34b626dd77036a7067eb31cb 100644 GIT binary patch delta 342 zcmXZVKTE?<6o&DWnp7=>2>vNm3vm%d14%Vivbjo75OEQdtJENr1da+lwI&*i@7-nzCPbnWt16ZshtnG})25ShU{Y~wSw@B_#3 z7w1vxB4g0TSzN60CYC*0IE{xmiaFYNf#v@jq)MLZa{7OHVW2a3#d6UbHt@aj6Bo$e z)w@aS6uF5eu2ea|CV2-ZFskzT@JrjTnd^@0JDm;N^8?>4LVa$P$(qygY_A)1y2~!7 z5vnYA_EHsReU&F^VDBc!y);iSQ|Vb!JnAP_sN!g#qF!Lf{iE%$Xc-5?D`Tnl2c(EI A$p8QV delta 371 zcmXZVKTE?v7zXe+HL0}_BGfAV$)2nc9DsR}?ymH&`rshgJBg z{DE`G6-+DM8*mKz(1e>R@54!C2}j|j$~S`#ZLefDZP&HEMdo;XshJ1*%r+Xw_LiCJ zao?YJaH@ewGkdoul2nSU+v9BGER^wa!ghp^S)81(mGHkwRk0RzL@XCt-Og%$r?+y` WIIsedM5iJOIZNcxRxoHAjnXf7t3SU0 diff --git a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po index 99ea11a0f2..d9f40d33cf 100644 --- a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 12:44+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissies" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissies zijn ontoereikend" @@ -48,7 +49,7 @@ msgstr "Verwijder" msgid "Edit" msgstr "bewerken" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "gebruikersrollen" @@ -60,27 +61,27 @@ msgstr "Leden" msgid "Role permissions" msgstr "Permissies gebruikersro" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Naam" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Permissies" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groepen" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Gebruikersrol" @@ -108,6 +109,21 @@ msgstr "permissies toestaan" msgid "Revoke permissions" msgstr "permissies intrekken" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Beschikbare groepen" @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "Beschikbare permissies" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Toegekende permissies" @@ -163,8 +178,10 @@ msgstr "Permissies voor gebruikersrol: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "Permissies voor gebruikersrol: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo index c382d23f1841f353f240f620670847797e06205f..eb3df4a221b30acdd9438e6183a7fa0b5db94511 100644 GIT binary patch delta 695 zcmYL_&r4KM6vy9;Gp3_7rbq;(S3=XpgL_}^Sxr7A5kwG2qMaZ;WR!vNC641S1_mY2 zg}Y0u{(uNt25oEMvKB4cgl=`En>M-XbH=ebymLSIo*&o#Kb<|F~Q|}zC2fvSh z#vkCb2^Q=t?1JB5FZ>Bx;W>ASoC70^8tsD1E=6=$=5i*cp_%zfg3tEPc#( zdf7;$4`px&`J5RRd3nAOf8AgSitsi>%h_-60P^^{NuQYHMO!W^kGnBS>wm$qtBGt{ z{#Uo%OFT@=MQ_`WiT7=D(Q2W*7A@Jyj@O0+_Htz?&57VM9fyEXqgr^ME3Q#9y6Y*R_h6h45D<;2R=g;zCjIsz$pBJL+}SuUL?TS2poo#XTn}M2T|W;AQi6v zC$KF@g=P4FL#uEQYa7+nPyvQu5mMbY?1MXy8rp-DcL3>}3pfEUVTi3Uc87p|{OBh< z`Rf>jC>D_Vn@sy!scSZN!v0M+?U6}Vq)2?l|8pya(KO>uU5Q, 2012,2015 @@ -9,21 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-08-04 09:54+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Uprawnienia" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Niewystarczające uprawnienia." @@ -47,7 +50,7 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Role" @@ -59,27 +62,27 @@ msgstr "Członkowie" msgid "Role permissions" msgstr "" -#: models.py:18 -msgid "Namespace" -msgstr "" - #: models.py:19 +msgid "Namespace" +msgstr "Przestrzeń nazw" + +#: models.py:20 msgid "Name" msgstr "Nazwa" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Uprawnienia" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etykieta" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupy" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rola" @@ -107,6 +110,21 @@ msgstr "Grant uprawnienia" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Dostępne grupy" @@ -125,7 +143,6 @@ msgid "Available permissions" msgstr "Dostępne uprawnienia" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Przyznane uprawnienia" @@ -162,8 +179,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +198,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo index c301a8a7f642d6c2553ace734b960b1fca847cfb..c2fe1e863d241af8378cd58bff5205cda8b944dd 100644 GIT binary patch delta 65 zcmZqRYT(*%iHX--*T7WQ$U?!;)XLOg@_i<0kcf${k)eX2nU#^*WOn9S9-qX#^wPxi TR4avolF7}?(VJg0i!uTLFLx39 delta 64 zcmZqRYT(*%iHX-t*U(Vc$XLO^$ja1g@_i<0pooF7u92aFk)f4=@nm-9+Q}1{qquz% T^U_Nb(^IV!3O2uF7H0$i97hp> diff --git a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po index d31394dbd0..4f00d58633 100644 --- a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,21 +11,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissões" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissões insuficientes." @@ -49,7 +50,7 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Funções" @@ -61,27 +62,27 @@ msgstr "Membros" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Nome" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -109,6 +110,21 @@ msgstr "Conceder permissões" msgid "Revoke permissions" msgstr "Revogar permissões" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponíveis" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -164,8 +179,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo index 1964cf01c3c0692b10a9b8b1433c31d282a81ad2..2a6e347f56b8dba5d66de853f3c414886f01efe6 100644 GIT binary patch delta 342 zcmW;Gze~eF7{>88dZ}7z>n}>NgV`mJL{lZBi%W1Q;^H7zsYQ@Rk~m5cM;9@hgPU%G zQg=69931=u92Ga+ocx~0@qW06d+)vH>TUH-S%WJ}lE|;2F_y#X_e!W?EOD{N}veNa01V>JG>#U+zBu!0N2Pit$Wvf_H78>~8h7=>ODtL75PvK#o0--?3P zqQ@%7I?LV7RQIz3ohNDJw3ALZ%@fRYx}OveYPS~ae(y;4x{-63@2s_py1hL-v7f9z DEDtp2 delta 368 zcmXBOu}i~16vy$GnpCZ(RV*SFB)hh>DQz)`sDp#VMa02H&XUwZO(l(+;2+UJ5FA}Z zL8yb9ZXNs!{09UbT-==eUOgV~!~M8>cMsWN_R%yhpAC_pF_AeDxwk|X@D*q99dr1F zI36Heg^ z>WgovKk|Y4fp4V5BGez7M*Ywd>fA*eR|lWQLCUTdE0v;Kb;_<+tM`4guscdB4aco| z<;HTEmGMUC7ojXh_x(~bgXI}X~3>N#slZ#PCg{Lf0w?rG^bUhiL<&Ax3N W=6n^k&Q&Y$oU`O;Yi|%*L*oxO%slk~ diff --git a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po index 1429b5c836..771e6dc29f 100644 --- a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -12,21 +12,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissões" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissões insuficientes." @@ -50,7 +51,7 @@ msgstr "Excluir" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Regras" @@ -62,27 +63,27 @@ msgstr "Membros" msgid "Role permissions" msgstr "Regra de permissão" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "permissão" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Regras" @@ -110,6 +111,21 @@ msgstr "Conceder permissões" msgid "Revoke permissions" msgstr "Revogar as permissões" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponíveis" @@ -128,7 +144,6 @@ msgid "Available permissions" msgstr "Permissões disponíveis" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permissões outorgadas" @@ -165,8 +180,10 @@ msgstr "Permissões para papel: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -182,13 +199,17 @@ msgstr "Permissões para papel: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo index 4b503e0d49d4c43b97ef1fafad8e6630cd73cc1d..79017a42e109a952ce55dbb68ed42b7ce39f495c 100644 GIT binary patch delta 68 zcmdnMwSjBHB_>{TT?12HBMSvXQ!7)0$@iJ0K_Vu)MurN8W>!XKli8U&__$=^5cX2C-*T&Z~n<_&Ika4FB72v delta 68 zcmdnMwSjBHB_>`oT|+}%BVz>vBP&z0$@iJ0fg%Pbx`yTo29{PP#*^8ZJ0{O(j^g)8 X%u6p#Oi#5^D9Voy^56V}*@6)Og!B`y diff --git a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po index 4361fc6aae..f5344d6c9b 100644 --- a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Badea Gabriel , 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permisiuni" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permisiuni insuficiente." @@ -47,7 +49,7 @@ msgstr "Șterge" msgid "Edit" msgstr "Editează" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roluri" @@ -59,27 +61,27 @@ msgstr "Membri" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nume" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etichetă" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupuri" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "Grant permisiuni" msgid "Revoke permissions" msgstr "Revocați permisiunile" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupuri disponibile" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo index b7ca371aea358506787aaf8a852fb71498283751..34d43d8d4e6d61dd1537912e9c0e44faa5ef63d7 100644 GIT binary patch delta 339 zcmXZXPfEi;9ERav+i1mBu|@Gu5u=+fN+d~5m7q7sLbSLMgb`{Hq`^t*QqQ145Ep_s zD0J=GolEryb|Ydh;2X>^%roD|%)oqC#+8AQyIIVOj0+-bB2tt?Bc;#79VvB-W#MnUxNl4N^N?t>73W9EjXsLu$({^z34d@hHMDPW; z6uLNf>!`j37ZF`Ly7-OeIPP=L!`;EnD&Linmbz&O%c&`ksaK|Iv!vRFL4oX zv;2VTRxPebuKgIL|uj7y0VZPip9mjMVhV6Q-cH(O_>#wn0!)|&`Yu9Eh w_^LlJgIGoVPz`#qXN29bXI-eMdy?F1LGq&=mwXj=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Разрешения" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Недостаточно разрешений." @@ -47,7 +50,7 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Роли" @@ -59,27 +62,27 @@ msgstr "Участники" msgid "Role permissions" msgstr "Разрешения роли" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Пространство имен" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Имя" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Разрешение" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Надпись" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Группы" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Роль" @@ -107,6 +110,21 @@ msgstr "Предоставление разрешений" msgid "Revoke permissions" msgstr "Отмена разрешений" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Доступные группы" @@ -125,7 +143,6 @@ msgid "Available permissions" msgstr "Доступные разрешения" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Предоставленные разрешения" @@ -162,8 +179,10 @@ msgstr "Разрешения роли: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +198,17 @@ msgstr "Разрешения роли: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo index c5f0349f00e9bc1be799b290bbdd5e4df24930ab..de42ae297eadd3d5cb8b08345564cf100700513b 100644 GIT binary patch delta 67 zcmcb{c8zUAGb69Lu7Rnpk%fYxsg_$=bK-+NCp$7lPhP{c3IJ{Y6QuwE delta 67 zcmcb{c8zUAGb68=uA!l>k+Fh-k(H_0k+Fh-k(H_0WFJOppooF7u92aFk)f4=@#GT5?#cX2QT#rM VdFiEz>8Vxnp;s7?f5$gZ| diff --git a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po index bfb5279281..51a8570b7a 100644 --- a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Tên" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo index bb23b13241d2198ba35cad7f41870a7420bd4f1e..097ea828377e9a22954e906f72c3fd69fbd0d83d 100644 GIT binary patch delta 89 zcmdnQv58|t6qBjBu7Rnpk%fYxsgK delta 89 zcmdnQv58|t6qBi$uA!l>k+Fh-krj|_U}9jv72vNMlvylWKYNcRgU, 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "权限" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "权限不足" @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "角色" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "名称" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "许可" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "用户组" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "权限授权" msgid "Revoke permissions" msgstr "撤销权限" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/models.py b/mayan/apps/permissions/models.py index e7bec758fc..0099eb2d81 100644 --- a/mayan/apps/permissions/models.py +++ b/mayan/apps/permissions/models.py @@ -46,17 +46,25 @@ class StoredPermission(models.Model): verbose_name_plural = _('Permissions') def requester_has_this(self, user): - logger.debug('user: %s', user) if user.is_superuser or user.is_staff: + logger.debug('Permission "%s" granted to user "%s" as superuser or staff', + self, + user) return True # Request is one of the permission's holders? for group in user.groups.all(): for role in group.roles.all(): if self in role.permissions.all(): + logger.debug('Permission "%s" granted to user "%s" through role "%s"', + self, + user, + role) return True - logger.debug('Fallthru') + logger.debug('Fallthru: Permission "%s" not granted to user "%s"', + self, + user) return False diff --git a/mayan/apps/permissions/serializers.py b/mayan/apps/permissions/serializers.py index 375818e93a..248452016c 100644 --- a/mayan/apps/permissions/serializers.py +++ b/mayan/apps/permissions/serializers.py @@ -13,9 +13,9 @@ from .models import Role, StoredPermission class PermissionSerializer(serializers.Serializer): - namespace = serializers.CharField() - pk = serializers.CharField() - label = serializers.CharField() + namespace = serializers.CharField(read_only=True) + pk = serializers.CharField(read_only=True) + label = serializers.CharField(read_only=True) def to_representation(self, instance): if isinstance(instance, StoredPermission): @@ -29,15 +29,14 @@ class PermissionSerializer(serializers.Serializer): class RoleSerializer(serializers.HyperlinkedModelSerializer): - groups = GroupSerializer(many=True) - - -class RoleSerializer(serializers.ModelSerializer): groups = GroupSerializer(many=True, read_only=True) permissions = PermissionSerializer(many=True, read_only=True) class Meta: - fields = ('id', 'label', 'groups', 'permissions') + extra_kwargs = { + 'url': {'view_name': 'rest_api:role-detail'}, + } + fields = ('groups', 'id', 'label', 'permissions', 'url') model = Role diff --git a/mayan/apps/permissions/tests/test_api.py b/mayan/apps/permissions/tests/test_api.py index 5a6d39ce12..76f379a230 100644 --- a/mayan/apps/permissions/tests/test_api.py +++ b/mayan/apps/permissions/tests/test_api.py @@ -4,8 +4,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase - +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_GROUP_NAME @@ -18,7 +17,7 @@ from ..permissions import permission_role_view from .literals import TEST_ROLE_LABEL, TEST_ROLE_LABEL_EDITED -class PermissionAPITestCase(APITestCase): +class PermissionAPITestCase(BaseAPITestCase): def setUp(self): super(PermissionAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( diff --git a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo index 41c712e524ad0e4ab4cb9edbb9f371cd8cd34203..f433c57b652c196480dcfdac6f884bddaf673a6f 100644 GIT binary patch delta 127 zcmZ3?GLvP33gi8WstM8Nx(24YMivT&rdFl~x&|f&23!IDxB@aGV>?C a3g+=i%u6p#Ob42gSTxy&F?#Y6#(Dq=2`3={ delta 137 zcmbQqvY2Ip3ggR(stKuPx`u|jM#c&TMpmX~x&|f&23!IDxEqz&;u7Q<9Beo7LGWY;#wZ@2#Ju#<#B`vEiA9rVGByAJJ#r`l diff --git a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po index 39117fe29c..6fce48e2ed 100644 --- a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo index 08a83685518b6fa3e4155466fa2ce88d0c047e43..52582c2f3fa5b311b5296818d1c885b13908de8d 100644 GIT binary patch delta 127 zcmcc2e3E&B3S<97)r4qsT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KDEqz&;u7Q<9Beo7LD*zx#wZ@2#Ju#<#B`vEN$Hd4FzNyTM#m?- diff --git a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po index 700454133b..67bff959bb 100644 --- a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo index a2b29641afe6289d619e3cfdc521a9b335fbaefb..659eccd083db96904b7266ee96233fbd3e5ecea5 100644 GIT binary patch delta 131 zcmdnRvVmoS3ez{niE8oD=DG%^x<(cXhNf1g2D%0&1_oRK{<=Y_Wtqj9`FXl7i6yC4 z3PuKoKy@a%MurN8W>!XK+6F+t<&#)kq8n0_m{**WSdw34r4W>#lv-4h52T9|i!$>k ezAE7NNz6+xO-u)xkyIS-h delta 141 zcmdnMvWsPc3KIj\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo index 5786ff12558c7afd803d16983aadb2bb2c0a38b1..0027b5831148c3019cf28a4708d3ed21e7144c9e 100644 GIT binary patch delta 127 zcmcb>e2jU53S-Yi)r4qsT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KDEqz&;u7Q<9Beo7LGWY;#wZ@2#Ju#<#B`vEDT$M3GU@^VL3k&o diff --git a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po index 41c74e859c..d15cfb06b3 100644 --- a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo index ce3e3382949c7f600112b854a99616fc84812afb..df3e93f1dab601593f533d942bdad1441b29dffe 100644 GIT binary patch delta 337 zcmXZWy-LJD5C`y$=0F4ytt>32xZ|ow5)zbfg+dPT3lGIgLDtJ8?2+thHaR#g1Z{0X z^cn2M(oXO(d=fz?cMkmc&oav}U*>D;{(IGYVN@nrCq2?47o@3cvO;di0(m4|@v%-3YkD}g#Yb!l5vr43{_Tp246npGAVgNTOzy+`}MPNUjG`qodXmS XPG^^CfjJ$QU|h-wCB&Z}(*xNb&*xIr delta 215 zcmZ3^dWKw$z( c`5|KzzfWRbdTC;Ms+B@YYP^f, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 21:12+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "Kein Serialisierer gefunden für: %s" + #: links.py:12 msgid "API Documentation" msgstr "API Dokumentation" diff --git a/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo index 4233b5c52c2935160b576d2a23ef2e3a47ea1f6a..a67c07abb0690414dc57b50488a635e9e9263440 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8rqR>5l5l\n" "Language-Team: LANGUAGE \n" @@ -21,6 +21,11 @@ msgstr "" msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo index 2812c5cef81898c9b9e08f5d59d97f5f61e7bb2d..1de62f32dec2095056cd387d924443d5365cabf2 100644 GIT binary patch delta 308 zcmX}mF-yZh7zW^rrXZq&P7V&=BApJdNrMtxlr9CWMR2OiXL2opcvtU|4s~#F)gct| zPdNH}`cDMkM(~4&m*YL|yRY!G^Rhk+KLjR(V>pKn+{0$(Z~#xR1Fz79H+T<(_(mSV z<`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRLOt9X18^U_Nb(}A*SiIYPZqbKiSbOHbrj2SKf delta 84 zcmeyz{EvCUGE*~MLqlC7V+8{vD, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "API را متوقف کنید" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo index e50d874bce06ebe7b5654310c77ef807ba261334..ae1ea4970ede9731253bb5f5953493b5608c8ba0 100644 GIT binary patch delta 129 zcmX@bvVvuTiD)+?149i11A`b4b1(rhkd~k5S#N5tYhbEtWT9YaYGrDmYhYqvz!l)H z8S)7@lr|Xhfl4_-3WMBwXXQFFls9XDRU#s1 delta 163 zcmZ3%a*AbwiRfBJ28J321_m)8)?#8{-~iH&6Fuuq&2$Y7b&ZS_42-ORYy%Sm1Fisn z-JsO6%;L=aJYAQ>l2j`NBLhRAoUyKvp@Na2m4VU3zv70@8AX}JCHVyzsS3^>j-g?$ zAqqCha525)jKtEi)DnmE+{DZrz2y8{yUEIo!IPUAqj-E0^U_Nb(}Cuu6-~aw=mP-c C-Y%E` diff --git a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po index 641340ed59..92dc3917ac 100644 --- a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "API REST" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentation de l'API" diff --git a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo index 136e76ce92161a72999479cc30be7513ede61780..73512aa0244de8c749dfe768f59da5c50db8c907 100644 GIT binary patch delta 127 zcmcc2e3E&B3S<97)r4qsT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KDEqz&;u7Q<9Beo7LD*zx#wZ@2#Ju#<#B`vE8KslwFzNyTM=>YR diff --git a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po index 38c56de033..118ac5ed2b 100644 --- a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo index 63a22c3d43d905e6dee234b8ef42d42f78666196..d83ca56697c81fabfe8f97139d93bf6561eaeb26 100644 GIT binary patch delta 127 zcmX@he3*HH3S;L))r4qsT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KDEqz&;u7Q<9Beo7LHJ}B#wZ@2#Ju#<#B`vEnJJU!GO7UpJ)9@1 diff --git a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po index 8372c7714a..9e1adb7648 100644 --- a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo index 2dbaa04f26dcdbd1eb96af3248103e9927c1ea17..43c319691c7bae36c248d2e9fbe77bd1952fe109 100644 GIT binary patch delta 129 zcmX@avW#VdiD)k)149i11A`C{b1^Y6Z~$r9iJtYQ=DG%^x<(cXhNf1g2D%0&1_oRK z{<=Y_Wtqj9`FXl7i6yC43PuKoKy@a%MurN8W>!XK6aR|y2jwTF7M0{H1mzbe7G>s7 cwr33C@kz`}FHKAb>c}jaJc%)S@-IdY08ZH=P5=M^ delta 155 zcmZ3+a)@PuiRem328J321_mJ@R%2pd-~iH=6Fuuq&2$Y7b&ZS_42-ORYy%Sm1Fisn z-JsO6%;L=aJYAQ>l2j`NBLhRAoUyKvp@Na2m4VU3zv9~NnfYajd3l)%Aw`+Vi9npM tV3S?~V_O, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Giovanni Tricarico \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentazione API" diff --git a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo index e84bded8af818c329269e72c65a9720c3594f7d4..74f5f65d3738b2ecfffbef7884789ec3759a5ac9 100644 GIT binary patch delta 132 zcmcc2vW;beiRgSr28J321_l8jmSJLG-~iIP6Fuuq&2fCjJ%Y56VwUEh@=Z2+A)`EXvHE f?7*1J?~|C9UYeK=)RC7H@8>gl5o7dZUM4pH+%+Q1 delta 161 zcmdnSa+zgl2j`NBLhRAIs;uJ3k3s9D-+|1f5mlN%TjYPv+@*z6BBbvGV`(( yY*Ha2#ZUo<^xVYE9KGcHT)WB2jLDOyF-GzGB<7`;CZ+?8%*%=Q^O^jf(H#KK7B12N diff --git a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po index 7325b55273..b4faf96d9b 100644 --- a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 09:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "API-documentatie" diff --git a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo index 2365243908d05106cbad6996294ab427be71576e..71294fafebcf6ff661f0f67baefc509a4cf1133a 100644 GIT binary patch delta 299 zcmZ3*(#$$RhgY77fgy^4fq?^vt0r3JnwskxnCco?C>WYrnHuOCm>3vv1^DX*rIuwD zXXfYWx+IpQS}7PA7y{Lq=o%R+7@AobnN7T1$>WolmtLBf4wNm(nHy}@XTWqC}R{-V~+nQJd6@X-HHS%n24HfJa3>2&sH1bpp4eV@<6x7rdKujB36HO2s zEN)<9Xrxe61C{_PG6YK5D;NTGUBxm%hxZsG149%80|N&TD^9e`H8s;UG}JXRRxmKK02s1$zYp1)#L5p@E&Pk%F2Um}z5c0%B@_gbi#A h4HRl>z~Ue^2AV)UhCn?=n$}zlL9W3e3XTDu3;E diff --git a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po index 229ee8c7d3..c8fabdd02f 100644 --- a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po @@ -1,27 +1,35 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Annunnaky , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo index 9e9d7641f6ffc2b5cae062a44b96e727eef59d9f..fa8b22b1ed1b972821285c4577b87f951beca1cd 100644 GIT binary patch delta 140 zcmeBR`Nup#hj#)a149%81A`C{zn*BB8*Q#@V5)0mpnU}9jv72vNMlvylWKYNcRgUylWKYNcRgU}&mqV4-VdpkQceWoV&o00dk\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "Documentação API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo index 17620a6438eb6729e7aa3fc0f4701c02418adebd..fdb6e99091b345b764fd37b1b8d4e66bde4b687a 100644 GIT binary patch delta 132 zcmcb@vWsPciRe5=28J321_n_emS$pL-~iHw6Fuuq&2fCjJ%Y56VwUEh@=Z2+A)`EXvHE fY|EI;?~|C9UYeK=)KO3p?-Vq7K4bJ`E+#Jk;f*5K delta 158 zcmdnRa)o7riRcbS28J321_n_eHf3U9-~iIz6Fuuq&2$Y7b&ZS_42-ORYy%Sm1Fisn z-JsO6%;L=aJYAQ>l2j`NBLhRQIs+30LrW`D(}{n@H63#@^HLSuic&L65{ngV5, 2016 # Rogerio Falcone , 2015 @@ -9,20 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-04 19:55+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentação da API" diff --git a/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo index b7e889c94a04d6079b8758e20418c3cf352a449b..265f9d974962794012e9b17933f07cc4aef6edb4 100644 GIT binary patch delta 130 zcmeBXX=It8!gze5YC^QRu7Rnpk%fYxsg$Gh7={{73UEgtq%>0S3 dlK6cR^U_Nb(}89b<;Ms4PxfYvp1h4Q6aZffC-49O delta 140 zcmZo<>1LUr!gz6_YC@`+uA!l>k+Fh-k(H^Lu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5C zk%6J9u7QQFk%5AtrIn$DwgC`u`6L#X=!O&}<`w58mgE;%DY%9D_$c@}`noFExcWMJ p`ZzecxCFTd2ir}2kTf}nF^b\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo index 5ffeeb884c8844b3feb92ec2bb8b4f76a060a161..ed47c015d6d637e11fb3132212b93f0000c3ae35 100644 GIT binary patch delta 129 zcmdnWx{Gy!iKsXe149i11A`0@PXV$yfb_UmEvBP$@=z{J3SE5Khj zD77rJI5R&_*Cnwe)k?w0zz`^Bu4`xsWLg=RPW&s*m6Ms1uUC+mmzg|SnK5K?3u6?I TPhwtrX<|B1Ls9AEyNq`M-1;F@ diff --git a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po index 1b75decbe2..c206a90303 100644 --- a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po @@ -1,27 +1,35 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-19 20:05+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Документация API" diff --git a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo index 46cbaabbf969b7a0d3ec3e01790f3a7f7381e86d..b6a481b423b1cade0558e29c83ffd8b9e00d7ec1 100644 GIT binary patch delta 130 zcmbQi(#JAEh4IQn)r4qsT?12HBMSvXQ!7&gT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhRAIul(ZLj^-KDvBP&xgT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`N zBLhQIT>}eUBLf9PODjVQZ37_S@<}W%(G4j|%qz}GEXgmjQg93P@lo(|^mSFRarJfd p^l@->aS3t_4z`>4AZ2n0V-&wnVqSV_Vmi>o;+*(k&&g{U69K6JDFpxk diff --git a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po index 8b4263f7c0..411bba7af9 100644 --- a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo index b4343e627b4300beec71d4774254fddd3bba58ae..2f4a11fd46e7618504ce9fae1f62f3b017273913 100644 GIT binary patch delta 130 zcmcb|e1&;}3gfJastM8Nx(24YMivT&rdFl~x&|f&23!IDxB@aGV>?C dO6B)S%u6p#Ob41#mKh)BH`$Lddh$+2RREk;C_w-K delta 140 zcmcb@e2;m83geQAstKuPx`u|jM#c&TMpmX~x&|f&23!IDxEqz&;u7Q<9Beo7LF(jC#wdQD#Ju#<#B`vEWts6|ev{WRssRAi^eH6( diff --git a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po index 8f5c85b32b..545e95684c 100644 --- a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo index f590993e9f4d8f80cf617ca6359d029a2667a09d..78c94095c9c03274207ba62588dfbfb918e2db94 100644 GIT binary patch delta 130 zcmcb?e2#g73geWCstM8Nx(24YMivT&rdFl~x&|f&23!IDxB@aGV>?C dis$!9%u6p#Ob41#l@agkH`#+Rdh%vQRREFzC=CDr delta 140 zcmX@de1my{3gf(qstKuPx`u|jM#c&TMpmX~x&|f&23!IDxEqz&;u7Q<9Beo7LHuNY#wdQD#Ju#<#B`vERT=Tlev?-)ssRAX$|&&w diff --git a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po index 1d781e7003..bf0b71c287 100644 --- a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/tests/__init__.py b/mayan/apps/rest_api/tests/__init__.py new file mode 100644 index 0000000000..0b7c12d02a --- /dev/null +++ b/mayan/apps/rest_api/tests/__init__.py @@ -0,0 +1 @@ +from .base import BaseAPITestCase # NOQA diff --git a/mayan/apps/rest_api/tests/base.py b/mayan/apps/rest_api/tests/base.py new file mode 100644 index 0000000000..098d83f9b9 --- /dev/null +++ b/mayan/apps/rest_api/tests/base.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework.test import APITestCase + +from permissions.classes import Permission +from smart_settings.classes import Namespace + + +class BaseAPITestCase(APITestCase): + """ + API test case class that invalidates permissions and smart settings + """ + + def setUp(self): + super(BaseAPITestCase, self).setUp() + Namespace.invalidate_cache_all() + Permission.invalidate_cache() diff --git a/mayan/apps/smart_settings/apps.py b/mayan/apps/smart_settings/apps.py index 7032b084db..6825455503 100644 --- a/mayan/apps/smart_settings/apps.py +++ b/mayan/apps/smart_settings/apps.py @@ -13,8 +13,8 @@ from .widgets import setting_widget class SmartSettingsApp(MayanAppConfig): app_namespace = 'settings' app_url = 'settings' + has_tests = True name = 'smart_settings' - test = True verbose_name = _('Smart settings') def ready(self): diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index b7d399a94e..472d37bb51 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -84,19 +84,29 @@ class Setting(object): def __unicode__(self): return unicode(self.global_name) + def cache_value(self): + self.raw_value = getattr(settings, self.global_name, self.default) + self.yaml = Setting.serialize_value(self.raw_value) + self.loaded = True + def invalidate_cache(self): self.loaded = False @property def serialized_value(self): + """ + YAML serialize value of the setting. + Used for UI display. + """ + if not self.loaded: + self.cache_value() + return self.yaml @property def value(self): if not self.loaded: - self.raw_value = getattr(settings, self.global_name, self.default) - self.yaml = Setting.serialize_value(self.raw_value) - self.loaded = True + self.cache_value() return self.raw_value diff --git a/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo index 548116b58b0dcc713df91d582decdd608a24cd21..4e1388b047f1be64368075281c7dfa8b79e3dbf3 100644 GIT binary patch delta 84 zcmcb^a))KY4pVbo15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRKbD|vhp^U_Nb(}A*yMUzt*qbHwb><0h`m>G%y delta 84 zcmcb^a))KY4pTE-LqlC7V+8{vD=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "اسم" msgid "Value" msgstr "قيمة" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo index cc892e5fcab0f6f444ec6a2b7468d2589058c4e9..be80e8afdc82f41a79d0ac4bfed2462d7317e152 100644 GIT binary patch delta 84 zcmbQjGKFQr4pVbo15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X m6I~-i1w%6{BeRKbYj}JT^U_Nb(}A){>60@UqbFZrbO8X^l^Cu7 delta 84 zcmbQjGKFQr4pTE-LqlC7V+8{vD$ke0oGC&r~m)} diff --git a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po index 2be7dd9758..ae77c993cf 100644 --- a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Име" msgid "Value" msgstr "Стойност" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo index c52394f1eaf107e194850645cc676718c579672b..ec5be077619ae23f41cb9b69f4956737b2cd2ee5 100644 GIT binary patch delta 87 zcmeyw@`+`_4pVbo15;fi3k5?{D^mkq0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X p6I~-i1w%6{BeRKbr}6tF=B1Y=rUPY@isPLeCpR%hPkzhT3IJw%8tni8 delta 87 zcmeyw@`+`_4pTE-LqlC7V+8{vDHq)$ diff --git a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po index 92d79599ca..b914ad6ea0 100644 --- a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "Ime" msgid "Value" msgstr "Vrijednost" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo index ba6d0b7dc7d81613c1d6be5a4bfef4317116ec83..d7f33d648ab1844d9b1c0772338dd4f6f9472717 100644 GIT binary patch delta 61 zcmaFC{DOJHB3^S{15;fi3k5?{D^r7s>!m>gCb~w33WjD@MrISQSMvBI=B1Y=rl(pd Pq$E!EXN;b_ozV~gEB+F0 delta 61 zcmaFC{DOJHB3?6HLqlC7V+8{vD^s(H>!pDL2FAKZh6+Z8Rt82BuUAfvWsKtSNz6+x QO-xU(P7e};NxZ7$9lsV?&9P>f5LjB!YlX%bCxhc z*GbEVAW;Q<`MgdD{kes5#&9I>;&RBx@=6^T6ZLLHjUC4g9DmpLf-rDZ%Us){vhDbu z?e#*xx8V}?Nalren#oZH(pn*9OwU^NB+ delta 468 zcmXZXze~eF6bJB2T5YXXYbl~=;hZHlNwr`Q5wW_o;NYZ#Ug`A*wpVEq6j8dlIg}ty zij&}?i-VJYf#5$Njt)+aE`r}@`{3Q@-h+F2d5qjdJ0HpLB}0rLXOO4JapXIaf@_S$ z;VcZp44i}u{eBT9QSZViRB#F&!BNc8FrSNwzHTE-n8j_&M>ovZE@RjOnc5m#0tXo zjP15iZbNvjw!@2Wiv$cv, 2014 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Name" msgid "Value" msgstr "Wert" -#: apps.py:37 -msgid "Found in path" -msgstr "Gefunden in Pfad" - -#: apps.py:40 -msgid "n/a" -msgstr "unbekannt" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Einstellungen" diff --git a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo index 8dde99e13645246273c37929e7afdcac402d118e..18edf6e20f4f8e43da6ab96525895328410d7fd8 100644 GIT binary patch delta 24 fcmX@fe3E%WE3dh(fvK*Mg@U1}m8rqTN#=|ITSo@F delta 24 fcmX@fe3E%WE3cWZp`oskv4Vk-m8sdrN#=|ITGIx! diff --git a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po index df4424f65f..4a1a735fcd 100644 --- a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -37,14 +37,6 @@ msgstr "" msgid "Value" msgstr "value" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 #, fuzzy msgid "Settings" diff --git a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo index 4f7ee202de84b847d4e6d8b8ac758519f5e06cd2..6149605e5cc56e1f80c0161fe9056871d19061ed 100644 GIT binary patch delta 329 zcmW;H%}N4M7{>84A3Bw(Xa$x9vlSee863^gOOQaqg|wPtutkL+O0@9;qJ zD;Hf$*H9Z5t@^+7!gGG-d(Qkh8)x}lwbzO|BA4We6v-En`XM&?B{i}qvR*cns^S$M zppWO+#S-3P4)0O+KjH^jkUV4C;;d3jRiIO0qJd}FLkEW_4;tesE>JFf#}iy3cPW#| z0~uxyf$Y5Ol@CeD&mCqxnw#V~&6?RXdC-01Rqu>JvE%uX7hbzT6i2?Un01+Hd12rN g?Ko`fuK9L6NM0uMWRk{iI@4S8PG49}J+eOk0lai3SO5S3 delta 401 zcmXZXKTE?v7{~F;A5GP^U{z35IA1_$n%aWd?PNz6bqN@1mnb$tDPlJ#9m?S@1s$9n zdF2%uD;H2Q>_pv_Ycc06VdoFkH{dj}-ihHZ5B3UCBWS)$Pl(v*A;Rd=`#bw<5 zUvFcD_kAp2iYs`AWgOxZ-l6n)KnI`j#!>_I%tStHu{w>rxQ+)XKhnn~yhaa4C_nm$ zi}-?az!(?s19{XJ1Fh8zk+LWJT~wxWRzU@m&C*ylNzD?usnnbdt>ZjB)ZJ8{#M#mC z^U6u9vB|A=sp;2hepuH*7&V&a)mmjGX!yaF4r)<7G~ZU=T-tlZojC2}aVLp%(lc+i XU*10N_Oe7LsXooK*f`F}rKkD@qNOz$ diff --git a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po index 9a222e2fe9..0ef06b5a09 100644 --- a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Lory977 , 2015 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-09 01:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nombre" msgid "Value" msgstr "Valor" -#: apps.py:37 -msgid "Found in path" -msgstr "Existe en ruta" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Ajustes" diff --git a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo index e871465a86e09fdc3950f4712b187c8c3240b66d..f45bf330cbe04385c146c6665cff003d9175952d 100644 GIT binary patch delta 62 zcmZ3>vX*7SMP74V15;fi3k5?{D^r7s_oP7rCb~w33WjD@MrM=Q7^`@E67$ka6Vp?z Q6w(qW*E2>>e$MCy02~q$0ssI2 delta 62 zcmZ3>vX*7SMP4&qLqlC7V+8{vD^s(H_oRUW2FAKZh6+Z8Rt83s*%+%P_cBKD_$20~ RmnNpCS}CL@PJYJd4gedF5&QrE diff --git a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po index 176d446380..7d4ec29cb0 100644 --- a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mehdi Amani , 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:18 permissions.py:7 @@ -36,14 +37,6 @@ msgstr "نام" msgid "Value" msgstr "مقدار" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "تنظیمات" diff --git a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo index db1c4af7f5dbbd35bd2917b746695ef0d7e679c5..c64faba21ea6ca029ad76e2737c9e21c8a2cf01a 100644 GIT binary patch delta 367 zcmXYsy-LGS6o7A%+SY0n3xeWb7F|jpNln$*M+gqqt<$ZAEgL?_? zx(F^#g6@JH-E6!+Z27<__{66uf^402eou_`t$@tK2Ha01@J zdH4)R;U`>zKTtH1LRZ6Z5sLXT#1`3xxSEV0qT~Vn9~DD!CP~ymcL_|yAyFv=XZs}{ zB)eY7j;PCM%M6_E?{$n7%qWy9nUbPuie99uZmgH0cWHXBq^Lzj*Ql-;s=lJ4Qf1Q* zlo~gg-!KD@8?@%Q7UykRtvg;2(2X6FpCHy&=v&;+Gml%XMmul2ffF9)>t1s+nw6{3 sg}k3Go6HVP+cM}ek3QtpT#b9->FWbM!u7Oa(Yj+bT^32Pw>X+4f4_`Sx&QzG diff --git a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po index 4c31ff39f7..ce039c4f82 100644 --- a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Christophe CHAUVET , 2014 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nom" msgid "Value" msgstr "Valeur" -#: apps.py:37 -msgid "Found in path" -msgstr "Trouvé dans le chemin" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Paramètres" diff --git a/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo index 7124e333dc3c435b7c986f2c015ff4be16a995b7..73512aa0244de8c749dfe768f59da5c50db8c907 100644 GIT binary patch delta 84 zcmX@fe3E%WtEsuJfvK*Mg@U1}m8pTQfr)_uSAf56P-Hq-bp%_L0 delta 84 zcmX@fe3E%WtEri;p`oskv4Vk-6_9OUVqm}(;IA8$T9#RynV+ZYl30>zrC?-WXsT;q lp=)HWU|?!xWHNDA&17fBC?220y!6tzrC?-WXsT;q lp=)HWU|?!xWHNDA?PM3mC?220y!6t5j zK^z=heFwe} z7k99UK5pU>uHrc^;RtpAH9nBL|8v_C!WCj695(AT^iU6Qf-StnUCdBltZ*5hu!GOY zUBV=KKpyKsKs1Q{xbD}be{QATv7E}Av|h?vd8Lkxxq2~@_Q3NaFFbUED2{y9F}L

            k22V57M39`z6tS)*$|`I9FjtvFrGn2>d7)|^3x0oYNE&?(L0WLdLD*- zdB(evN1}H=`n%DjDbl{u&Nq!})u`3ERkOF7>4&m<+%&9~QEPCkW!HDMEJW@|Bt654 zg-m?W3uBwNMeK(BKm?KRB_7`msIIuvx)Qkioj`Q`iW>%d>ALEq1N8(`WT!7Wp3T!Q a)hs!2c!6nLdOnXl^v6kp{ diff --git a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po index 0f9e090c04..299c3e549c 100644 --- a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 09:38+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -35,14 +36,6 @@ msgstr "Nome " msgid "Value" msgstr "Valore" -#: apps.py:37 -msgid "Found in path" -msgstr "Trovato nel percorso" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Impostazioni" diff --git a/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo index 709f33def45ad51059aed4be027ef9e4f0206320..55d9e917d649a5c7f7aff7cd607d5aea54485836 100644 GIT binary patch delta 279 zcmZo;+s#^kPl#nI0}!wQu?!IV05LZZ*8njHtN>ybAYKW?96-Ddi1~ncI}o!1@i8Fg z1>!S6JfD$);TDhvsjp&UVBi7L^*~w}NcR9~kR1!4{N+Fzs9Y1Qm>DPm10X|za&Q3B z1OgL})$y9^8kp)DStuBqTA3P54rG)z28x*I8W}1Wnpqi{X&V3mmrr7GiEcEXvHEyoWKF-zPCIy)-dB)k+~RC*IFzvK&+N;Ph3Al?bYEI@o5h&h1x3=s1H@l_yZ z1>z?_3{v+Bi1#ouF#G`0{6M^w38L>PkmdpMPXTFRAblN3voSEZGrWchd;-!yePF{t z7J(cD0zgF!%wQIT04jq3xBSw)6ot$@g@VMAjEO7i>dkZw4Rwu-6%355OwDu+ObiUT z0{nG@Qp+-nGxPIwT@p)DtrUz541wwlbd4+&3=OP|jI|AbfXgSbxI{OkC^4@%C$S{I z$V$PrEHx)HD^DRfF)^nkGcQ}gCKV!53>9!l&rQtC(M!(HwFBzTOD|2F+`$+#`3qwd jKZKhOv@9, 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 10:23+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -35,14 +36,6 @@ msgstr "Naam" msgid "Value" msgstr "Waarde" -#: apps.py:37 -msgid "Found in path" -msgstr "Gevonden in pad" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Instellingen" diff --git a/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo index 7f631eb02d6f559fbf62a2ea2faf6bf56c247ae2..82ed24a801a4ab4fc120cf71d12f5fac36213a8e 100644 GIT binary patch delta 539 zcmYL@-%0{O6voHZ$|U<^M21Bplq9h*v$~d>Yj<5qNOsrN6k@@;E4vz9NIt|+SG`3y zU3k+QR1eT2L=gnt_048^;G5r>GiSbYKI6~v!D}jZLl6mQ6>^{?G=x;VLow(BN<&|e zdY_9Bk^iunf+E4R8WH1y%n!xULa$IjY}A3E3cIK<<#tqu~+EfG?n0<_*k( z-{3Ns!4}hC0bB%a5MBhH;eu!j7Xio=q=rwb3qtv+zhNATc9WK|KlX(iIHK$M7CrJ#n|{{=1L0qI@>*-m z)P&pWiB{919Y;QCC+WJ=^M#`ycz!#usM`szfnAjK=+a=z-Q=ul8#I@rDy`VXyvoBm zt8jz%`{4tcIG*+?r!dLd{J*Pev+-}9S06^M=D1!S*Ok-XycEO4Uta^hh5TMZ-baT& DakXAx delta 559 zcmYk%OD_Xa6bJCz2dW7RI22gRllW;Tdd#*HE8x10(PjeuUTwyF<~3!4;-@;Vm44_pl4T z!y)(uqivnvpTae=lu8qc`c$mtb!r z+VpcpRpmZ8lFFiTaQ1Z?kqHr0Lu(x=!!!*mN!+sMQo(a*Xe(v#q+yw4nKrkkIU>F) z{ED&T3F*6{qCA^+)nO%Hq+Q|Vjzm$_{GvnY+Dz?Vzg#E@$DPTk(qb?Y-VTn#d*iD@ z7OJ9YArbPW5_Y quGjD>S|XEdvZfZ|Y)=X|f8;2s=;<=&, 2015 @@ -12,15 +12,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -38,14 +41,6 @@ msgstr "Nazwa" msgid "Value" msgstr "Wartość" -#: apps.py:37 -msgid "Found in path" -msgstr "Znaleziono ścieżkę" - -#: apps.py:40 -msgid "n/a" -msgstr "n/d" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Ustawienia" diff --git a/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo index 3910ca596e81e50cea02b9cc6ae963d586278cbe..c152acfc716560dd5e35e9e1c4ecd84d81435810 100644 GIT binary patch delta 84 zcmeBR>0p_#!_-{Yz*N`BLc!3~%G5yDz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; lMAyhr!O+ag$ZX=dDN=*bru%>mKj7^eUL delta 83 zcmeBR>0p_#!_-XI&`{UNSi!)^3dlAvF)-i?@YfAWEz2y<%+J$xNi0dVQZO3biRo6rDP_xF3!>=;U9Z zga3)(-=K@L-vu9h_q}`fcz5?&d#g^qT9pSu)L|Wl(0~un@eLLDfo1pwecm*LXyFZ9 z!!BOIT|9@6@f41+?mx#*a1DCik|o5Z5EHRVvOuAW7x5vU#WB_wrvLSOtOq_~-T#7_ zB}~u**_IDMq6)fqT5kybxtTI!Ig*!2x#VNnS9`{ddN-oRj^hT7ziWFz7c8Pi<^TIjF0@Q|JEA>I47z?L6$vJTK9wSnoTn-7?fTGKX9sDdZEO;tFF)xCk|v zhtse$?AKu$`vVw*63)OgI05@`1l~cq=K)6GGkjH8kCyPkQ*`NpOSk~9;S_v?8TbZi z$PY*Zd=2}5kRC|jF#Vr`Xt5=TtJxSrr49)1pwCex#`MAAC^mG6Dvr<~R0&$Dwl9yl zC3#nPt^V&-MCL`{EA?bKTPS3Ut6VP{YvtfwnXQK%y~GO@L$56BsCZ4dUUttB(rpXR zb_~ANwxr3cj%j(q, 2016 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-04 19:09+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nome" msgid "Value" msgstr "Valor" -#: apps.py:37 -msgid "Found in path" -msgstr "Existe no caminho" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Definições" diff --git a/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo index f3b1eacf33d640e3cedf6352471c484313ac1b18..e222551f785be9622b9f4d54e4e8036ba667e407 100644 GIT binary patch delta 87 zcmX@ea*$=h4pVbo15;fi3k5?{D^o*V0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X p6I~-i1w%6{BeRKbJNSJP^U_Nb(}A)@`SC&ilS>$*C*NmG0suvX8fgFk delta 87 zcmX@ea*$=h4pTE-LqlC7V+8{vD19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "Nume" msgid "Value" msgstr "Valoare" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo index 8fd731350734b7a6d153294dbd1ab8102b1cbcfd..da9fb167ef49a8b8986c240f68399c514447accc 100644 GIT binary patch delta 378 zcmW;HK}y3w7>40VnyM|fYC)=~7zI})(8RWC6i-lHXji(LN~l6@BuPcw^ai>Z3gQ*S zm5aLQ6@+>L&!C&GeJ4MB^Gs%v`6r|NS8niAvW9}nlXcQ11u`bOeu+i?$O@Sfy}w`x zQNj(J!z!-g0T%Hbv)D%c{xz0OA?|U8=ckMiz7PX3WU|A;1Zy}&eQ<@Yhj@&e_=t=6 zid*=GoFzCjy&#{Z7XdL#baUNEm;Sk2I%7DMw?R6@ck)Ud84v2yXcqRIYTfbnZMW{% zUA1Jc?XpsHJlA#`zSpQ!seDt$iPMT?FYd}DjC}hnYzI*iVl1PZP+gd<`KIi3`mz)F bcGOqz=A~NBjIuA2@%OVjv9>>oR@wLm`_4Lg delta 460 zcmXZXPfG$p7zXg!T`S!*YERi88V^DctD~9GcInhfJ9(ct&>=enAI*!#G^T z)C}B$YETod!wa|o-{2(tg)wMgntDJS;%E{=ROv$o4^>MwD@fSzc4PQaw^C&yIBQVj z>bqI-#2zgPTIKFR>*v%EN$z`EK9aRlDLcJPS=w32`mfq-B5Si%JGDmB%wcSaq0Ahw zyLO?*MZL`3O3k6=Qn`|-a#7m#=kNTogTC+;?cr^WXJe^itl)d)by9`5+&u cyruG~-|U~r-rbq8p;_p5sO(}>8^IRx2SF8ALI3~& diff --git a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po index 3e8cdb176a..aefffb4649 100644 --- a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,15 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-19 20:00+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -35,14 +38,6 @@ msgstr "Имя" msgid "Value" msgstr "Значение" -#: apps.py:37 -msgid "Found in path" -msgstr "Найдено в пути" - -#: apps.py:40 -msgid "n/a" -msgstr "не задано" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Настройки" diff --git a/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo index 50e863802e78efb046ba85bd6c2143e352d74d55..d04363866153c3e3b239908fed34c3b2f63c5785 100644 GIT binary patch delta 64 zcmZ3_vYutaB3^S{15;fi3k5?{D^tUX>!m>gCb~w33WjD@MrISQck%lq=B1Y=rl(pd S6z9YTdrnSZjGla&F$Dlkw-bN> delta 64 zcmZ3_vYutaB3?6HLqlC7V+8{vD^s(H>!pDL2FAKZh6+Z8Rt82BuXjx@WQ^kXNz6+x TO-xU`R!U6;g?R4WA|14E!X p6I~-i1w%6{BeRKbyZL<*^U_Nb(}A*OnekzMlgk;SCqH5|1pq0N8S(%C delta 87 zcmbQvGM#0@4pTE-LqlC7V+8{vDC&U@< diff --git a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po index ae3860801d..03acb4d237 100644 --- a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Tên" msgid "Value" msgstr "Giá trị" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo index e669f661ebffd14784295307fa46e7fb88c7c658..4d9aefa8283cc72828d887f4f7eb6e1f29a2916a 100644 GIT binary patch delta 87 zcmeBS>0z0$!_-{Yz*N`BLc!3~%G6NTz{J3SE5KhjD77rJI5R&_*Cnwe)k?w0z!0d; oMAyhr!O+ag$ZX=i$#)nH03gB{wEzGB delta 87 zcmeBS>0z0$!_-XI&`{UNSi!)^3dlAvF)-i?@YfAWEz2y<%+J$xNi0dVQZOk+Fh-k(H_0WC2!bpooF7u92aFk)f5L;baTe%E|j!qj-E0 U^U_Nb(^IV!5{ovAvvIHh0QIX7ApigX diff --git a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po index 41c790b791..84d9477d22 100644 --- a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +64,7 @@ msgstr "فك الملفات المضغوطة" msgid "Upload a compressed file's contained files as individual documents" msgstr "تحميل الملفات في ملف مضغوط كوثائق منفردة" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "ملف الاعداد" @@ -71,54 +72,58 @@ msgstr "ملف الاعداد" msgid "File" msgstr "ملف" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "تحرير" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "مصادر الوثائق" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "دائما" @@ -131,15 +136,15 @@ msgstr "لا" msgid "Ask user" msgstr "اسئل المستخدم" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "مسار نظام الملفات على الخادم" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "قيمة العرض لتمريرها إلى نظام المعالجة" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "قيمة الارتفاع لتمريرها إلى نظام المعالجة" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "هل يتم فك الملفات المضغوطة أم لا." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "حذف الملف بعد رفعه بنجاح." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "غير قادر على ايجاد قائمة بملفات الاعداد: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "نوع الوثيقة" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "انشاء مصدر جديد من النوع: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "الخطوة التالية" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo index 6ebd27275660b4ed34a1f455dd412eda74dd927f..80ccc262eb7b1096ed97473b01a87fee21622c57 100644 GIT binary patch delta 87 zcmZ3?vzTYYR3=k%T?12HBMSvXQ!7(LT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA pIul(ZLj^-KDvBP$@=z{J3SE5KhjD77rJI5R&_*Cnwe)k?w0zz`^B ntZQVbU}R`zXgK*4Q_bXH<|rPY#Ju#<#B`vNr1Z^en9G>}3_=*l diff --git a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po index c5e0b1135e..c58c46eb1c 100644 --- a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Iliya Georgiev , 2012 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "" msgid "Upload a compressed file's contained files as individual documents" msgstr "" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +71,58 @@ msgstr "" msgid "File" msgstr "Файл" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "По подразбиране" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Редактиране" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Източници на документи" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Винаги" @@ -131,15 +135,15 @@ msgstr "Никога" msgid "Ask user" msgstr "Питане на потребителя" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Вид на документа" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Следваща стъпка" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo index 3d7419f22057a1e21cf5c671ccda4f0a2d97a449..8b460045875b07dc6fb7a540bdd42e6e105db3f5 100644 GIT binary patch delta 68 zcmX>ubX;fyGb^vTu7Rnpk%fYxsg7|M3 Wsa6U}#qmy#lh3k7Z?<6LX9fU2dJ((; delta 68 zcmX>ubX;fyGb^u|uA!l>k+Fh-k(H_0WC2!bpooF7u92aFk)f5L;baTeX_N1, 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +64,7 @@ msgstr "Otpakuj kompresovane datoteke" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload kompresovane datoteke koja sadrži individualne dokumente" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Osnovna datoteka" @@ -71,54 +72,58 @@ msgstr "Osnovna datoteka" msgid "File" msgstr "Datoteka" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Urediti" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "izvori dokumenata" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Uvijek" @@ -131,15 +136,15 @@ msgstr "Nikada" msgid "Ask user" msgstr "Pitaj korisnika" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Serverska putanja na filesystem-u" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Vrijednost za širinu za konvertovanje na backend-u." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Vrijednost za visinu za konvertovanje na backend-u." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Otpakuj ili ne kompresovane datoteke" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Obriši datoteku nakon što bude uspješno upload-ana." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Onemogući dobivanje liste osnovnih datoteka: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Kreiraj novi tip izvora: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Sljedeći korak" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo index f73fd7ff4b2bc29b4508700dce8351f14ae05909..e7e7a76146ec177f9b5058594163f05ded06a744 100644 GIT binary patch delta 65 zcmaDN@I+w4I~HDZT?12HBMSvXQ!7)$$-h~oK_Vu)MurN8W>!XKla*O3d3+M{(n}N5 TQ>_$I5+~1Qjo!@6mdFGEZ^ROb delta 65 zcmaDN@I+w4I~HCuT|+}%BVz>vBP&z0$-h~ofg%RRx<-ZyMut{~hLe?9D<`jHjpFf1 U%u6p#Oi#5^NJ-qx#FoSa0C2Gqf&c&j diff --git a/mayan/apps/sources/locale/da/LC_MESSAGES/django.po b/mayan/apps/sources/locale/da/LC_MESSAGES/django.po index 681b2a1908..41297ee0f2 100644 --- a/mayan/apps/sources/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/da/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mads L. Nielsen , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Udpak komprimerede filer" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload individuelle filer fra komprimeret arkiv" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Staging fil" @@ -71,54 +71,58 @@ msgstr "Staging fil" msgid "File" msgstr "Fil" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Standard" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Document kilder" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Altid" @@ -131,15 +135,15 @@ msgstr "Aldrig" msgid "Ask user" msgstr "Spørg bruger" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Serverside filsystem sti." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Bredde, der overføres til konverter backend." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Højde, der overføres til konverter backend." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Hvorvidt et pakket arkiv skal udpakkes eller ikke" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Slet filen, efter upload." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Kan ikke danne en liste med staging filer: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumenttype" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Dan en ny kilde af typen: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Næste skridt" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo index b148fe64b4dd22b86926684be7018cac4e36b6c1..52aba6c4f78746d892e5cf56a328fdeabbd4ef8f 100644 GIT binary patch delta 2554 zcmYk;e@xVM9LMnw-N~;)5)BYR4ii)G;O^x3Wr`xCC<0Vwh6S)OEOiHxcOE8vp8OGx} zT#Ge02R}x2-H++UM9eWNi+J!QX5n}C3%8NJ%^!CAF{)$7lg7-)L`=iQs0kEfDQ-bc z>;v@UXQ=ll@oD@8hw&jMF}@ji%KE}dbn?Mh_za%IWc(5N&rIS7K?~z5Czfmv7&9!Epf!fLf)QU<_6Wfbg z(R-+^?MDqXh#7bSwS#9-6S{z!_!Zl$7~u@ePgK6e`>2k_>0K*6ixqeYH)1@aslx{B z!e-JP%A%$i*Xb+;R)0NZrGpSL5=%ogo>NW3>M%@rsu;J z)ED}3IEKJ5?J_b^jln*KnB1CLcgOX3YOspfe5G6!5 zp#;@6T|=lSPa23SH7Mj-v?x&*5nBl*?+Zlq-+%nC3&>^}ei delta 2636 zcmZwIe@xVM9LMnw0t(2F00TV&z8Webhj-v1orL7iAQ41ELlh3U&QmxLsI*qsYBl<` zwU{G|EwiFpu0OohYBgtD)@ruZTw877tkwXv&ADhxR_pn?`?B>%pYguO=kvYqeSW+@ zpYNCJb>G#8FJ&bhHO66A6iW*T9 zdkVFp`kGKY}pti=5P5#@dxX80s_9AM) zS5PTCh5PYsRELS2G_9}%H=+ku;!)K1Cy~C*c~k~|zykakHF1rqg`}ar&kIx0z(wf9 zGAzS3EXU_iKRAmY#2Iq|`)EJG@|CF@wiztbqFsv1u>p&55VfUas0^J#P5caM0^u1d zn!rCu)=koq*x_-Y2JoP6Y(`~dpWW`T4WhPU0Cnh|MLkV#VJUu!>Sr1^;e2k={q@L} zgiR-vceyZ#T4_Gdl4iOZmFo4V4z?m$G+n6sj-vMdY19IaV+p>7tMF@7>i(EHD(dhPWEaeNd>t?827H`lXr;s0h@;qolc)h}3h5l1Py<{* z^*4c9&?IULui5PxR0eNiSRE%>vF9-t)lnWkjH9R(XYowwaa@6#kP~&?gIZx7Dzz=B z{zA5o;wswDqZ>a&3#V+8my!RqTqs$_zF<3s@EB_5Q>X!dN4+p+uoM5nYHYhbw$c-* z!}SIh;UsF{R2n*rm8c9fpdQy2)B+wW3dbrhaY3)naoaPf(|Z=n@T%Q*@N6ly+b|Aw zQ1$)Yx<+U)cExNb=8Au=g36YPws{Rv$oSD05JbyvK3#TQDeoov?6$ava1y%+t!S=j zKUH*aHxNe%y+2wA9d4C_gw9Ww8g>cmz|;_T5jzO2?q0$oc-KT!*c~lY!J)>;1sU%eN467U_ zLeUz}HkJ_kh&zZ)gbwikl`UMXCpe4IveC8}>+HHi2SH^I(Lmfs=-_!Gy~$rBr3HKZ zR=+Rcw}QRCK%_Y9T)d~!>2^EID=b&Jm%3}M%azj9=xp{s7#s}tg`AsxLw>JS?s9XV z%UR*J+*MxBx{>^x+~VDRok8EA)#UT{ANE_-L(yhgf3#T}qb%efsu|go(=igsY0cQ~ r3k4ovbg$LzZ{NHnlA1d&CDR`q@`pNuJ>Ax>AzvUE3PctxosRz(x;^{2 diff --git a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po index 4235d01a05..55e0138433 100644 --- a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 @@ -14,45 +14,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-31 18:57+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Quellen" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Quelle definieren" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Dokumentenquellen definieren verschiedene Möglichkeiten für die Einspeisung in Mayan EDMS. Minimal ein Webformular für das Hochladen mittels Browser ist erforderlich." +msgstr "" +"Dokumentenquellen definieren verschiedene Möglichkeiten für die Einspeisung " +"in Mayan EDMS. Minimal ein Webformular für das Hochladen mittels Browser ist " +"erforderlich." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Erstellt" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Bild" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Zeit" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Nachricht" @@ -68,7 +71,7 @@ msgstr "Komprimierte Dateien entpacken" msgid "Upload a compressed file's contained files as individual documents" msgstr "Ein komprimiertes Archiv hochladen, das einzelne Dokumente enthält" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Arbeitsdatei" @@ -76,54 +79,58 @@ msgstr "Arbeitsdatei" msgid "File" msgstr "Datei" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Standard" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Neues Dokument" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Neue IMAP Quelle hinzufügen" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Neue POP3 Quelle hinzufügen" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Neuen Staging-Ordner hinzufügen" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Neuen Beobachtungs-Ordner hinzufügen" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Neue Quelle für Webformular hinzufügen" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Löschen" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Bearbeiten" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Dokumentenquelle" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Neue Version hochladen" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Protokolle" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Immer" @@ -136,15 +143,15 @@ msgstr "Niemals" msgid "Ask user" msgstr "Benutzer fragen" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Webformular" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Staging-Ordner" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Beobachtungs-Ordner" @@ -152,7 +159,7 @@ msgstr "Beobachtungs-Ordner" msgid "POP3 email" msgstr "POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "IMAP" @@ -160,11 +167,11 @@ msgstr "IMAP" msgid "Label" msgstr "Bezeichner" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Aktiviert" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Quelle" @@ -176,214 +183,226 @@ msgstr "Interaktive Quelle" msgid "Interactive sources" msgstr "Interaktive Quellen" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Pfad auf dem Server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Ordnerpfad" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Breite, die an den Konverter übergeben wird" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Vorschaubreite" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Höhe, die an den Konverter übergeben wird" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Vorschauhöhe" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Sollen komprimierte Archive entpackt werden?" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Entpacken" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Datei nach erfolgreichem Hochladen löschen." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Nach Hochladen löschen" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Die Liste der Arbeitsdateien kann nicht ermittelt werden: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Fehler beim Löschen von Staging-Datei: %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Staging-Ordner" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Webformular" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Außer Kontrolle" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervall in Sekunden zwischen den Überprüfungen auf neue Dokumente" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervall" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "Ordnen Sie einen Dokumententyp für Dokumente aus dieser Quelle zu" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumententyp" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Ob komprimierte Archive entpackt werden sollen" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intarvall Quelle" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intarvall Quellen" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Typische Werte sind 110 für POP3, 995 für POP3 über SSL, 143 für IMAP, 993 für IMAP über SSL" +msgstr "" +"Typische Werte sind 110 für POP3, 995 für POP3 über SSL, 143 für IMAP, 993 " +"für IMAP über SSL" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Benutzer" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Passwort" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Name des Anhangs, der die Metadatentypen (Paare von Namen und Werten) für die folgenden Anhänge enthält (Bemerkung: dieser Anhang muss der erste Anhang sein)." +msgstr "" +"Name des Anhangs, der die Metadatentypen (Paare von Namen und Werten) für " +"die folgenden Anhänge enthält (Bemerkung: dieser Anhang muss der erste " +"Anhang sein)." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Name Metadatenattachment" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Betreffs, der für den ausgewählten Dokumententyp zulässig ist" +msgstr "" +"Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Betreffs, der für " +"den ausgewählten Dokumententyp zulässig ist" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Metadatentyp des Betreffs" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Absenders, der für den ausgewählten Dokumententyp zulässig ist" +msgstr "" +"Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Absenders, der für " +"den ausgewählten Dokumententyp zulässig ist" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Metadatentyp des Absenders" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Textkörper der Nachricht als Textdokument speichern" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Textkörper der E-Mail speichern" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Metadatentyp \"%(metadata_type)s\" des Betreffs ist für den Dokumententyp \"%(document_type)s\" nicht zulässig." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" des Betreffs ist für den Dokumententyp " +"\"%(document_type)s\" nicht zulässig." -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Metadatentyp \"%(metadata_type)s\" des Absenders ist für den Dokumententyp \"%(document_type)s\" nicht zulässig." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" des Absenders ist für den Dokumententyp " +"\"%(document_type)s\" nicht zulässig." -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Anhang-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "E-Mail Quelle" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "E-Mail Quellen" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP email" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "IMAP-Mailbox, die auf Nachrichten überprüft werden soll. " -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Mailbox" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Beobachtungs-Ordner" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Protokolleintrag" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Logeinträge" @@ -413,7 +432,6 @@ msgstr "Staging-Datei löschen" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Fehler bei der Verarbeitung der Quelle %s" @@ -421,94 +439,108 @@ msgstr "Fehler bei der Verarbeitung der Quelle %s" msgid "Clear" msgstr "Löschen" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Logeinträge für Quelle %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Es wurden keine interaktiven Dokumentenquellen konfiguriert. Bitte erstellen oder aktivieren Sie eine bevor Sie fortsetzen." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Es wurden keine interaktiven Dokumentenquellen konfiguriert. Bitte erstellen " +"oder aktivieren Sie eine bevor Sie fortsetzen." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Dokumenteneigenschaften" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Dateien im Staging Pfad" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Neues Dokument in die Upload-Warteschlange eingereiht und demnächst verfügbar" +msgstr "" +"Neues Dokument in die Upload-Warteschlange eingereiht und demnächst verfügbar" #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "Ein Dokument aus Quelle %s hochladen" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Vom Dokument \"%s\" können keine neuen Versionen hochgeladen werden." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Neue Dokumentenvrsion in die Upload-Warteschlange eingereiht und demnächst verfügbar" +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Neue Dokumentenvrsion in die Upload-Warteschlange eingereiht und demnächst " +"verfügbar" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Eine neue Version von Quelle %s hochladen" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Quelle des Typs %s erstellen" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Quelle %s wirklich löschen?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Quelle %s bearbeiten" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Typ" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Seitenbild Stagingdatei" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Schritt 1 von 3: Dokumententyp auswählen" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Schritt 2 von 3: Metadaten des Dokuments eingeben" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Schritt 3 von 3: Tags auswählen" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Nächster Schritt" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Uploadassistent" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -591,9 +623,11 @@ msgstr "Uploadassistent" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo index 240f0068ce7463009aeb48a2c00a3244ab488279..9e6f89c2e54d000e4d341cb05e329f8aa9b638cd 100644 GIT binary patch delta 26 hcmaFN|CoP68Vj$vu7Rnpk%fYxsgk+Fh-k(H_0=3 zi5AsXN$$8_?g2U4gRyog132$_L-3zg7k zsD5su`niRSW&TF3;BY!A$3j%QW-MiVvyKAEoBgPUhf$fILM>$mHKPlt#Qs3dD0hr8 z!!RE;P$52qb5JX|0yR(*D)AQIO{gu{f$2dCdnl-*YI-MGvjS_d85{8ks>5s8g*TB$ zOcPnCehX>>VN}9V)WH3ycF!R>n?uO)GAB@H?e%f2zjtV;P=qiYDNdK z76))He(V4KFY+P;6v`<4f_h*Y=^n{3 zW&xIP{{hpGH&KUfI7eKTU@0bD{~nOaV(9ha6YPih%aryKD>m-kySUFXlyZpjGHzu zQ_x{Jj%sigHNYpR0dJsY@DI+x5gc*7cBQCxO{f*f1OE z?_h!6|C#ir2dYs^*o+!5gnF>YuRr7aA!^UBpk{a-mDq3o@A=F|&(A}xY&j~yYE(kC zcmsFhFvd4E)arECV*_r$Hav+s{l8-jwH!L-y~wJY{ivlrf!eb7Py>F1>hBV&{Wa8U z_Y>;O{EBKfhJ%z=W|Jt)#p%d7H1)_iF;#p&!`uIJYrD)f%(;&<}|v7D$N^or`zIoaivvMZ!P zHWF;T*-U74x`-Ww64lj7XtwvR1`6wl9%4A-dn*9m9|UE~WKEqaxRmuKuay0Fx{Y!p zQR~+&#x;Jq4cQTIuUGnY+Kv{YopAiRr%|gkn@DrEyuEZ$r+GD@Jq;80U+evwMOaN} z`E-SdRxL_r=+OKBq<70-JlsIk5KV+$Jr1h(k4by` zD52{SqM2Bw8!qd8XaCyqN}Jt;-iCTYXX*Y+XG!N~C!sgTOHU`Y+`GvhLY>rm*TWRH z`!`SF2*0euxz;b=V~byyi_oalu|3(A{hg6;r%lFe*z0yz zEN*+;M8fHCY5w)7o*@Gp$6cv&IudFVa;=k0Iy7xBHEo@#o=}v&Ok1SKjir*NEgtFU zaO3xNm58O{Vb?0hnoPy`{@jYCfna5ztjaE~tgc)f2v!7xBU@Vn>)gJGQVi5NNw?aT z1sBtz{X<3>r>TN*c!bhJ3nq+F*xX4_pGj=MY&O}Twe;@;Y5wk=a$%Uw{L+Iuk*wX2&~ zwpur8-EJFBIo&p{1bK>%6HXVc&8mUB6ALo`6&4N6G|pI-Q&^vjFhr6r9h+bgoT%I7 rv^$B?fppQ#l21P-|Gjj;+R-d#d!4vryB)hLMXFAAg>2?jQCIH&qOD-u delta 2526 zcmYk+e@xVM9LMp`!Q~H-_#r0#f)$MprR#nGO8C-Pzh~D&147Oh3%*TIx!aqP%Cy4 zHNY8E!XvgHpqBg-9K)-q_nf#pKGBmH-oS&msnp;U>V-v&-idDHkvW5UK8l*bXQ+fP zqXr&F^}B|QVQwJD$V{Wo)NiP*OlCGpFay;uH;wgY@}`6bT2e3SMfJ#c%ziAuE-b`X zQ8S7ne`bPzYj6^^1u5zAM3UW{$fb1Fe-o8)9u#9T8>bFss6E`x zKh5-M%*Q@d!V%OAM(oeeqgLp1bm17T#^2F{`J7Dk--fR^I5Sv8`&O8vtV$;7>yWLp z-G|F*A4SdNEb7$1k2QD^H3KI{UkRt;eOQi4v=O!B1E_?bN1dG^`}rxezscX+n4f!^onUDn7KZ5jEhms67v(J|9NC_dIHx2~^_0;tIN% zzp3b2EoC%ytU%3p7wVKZBdchhvp;_seY8hWd;1ge3iC6n-wbM{GWfCvDn|A9pq__p zU%&;r{}C#h*)Wok`PA-k9rc1+sF~eCB{qXfbUs;6;R@8Xax!fl+9a&TT-=EP)SlHIp1Jxem)ZROa=l0RyNNIEd_~Su{~aIKjW;KI^s#9iI^=q=}bCy zbF?xlTH0!&h}c5RE!*sdwp%M#ZnwkDRO;p=-B^&~2DoifQQJ>?c;+ zAMiV5+;;t8)OndLI(&QWMkB_~3RV$YW6!y}b4v>i-2{&wMrs$1MKhDK9MP8KJC5jJ zN=IT!s4Hk440HsoP_4c?b1ARfi<#Ct(-_PeSkBnv>jd-&5E~*Rkbo4Wb-wGaz zp2(_nL?^TB9MRS#rxKzCc@@s=S_TjHSncHUX!Wu>N8}^Rir%(D3I73| C%JP-~ diff --git a/mayan/apps/sources/locale/es/LC_MESSAGES/django.po b/mayan/apps/sources/locale/es/LC_MESSAGES/django.po index 5baae4eb66..5e04b8fcf1 100644 --- a/mayan/apps/sources/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/es/LC_MESSAGES/django.po @@ -1,56 +1,59 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:42+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-23 03:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Fuentes" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Crear una nueva fuente de documentos" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Las fuentes de documentos son la manera en la que se almacenan nuevos documentos en Mayan EDMS. Crea por lo menos una fuente del tipo formulario web para poder cargar documentos desde un navegador." +msgstr "" +"Las fuentes de documentos son la manera en la que se almacenan nuevos " +"documentos en Mayan EDMS. Crea por lo menos una fuente del tipo formulario " +"web para poder cargar documentos desde un navegador." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Creado" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Foto miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Fecha y hora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Mensaje" @@ -64,9 +67,10 @@ msgstr "Expandir archivos comprimidos" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Subir los archivos de un archivo comprimido como documentos individuales" +msgstr "" +"Subir los archivos de un archivo comprimido como documentos individuales" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Archivo provisional" @@ -74,54 +78,58 @@ msgstr "Archivo provisional" msgid "File" msgstr "Archivo" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Por defecto" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nuevo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Añadir nuevo correo electrónico IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Añadir nuevo correo electrónico POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Añadir nueva carpeta de ensayo" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Añadir nueva carpeta observada" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Añadir nueva fuente en formato web" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Borrar" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fuentes de documentos" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Subir versión nueva" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Bitácoras" +#: links.py:91 +msgid "Check now" +msgstr "Revisar ahora" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Siempre" @@ -134,15 +142,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Preguntar al usuario" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Formulario web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Archivos provisionales" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Carpeta observada" @@ -150,7 +158,7 @@ msgstr "Carpeta observada" msgid "POP3 email" msgstr "Correo electrónico POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "Correo electrónico IMAP" @@ -158,11 +166,11 @@ msgstr "Correo electrónico IMAP" msgid "Label" msgstr "Etiqueta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Habilitado" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Fuente" @@ -174,214 +182,220 @@ msgstr "Fuente interactiva" msgid "Interactive sources" msgstr "Fuentes interactivas" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Ruta a los archivos en el servidor." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Ruta de la carpeta" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor de la anchura que se pasa al backend convertidor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Ancho de muestra" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor de la altura que se pasa al backend convertidor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Alto de muestra" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Expandir o no archivos comprimidos." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Descomprimir" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Eliminar el archivo después de que se haya cargado correctamente." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Borrar después de subir" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "No es posible obtener la lista de los archivos provisionales: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Error al borrar archivo de ensayo; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Archivos provisionales" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formularios web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Fuera de proceso" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intérvalo en segundos para detectar documentos nuevos" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intérvalo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Asignar un tipo de documento a los documentos subidos desde esta fuente" +msgstr "" +"Asignar un tipo de documento a los documentos subidos desde esta fuente" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo de documento" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Expandir o no archivos comprimidos." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intervalo de fuente." -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intervalo de fuentes" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Las opciones típicas son 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, 993 para IMAP sobre SSL." +msgstr "" +"Las opciones típicas son 110 para POP3, 995 para POP3 sobre SSL, 143 para " +"IMAP, 993 para IMAP sobre SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Puerto" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Usuario" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Contraseña" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nombre del archivo adjunto que contiene los nombres de los tipos de metadatos y los pares de valores que se asignará al resto de los archivos adjuntos descargados. Nota: Este anejo tiene que ser el primer archivo adjunto." +msgstr "" +"Nombre del archivo adjunto que contiene los nombres de los tipos de " +"metadatos y los pares de valores que se asignará al resto de los archivos " +"adjuntos descargados. Nota: Este anejo tiene que ser el primer archivo " +"adjunto." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nombre del anejo de metadatos" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo de metadatos de asunto " -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo de metadato de remitente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Almacenar el cuerpo del correo electrónico como un documento de texto." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Almacenar cuerpo del correo electrónico" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Anejo-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "Fuente de correo electrónico" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Fuentes de correo electrónico" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Tiempo de espera" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Correo electrónico POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." -msgstr "" +msgstr "Buzón IMAP en el cual revisar mensajes." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Buzón" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Carpetas observadas" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrada de bitácora" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Entradas de bitácora" @@ -411,7 +425,6 @@ msgstr "Borrar archivos provisionales" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Error procesando fuente: %s" @@ -419,27 +432,28 @@ msgstr "Error procesando fuente: %s" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Entradas de bitácora para fuente: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "No se han definido fuentes de documentos interactivos o no hay ninguna habilitada, cree una antes de continuar." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"No se han definido fuentes de documentos interactivos o no hay ninguna " +"habilitada, cree una antes de continuar." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propiedades de documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Archivos en ruta de ensayo" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "Nuevo documento en cola para ser cargado, estará disponible en breve." @@ -448,65 +462,77 @@ msgstr "Nuevo documento en cola para ser cargado, estará disponible en breve." msgid "Upload a local document from source: %s" msgstr "Subir documento local desde la fuente: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." +msgstr "Documento \"%s\" esta bloqueado de crear nuevas versiones." + +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" +"Nueva versión del documento en cola para ser cargado, estará disponible en " +"breve." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Nueva versión del documento en cola para ser cargado, estará disponible en breve." - -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Subir una nueva versión de la fuente: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "¿Lanzar chequeo para la fuenta \"%s\"? " + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Crear nuevo tipo de fuente: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "¿Eliminar la fuente: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Editar fuente: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Imagen de página de archivo provisional" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Paso 1 de 3: Seleccione tipo de documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Paso 2 de 3: Entre la metadata del documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Pago 3 de 3: Seleccione las etiquetas" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Siguiente paso" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Asistente de carga de documentos" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "Etiquetas a ser anejadas." + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -589,9 +615,11 @@ msgstr "Asistente de carga de documentos" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo index 1c1075e131d7bad6b131d2fc7a1251cb1a74560c..96766e3767112febcab7f7ce4b9808a71c4e09e9 100644 GIT binary patch delta 1659 zcmXxke@u;09LMn!x0|S&B$eyOZKT!QbZ^~$EkC0uKSE&>)|AXhh8cgjQ+{lknLQZU zvW$lLr|!%@nECMsVq?vZn#g}Nv*qVM%==T1XZJj>^PJ~A=X}riInV9N|CJZ)8|OG< zI4UTUD7Qx#vkR-jIdOO*j2VZ?w%Is=>k=G~8|~}e=;Zo1j>1zo2V0PzdCSR-{Wux_ z47Uf3o8FN$Oha|_q6P|J92Q~%mSY}n#j)6i(b$O&yod4l2xG7pqi_J#?>B0ECzDM@ z7bcjXF&R`eKrw27G8}`|n1ws+`)xRy>vmK|I#2;VM8-C6Fo6B2021h|KvPl4%tMVk z2Ng)E+L_<1qB0lPVF{i?#xNgn8-7L?R`RskYmg>WkD7QtY5|R?e#cNNK8qvqGV0Y{ zMP>F8Du6Bws$(}5rRpPUfUl?({6$UZ;-(%*L`~$u4VZ${u?ZE>Ra}4}OvRt}{V7bM zj1{2*UV~F`Q#ARfk2y#KKhtb?IFFk65_<6lW?&EcF_I{$nnFApMk+Cx>lZ{Vzo7z% zC;urp8*^|oD$o{GMy`w{{~M{?r-3m{ax5DWGjS$Xpx*Hz+cT(%uc1<}LA&7udT6+gO8ryxVlSp+BvEL9Y|Oy<$j>xzT7idA zsqIER{|+bO7gR<@@vUm*>6niJ)pp)$~p{DS5IXYJA+EXF?6gegQNGfeUROHt8TP!*cSifLn1sc4D@^|L;`%G^8aBub>LmaUW_EHQVhW+vj*L z%$QH82^;xa3*c#7j!$q2CK0X1*^G1_+JH+ji=zA5U+LD7@R&4xGb<@tP8nq}rIey& zD5p9KDa))o;klDnQ&T2qP!>}DA1uRESg}rbxRzIJ`J8b{MgMQwYU}8)ro`IdoRu<< zS~+DEMgPq@w3#v~`MTg(WOX>*Vau&&&h=p?los*c5%NT}j)>0nW(K_eJdZC>5b#+~ wU2e5xd;LC-FQ>qtV|{ZSh+0}*U$?iquC~ClrP|savp&=v^C}|rI^l=oA70C+O8@`> delta 1733 zcmXxkTTB#J9LMpqz%EootQ1y6VT`x5b#Z4G5QrD5$fdGiY0*Y&?KW(2TcCx~rfDi0 z)26l&Uz`|;@x=#kP#?(F%Zm?QUaHnmqXB}KJ{Ti4CPkVUX_NN*v*TpXe9k#@=A8fe z&&)n8zgCgBJ16ac;b@`Er(8}krVHD>oH&B%#>_$6wHotiZ^2iv(`|o?KH7&c1CQVu z96)|%f>Qxb;sVTK5Y>cvoytpeg#Yg_t5Fkez#MEqKYoDa_!Z8^ALRoq6s#mCfJ6V*o9%-f8xhDjk7Su-Rkc_x=b%>;U7^O z*pC`_5VhlDn2JB69_=|)W^bVaxQz)7yiY}`dV)&zzo?1)bZRF{Q45!$ZmdErScls& zf{Sqw71%JY!*N`Og)E}$HK@#ef(pDhi~JW-*+U0o%`xO>lJ0;DsD-a!0B>S3rVw2S zZKTVz;`bh7x^W@xXGARv$iD(ujY}|wWw;j==*8LOU#a<(j`#5oWDZmRvN4PBU0jae zpq}+f*Yl`_e?z789%`NksIMcHZR*{bhkB^b^B0{X25NapdQ&@NDO8!Y1M+os7F+VdRc2Rf=4k&-~SYq zH|R*uH>L#ZF@(LSoeZINcn$S3{qFW>a8cJ6aq9Q*KZ06tgul5`oWMpbBHDWFM9p&! z8UFl5jA(~p%9~Dy*Z=BzYRwewqk*E^Hc}M7meR3`(&(J>u3YdAHKlSXWdr5K!G27O zfNcL)HxB~iY40qTa>pc`jghNi4vq#sKHU=9Pt%+nw;~# zZJxEs{PcTiS@HIm^;xtnX2mGMYiMo*9Z cFy1#hWKr2YdTMNs1;@wx#=c8-`F-C10Qq#qjQ{`u diff --git a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po index 732e2b8877..84f45feb8e 100644 --- a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammad Dashtizadeh , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "سورس" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "ساخته‌شده" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "اندازه کوچک" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "تاریخ زمان" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "بازگشایی فایلهای فشرده" msgid "Upload a compressed file's contained files as individual documents" msgstr "آپلود فایل فشرده شامل فایل اصلی سند." -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "پرونده مرحله ای" @@ -71,54 +71,58 @@ msgstr "پرونده مرحله ای" msgid "File" msgstr "پرونده" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "پیش فرض" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "اضافه کردن IMAP جدید" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "اضافه کردن pop3 جدید" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "ایجتد پرونده مرحله ای" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "ایجاد پرونده تحت نظر" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "اضافه کردن سورس جدید یک وب فرم" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "حذف" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "ویرایش" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "سورسهای سند" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "آپلود نسخه دید" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "همیشه" @@ -131,15 +135,17 @@ msgstr "هرگز" msgid "Ask user" msgstr "پرسیدن از کاربر" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" -msgstr "وب فرم ا " +msgstr "" +"وب فرم " +"ا " -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "پرونده مرحله ای" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "پرونده تحت نظر" @@ -147,7 +153,7 @@ msgstr "پرونده تحت نظر" msgid "POP3 email" msgstr "ایمیل POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "ایمیل IMAP" @@ -155,11 +161,11 @@ msgstr "ایمیل IMAP" msgid "Label" msgstr "برچسب" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "فعال شده" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "سورس" @@ -171,214 +177,215 @@ msgstr "سورس محاوره ای" msgid "Interactive sources" msgstr "سورس های محاوره ای" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "محل قرارگیری برروی سیستم فایل سمت سرور" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "محل پرونده" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "مقداری که به مبدل جهت عرض ارسال خواهد شد." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "عرض پیش بینی" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "مقداری که به مبدل جهت ارتفاع ارسال خواهد شد." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "ارتفاع پیش بینی" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "گسترش و یا آرشیوهای غیر فشرده" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "فشرده نشده" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "حدف فایل پس از آپلود موفق آن." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "حذف پس ار آپ لود" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "قادر به گرفتن لیست فایلهای مرحله ای نیست. %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "خطای حذف فایل مرحله ای : %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "پرونده های مرحله ای" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "فرمهای وب" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "خارج از پردازش" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "مدت زمان بین بررسی جهت سند جدید." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "فاصله" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "این نوع را به اسناد آپلود شده از این آدرس تخصیص دهید." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "نوع سند" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "غییر فشرده سازی آرشیوهای فشرده شده: بلی خیر" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "فاصله سورس" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "فاصله سورسها" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "هاست" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 for IMAP over SSL." +msgstr "" +"Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " +"for IMAP over SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "نام کاربری" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "کلمه عبور" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "الضاقیات-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "ایمیل کردن سورس" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "ایمیل کردن سورسها" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "اتمام وقت" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP ایمیل" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "صندوق پستی" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "پرونده تحت نظر" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "ورودیهای لاگ" @@ -408,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +422,28 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "هیچ منبع محاوره ای سند تعریف و یا فعال نشده، قبل از ادامه دادن یک منبع بسازید." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"هیچ منبع محاوره ای سند تعریف و یا فعال نشده، قبل از ادامه دادن یک منبع " +"بسازید." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "فایلهای درون راه مرحله ای" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "سند جدیدی که در صف آپلود است بزودی قابل دسترس خواهد بود." @@ -445,65 +452,75 @@ msgstr "سند جدیدی که در صف آپلود است بزودی قابل msgid "Upload a local document from source: %s" msgstr "آپلود کردن فایل محلی از اصل:%s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "نسخه سند جدید که جهت آپلود وارد صف شد بزودی قابل دسترس خواهد بود." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "آپلود نسخه ای جدید از اصل : %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "ایجاد سورس جدید از نوع %s." -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "ویرایش اصل : %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "نوع" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "تصویر صفحه فایل مرحله ای" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "مرحله بعدی" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +603,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo index 217c04ccdb2769375c3eee23ca6a0600888bc154..b1d384f9f4100143b889d9c7634c8fbea2f076e0 100644 GIT binary patch delta 2566 zcmYM$e@xVM9LMpG@#Bym5uix^;sg~!j_!`%RES6jL4wc^gA_qe0))d83%BaRvbDJ= zcIuY#N6fiJ%giyi7Hh5*&3-U3Yin)UAD3I?KS3p1HS77h`%<6zzQ^bDz3+W~yg#4s z7hl|Qw9$V(Ir5~T^b@Oz(FkL7VYQ79O8-)0cH==z#u>{XrqaHJ%P=7}+|Iyg+NBtS z6xNmRZ!>4L|3Y;f5ob&a#^MTGi<&?YmS7!f zVlQDKzKOd3D&B=Ra1?K00^^%NeE0`r7|9nO;Bx#36Y(1I&jk5Mz+X`-xQ*!;%|$I> zBWgmGsD4^d{j?!tnZu|I4q-l?z(~e7m#O68G_pwZH|j>)o#C0UM5QthwW4Cw#ClOH zdJdJ^Vbnk;a3#Kl%HSkwLQ|-Te_{DG`q=~XJ(Z8~H&jO#>0K+H#Lajaw_yyUsl!I> z#unr!X3Dz$4Qc_`Q4^j;4Lpy!Zvk1GiB4i0aaj`i@1&B(g${fHbqIr~y;d4DV;ky+ ziKvOKL3Nme%0wxy!&+RAJ*b7fj*Mx>@m~B8wI#n`8=4gIuNCd#glM2{)Qo+&3!g!C z_$_K>e_|y@apJPD2K9YE(x*9zTKU_!7B8SCJcC-m57zfLQRDvZr{bV;8}l%i>AA5L z^@CwNzJwEtgS4|bVVO8)Ifa{O&tfhvXW8nn5;c*2yc>^T0|rnF4WiD9|E6`r0;+=~ z?%sgqs4dusnn(}oheuE|A3~-4xaB#^D_F?&IiyRI#YxM9t5jab5gfv_jPPMRjhe{ks8r6NR{R~>aUPZ06!PiBt(F70 zk@i_s2EIZKIFI*XGLH;NGuzjbe;<_tTu|zMMD5+r7>N=5+KVw*jf1GecnKfDY1CoM zV6+n4iRyR+b-K^vJvfP)_zl!n{eyactjh9RFOsbAU#U_oHLKrlPEQ;vJD?4v~nBKL#Qa# znhaSt4-zUQ%CrzV2b+mDqK4Q?sJMxSP|cXf(M~9{m4u34>1rbO6MKopqLWH?LvJy% z6)JiRA0m`ePw2}3ACFm8odfN$wxgHWM>G>EBr){=j61NCaB2O!si>3^N`0RilnA1W z*r5hRZ@HaB1yM&76X`@Wp~p+xrE)*fNK~moSr;a}-_#!_^i)(6p}+t5U&*1SgSeg0 zfzct-fh-_Ywh(%WES6jv9%}b>c>^P<&GGf^eVvEfJNdQS Je42SF@?Y6o_lN)h delta 2686 zcmZwJYfzL`9LMoP;sp^&Fd$KQked-p%gUmXAs5ju2#8ur-j?-QSOXRpF@3dZ*5qW3 zGiXIQjb&rw==37qWHo9RW2Uje8K#+-hSDw*S&d^&7sD>!-|oXqFFNCYKj(S&*>m}y za~|B+^!Vz?7b)>a3}pu~mw0WGG0$W1R6ZzAB^a|A4`2$8IgVo**E6RZGaK_!*A+Mg zSK~BXkCo`d$#@La^a;!`CSu;8lF5xhoQGdK55y%JLmwsq^@CJY! zF$*<;O4NW_Q0;_K?L3O~X`Vr4upbxVX^f|TbD2sBev3@r%$^y0FdH>;4=R-_P%~;o z4eSZjjE;no;NekEjX!h8l3(tXRj>QO_kKb2M4VHZ#Su$bTCZH#b`G1=J=SN3C@R z`O=89Q9mq14a|#5bq%WF7G#Vjh&i|i^YA6q1kWR5G9!2wUPUd}KnVqH?7GVu~u@HBozCVVvZ7!fP@EK;|71Y4ht0t0!`aUy4MIGm% z3rnyBH=+lhM*ZL{o{Tf*BJSpT7t_zhYmTW*^G>c8VKMqq?HxjObQW*NL2Se;sEI~O zxvNdH1oc22A8KF==Ho%sQoM;8$QjfR2T=nbLZy7faolkpJJ8GhWk_G97pw7E)Y4r- zk{U5%R4#DiCTfk|=PcR z8u%X60QaHVdk)pkyU2DhL%ODa^9>cv;CECi|G^>5$&RJ|Iw~`NU>hb_u|2Q@b^j`E z$8k)?0F7wiyBznTHs3+i1pARBn3pj^o8}!VI**^@llUd>#lZa7W*kH9fpm792AYMM zaRFLbh1#q>REiIy8$WdX6$`j7;D{&_t5E&+p*ZslpMVG!eS zKZfuCuD~0pO<6_jYq0^f>5k)K96`04QW)FhZoGr*rKkx63L~*KdyE@;ksNhAg_T^t zjTLwU@4>PKv6P1~j%%e`$Ms%fC7}(<>X~|CqSzA^)H0~(L?~0)^dEfzL9}QVN}b9S zqLa{!C&~jj;a` zZqFf9d@-VL!yxtbgfgQvb`Uz#|1B+CDAmg9Rze$2rJK+x(1wkkfA&`N&!N`0m6%GX zR1qv+v?%o}hybCp%W9Y=qK(){Xsvamnu+B^DY1yyOiYw*RM;-jjlLAMFA{bBZ=o`o z(Amu+$_W)6A(cmnu4s+_)nF0vFtLQFCCZ5ZD|OtwpJ4MxON}F2$K2=C=V&9SJVdM_ zHW0;xcc3%jqiIRO4%_PXwb@p%)7LhzAm#j|vT|2xsmrs_a(gPgFe74E*dX&J7XaBo-0s;zFStFK$zXf18kb&22CZFkr^ zLsh<3f7tG^eZ3|AP-kUdZQ7c?<7q83>U~{py^Ns33WNu4rlrrQtPTW%{&o$jC)C?x u1w!FY+uByB5u$B%_+mq*st1F1*ff7|vfB>t3Ut@0mKyB{1_, 2016 @@ -12,45 +12,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-23 20:06+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Sources" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Créer un document source" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Les sources de document seront la façon pour lesquels les nouveaux documents seront suivis dans Mayan EDMS, créer par au moins un formulaire web pour téléverser le document depuis le navigateur" +msgstr "" +"Les sources de document seront la façon pour lesquels les nouveaux documents " +"seront suivis dans Mayan EDMS, créer par au moins un formulaire web pour " +"téléverser le document depuis le navigateur" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Créé" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Vignette" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Date et heure" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Message" @@ -64,9 +67,11 @@ msgstr "Décompresser les fichiers" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Importer le contenu d'un ensemble de fichiers compressés comme fichiers individuels" +msgstr "" +"Importer le contenu d'un ensemble de fichiers compressés comme fichiers " +"individuels" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "fichier en cours de modification" @@ -74,54 +79,58 @@ msgstr "fichier en cours de modification" msgid "File" msgstr "Fichier" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Défaut" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nouveau document" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Ajouter un nouveau compte mail IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Ajouter un nouveau compte mail POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Ajouter un nouveau répertoire d'indexation" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Ajouter une nouvelle surveillance de dossier" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Ajouter une nouvelle source de formulaire web" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Supprimer" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Modifier" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sources du document" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Importer une nouvelle version" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Journaux évènement" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Toujours" @@ -134,15 +143,15 @@ msgstr "Jamais" msgid "Ask user" msgstr "Demander à l'utilisateur" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Formulaire web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Répertoire dit d'index, modifications en cours" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Surveiller le répertoire" @@ -150,7 +159,7 @@ msgstr "Surveiller le répertoire" msgid "POP3 email" msgstr "email POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "email IMAP" @@ -158,11 +167,11 @@ msgstr "email IMAP" msgid "Label" msgstr "Libellé" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Activé" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Source" @@ -174,214 +183,227 @@ msgstr "Source interactive" msgid "Interactive sources" msgstr "Sources interactives " -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "chemin de répertoire système sur le serveur." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Chemin du dossier" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valeur de largeur à passer au convertisseur en arrière plan" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Largeur de la prévisualisation" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valeur de hauteur à passer au convertisseur en arrière plan." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Hauteur de prévisualisation" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Indique s'il faut ou non décompresser les fichiers d'archive." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Décompresser" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "supprimer le fichier après importation avec succès." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Supprimer après télé-versement" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Impossible d'obtenir la liste des fichiers en cours de modification:%s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Impossible de supprimer le fichier en cours de modification: %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Répertoires dit d'index, modifications en cours" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formulaire Web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Process externe" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervalle en secondes entre la vérification de nouveaux documents." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervalle" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Assigner un type de document aux documents importés à partir de cette source." +msgstr "" +"Assigner un type de document aux documents importés à partir de cette source." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Type de document" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Choisir de décompresser ou pas les archives compressées." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "intervalle pour la source" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "intervalle pour les sources" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Hote" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Les choix typiques sont 110 pour le POP3, 995 pour le POP3 over SSL, 143 pour l'IMAP, 993 pour l'IMAP over SSL." +msgstr "" +"Les choix typiques sont 110 pour le POP3, 995 pour le POP3 over SSL, 143 " +"pour l'IMAP, 993 pour l'IMAP over SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Identifiant" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Mot de passe" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Le nom de la pièce jointe qui contiendra les noms des type de métadonnée et aux couple de valeur qui seront assignés au reste des documents téléversés. Noter que cette pièce jointe sera la première." +msgstr "" +"Le nom de la pièce jointe qui contiendra les noms des type de métadonnée et " +"aux couple de valeur qui seront assignés au reste des documents téléversés. " +"Noter que cette pièce jointe sera la première." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Métadonnées de la pièce jointe" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Sélectionner un type de métadonnée correct pour le type de document sélectionné, dans lequel enregistrer le sujet de l'email" +msgstr "" +"Sélectionner un type de métadonnée correct pour le type de document " +"sélectionné, dans lequel enregistrer le sujet de l'email" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Type de métadonnée du sujet" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Sélectionner un type de métadonnée correct pour le type de document sélectionné, dans lequel enregistrer la valeur du champs \"de\"" +msgstr "" +"Sélectionner un type de métadonnée correct pour le type de document " +"sélectionné, dans lequel enregistrer la valeur du champs \"de\"" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Type de métadonnée du champs \"de\"" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Sauvegarder le corps de l'email en tant que document texte." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Sauvegarder le corps de l'email" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Le type de métadonnée du sujet \"%(metadata_type)s\" n'est pas correct pour le document de type: %(document_type)s" +msgstr "" +"Le type de métadonnée du sujet \"%(metadata_type)s\" n'est pas correct pour " +"le document de type: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Le type de métadonnée du champs \"de\" \"%(metadata_type)s\" n'est pas correct pour le document de type: %(document_type)s" +msgstr "" +"Le type de métadonnée du champs \"de\" \"%(metadata_type)s\" n'est pas " +"correct pour le document de type: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Pièce jointe-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "source du courriel" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Sources du courriel" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Délai d'attente dépassé" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Compte POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Boîte IMAP où chercher les messages" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Boîte aux lettres" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "surveiller les répertoires" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrée du journal" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Entrées du journal" @@ -411,7 +433,6 @@ msgstr "Supprimer les fichiers en attente" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Erreur lors du traitement de la source: %s" @@ -419,94 +440,109 @@ msgstr "Erreur lors du traitement de la source: %s" msgid "Clear" msgstr "Effacer" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Entrée du journal pour la source: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Aucune source de document interactifs n'a été définie ou/ni activée, créer en une avant de continuer." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Aucune source de document interactifs n'a été définie ou/ni activée, créer " +"en une avant de continuer." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propriété du document" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Fichiers dans l'index, en cours de modification" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Nouveau document ajouter dans la file d'attente pour transfert et disponible dans les plus bref délai." +msgstr "" +"Nouveau document ajouter dans la file d'attente pour transfert et disponible " +"dans les plus bref délai." #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "importer un document local à partir de la source: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "L'ajout d'une nouvelle version pour le document \"%s\" est bloqué." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Une nouvelle version du document mis en fille d'attente pour importation qui sera disponible dans les plus brefs délai." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Une nouvelle version du document mis en fille d'attente pour importation qui " +"sera disponible dans les plus brefs délai." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Importer une nouvelle version à partir de la source: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Créer une nouvelle source de type:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Supprimer la source: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Modifier la source: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Type" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Affichage sous forme d'image de la page de fichier" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Etape 1 sur 3: Sélectionner le type du document" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Etape 2 sur 3: Entrer les metadonnées" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Etape 3 sur 3: Sélectionner les tags" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Prochaine étape" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Assistant d'envoi de document" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -589,9 +625,11 @@ msgstr "Assistant d'envoi de document" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo index 902f61a8c6a063e9fad91028874c1f46f6567f7b..fa52b889c9ba7792e6070a9113ec3e6217c80084 100644 GIT binary patch delta 87 zcmX@WeSmwzYbH~3T?12HBMSvXQ!7(LT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA pIul(ZLj^-KD5S6JvzeneGqdbv1OPA37`p%f delta 87 zcmX@WeSmwzYbH}OT|+}%BVz>vBP$@=z{J3SE5KhjD77rJI5R&_*Cnwe)k?w0zz`^B ntZQVbU}R`zXgFDcxn}Z8<|rPY#Ju#<#B`vNjMB|aEc+M%FOnFv diff --git a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po index 1ffec0bb11..6b289032a3 100644 --- a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Dezső József , 2014 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Tömörített fájlok kibontása" msgid "Upload a compressed file's contained files as individual documents" msgstr "Tömörített fájlokat feltöltése önálló dokumentumként" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Átmeneti fájl" @@ -71,54 +71,58 @@ msgstr "Átmeneti fájl" msgid "File" msgstr "" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Dokumentum források" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Mindig" @@ -131,15 +135,15 @@ msgstr "Sohasem" msgid "Ask user" msgstr "Kérdezd meg a felhasználót" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumentum típus" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Következő lépés" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo index eb8f82deb93545e9c8a2b918f10fc8c1b66c3b29..9dc290a4dcf09a8c1e1df1b4a0b319b06d18f41d 100644 GIT binary patch delta 87 zcmbQhH-T@%QD#$fT?12HBMSvXQ!7(LT>}#X1Fisn-JsO6%;L=aJYAQ>l2j`NBLhRA pIul(ZLj^-KDvBP$@=z{J3SE5KhjD77rJI5R&_*Cnwe)k?w0zz`^B ntZQVbU}R`zXgK*7bM537mM9*d#Ju#<#B`vN%#_V{S&W$g8QB>v diff --git a/mayan/apps/sources/locale/id/LC_MESSAGES/django.po b/mayan/apps/sources/locale/id/LC_MESSAGES/django.po index acadcb0714..000ef0735a 100644 --- a/mayan/apps/sources/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/id/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Sehat , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "tanggal waktu" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -61,9 +61,11 @@ msgstr "Kembangkan berkas-berkas terkompresi" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Unggah berkas terkompresi yang mengandung berkas-berkas sebagai dokumen-dokumen individual" +msgstr "" +"Unggah berkas terkompresi yang mengandung berkas-berkas sebagai dokumen-" +"dokumen individual" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +73,58 @@ msgstr "" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sumber-sumber dokumen" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Selalu" @@ -131,15 +137,15 @@ msgstr "Tidak pernah" msgid "Ask user" msgstr "Tanya pengguna" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +153,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +161,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +177,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Apakah mengembangkan atau tidak mengkompresi arsip-arsip." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Hapus berkas setelah berhasil di unggah." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Jenis dokumen" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Password" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +413,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +420,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +448,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Membuat sumber baru dengan jenis: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Langkah selanjutnya" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +599,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo index f6706e49dfaf5b7a573f77da23b858d092afd90b..766b42d06235649c8dbf6167efefb3337f390728 100644 GIT binary patch delta 2551 zcmYk-e@xVM9LMnw9`Y*?0RvN%J2Nfx@D4aY3^gfCz`ub(kE%X@Aw#%2}Mzc$7$<)J&rUw@A*S-fmv}Fp!d(0T`Ddp2lY_sbW-x;#m`0-} zund(@J*uA$R6pIwSY|J31z*JqJdCM~Z_ZFD!|#zvn%k%w)8`~JUw~T5GSrN!QHkwA z&FCf6(vF}8I*beO1Jnvmpb|=;693M69%Jl*`H9Nc_$R8Plk~0`PvAN{gPSme(bQoJ z_G1U~h)LM?3#bWPLM40^HSiy(`)(q0GiiBjBhJfX{X_$_-`fEl#oDdDvkIHxmyYNL+ zhf}DT{fqTDn-jMjH=}+ZMEW#GP&5A&7vl+3!sk#ExM+X>1vTzpF)CgvGgyWzNv|9` zQ4fsZJ1Lx4e3t7{PS|~T$a)NwKmwQHH7vnArmq$BBa3Nja051>COU#jG&V{_r}ur- z5>B8pzliGKHfrWBM%9CJP!ATOo-08OxCV9TI&lT=v%i0Y8u&CaM>C6?^m-QIsNVlF zD%!&YF2O0(0Dq%8PGJ-#Z#<|yueLUzmarYQ72T-k51@asFgU6O5kT~ z())jlif(M+8DM5GtC?Hm8<6D{ktkM7?c`X@6P?eOz|hMxm4c0Kr*vJ}lrI(k9d%YuoNF zPudIZ`x>H#*hB0ho*-1T6@$bqB1HH#{~c6Rw4Zvd26RDj5n8~SH9wu6djk=(4w49=Y%bV_Ot6t9r!ukIn|1YJ~bTA$x_+UAEua8G1q4Ef! z6Mv`Z%=FlcF4Q4bX(Za5TJlftUG)d4>n$i#+xY&>Z!^Ys=AU#0s=dB|x4g#f57Y+y zUSFlpm({Y(+uFA;JRFV;csB;4eYNg#pP&0Gz2$zlzpA#pD!#R_D7Q7z+cy-AxLYH` l!J%*@ez34DdrNR2v^N;yk#ICVUD!F^Ty#Biyu&l&`VW>g>q7tl delta 2645 zcmZwJe@xVM9LMnwc_cpq67(cc?h9cWao64PLm@%~MIi(-D@CP_<2cXm4g^b@oA*yT z`?a+((n_0|GiS`Lv9|CRwg6e^qlW-B{N1b$r?SqtATv_~bAsOwt1 z9Us9oT!-}-z*IblYWfJ~8dj(Q;v)o>x^VF}K~YSaMQ za0v!c1KE#NIEH%u65fe_<9^J(!5azrs2A4d&n#r_r)CatQWFHti-jZ5(Yu0)I8 z)Zk{^f&<8_=DdCXDry3Mp$42XYpUZ6)N?t=98D3j%}n_$@*k$+5&ifQ>V=Q-Sc)-UU@zC(nf_fkVS5ubfLx|~4=zR*cA+x46G^Jsg^jouHPOTm zR5X%{s9k&&mBKVy*T~CI4K$->-hp~?1M0mX>b)qc!#$|YcNFi#Pwd}+M|GUZk0isi zBd0E5dZ@g{jUA{p%%!ywEJ1a!0@ZLEGI9}%LM_E8>isjQf!;tZuXiZ{Y+$gm?qm!)PUlsH6KE4 z)?N1X0o3k4hBN8k9H*ieK0tkl#_=S6hkEb;>!8fMjji}TcH%Aj{(92$1lJMN<~xCE z?+j`J6R1pHLLKkxs0`f1ghrlWO?6a+VXjLsgfAj}m_JYr?BUsM$Td2Ko3RmMTR70%` z_`0E%MaOj&v69g8DPvlu>7ofu7wrcX4q5U;)v_D2zgi^;+B}>3|6Gn)2 zgmyp2+C&NM@c$NVP_4c8$x{S}CRzIVt4+FvU7l}^B~MfxY9nUq{NF|;mEil3{Df*ls_5vb zJWa%tHU3wFWyA(T8?KS4B>u0g;ARWK9!!=7+eO%H*9)`}RCIo|!PXPncvWMu^iR{W zBGHi59|(u6NGuQ@Ta-IKqpI5N^SS*Mme*fP-CODPW^}Z>*My#p3`Y9m?&X1Pp<2uD z_3>Mc+h1w`n={CBZ, 2014 @@ -11,45 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 13:19+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Sorgenti" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Crea una sorgente documento" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Sorgenti documento è il mezzo con cui i nuovi documenti alimentano Mayan EDMS, crea almeno una modulo web per poter caricare documenti da un browser." +msgstr "" +"Sorgenti documento è il mezzo con cui i nuovi documenti alimentano Mayan " +"EDMS, crea almeno una modulo web per poter caricare documenti da un browser." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Creato" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data e ora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Messaggio" @@ -65,7 +67,7 @@ msgstr "Espandi" msgid "Upload a compressed file's contained files as individual documents" msgstr "Pubblicare un file compresso contenente singoli documenti" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Mostra file" @@ -73,54 +75,58 @@ msgstr "Mostra file" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nuovo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Aggiungi nuova email IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Aggiungi nuova Email POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Aggiungi una nuova cartella di stage" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Aggiungi una nuova cartella monitorata" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Aggiungi nuova sorgente webform" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Cancella" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Modifica" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sorgente del documento" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Carica nuova versione" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Log" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +139,15 @@ msgstr "Mai" msgid "Ask user" msgstr "Chiedi all'utente" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Form web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Cartella di stage" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Cartella monitorata" @@ -149,7 +155,7 @@ msgstr "Cartella monitorata" msgid "POP3 email" msgstr "Email POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "Email IMAP" @@ -157,11 +163,11 @@ msgstr "Email IMAP" msgid "Label" msgstr "Etichetta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Abilitato" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Sorgente" @@ -173,214 +179,228 @@ msgstr "Sorgente interattiva" msgid "Interactive sources" msgstr "Sorgenti interattive" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Path sul filesystem del server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Percorso cartella" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." -msgstr "valore della larghezza da passare per le operazioni di conversione in backend" +msgstr "" +"valore della larghezza da passare per le operazioni di conversione in backend" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Larghezza anteprima" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." -msgstr "valore dell'altezza da passare per le operazioni di conversione in backend" +msgstr "" +"valore dell'altezza da passare per le operazioni di conversione in backend" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Altezza anteprima" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se espandere o meno degli archivi compressi." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Decomprimi" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Cancella il file dopo essere stato caricato" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Cancella dopo aver caricato" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Impossibile ottenere lista dei file di gestione temporanea: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Errore cancellando il file di stage; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Cartelle di stage" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Form web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Fuori dal processo" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervallo in secondi tra le ricerche dei nuovi documenti." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervallo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "Assegna un tipo documento ai documenti caricati da questa sorgente." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo documento " -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Determina se espandere o no gli archivi compressi." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intervallo sorgente" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intervallo sorgenti" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Le scelte tipiche sono 110 per POP3, 995 per POP3 su SSL, 143 per IMAP, 993 per IMAP su SSL." +msgstr "" +"Le scelte tipiche sono 110 per POP3, 995 per POP3 su SSL, 143 per IMAP, 993 " +"per IMAP su SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Porta" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Nome utente" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Password" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nome degli allegati che possono contenere i nomi dei tipi metadati e le coppie di valori che saranno assegnate al resto degli allegati caricati. Nota: Questo allegato sarà il primo degli allegati." +msgstr "" +"Nome degli allegati che possono contenere i nomi dei tipi metadati e le " +"coppie di valori che saranno assegnate al resto degli allegati caricati. " +"Nota: Questo allegato sarà il primo degli allegati." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nome allegato metadati" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Selezionare il tipo metadato valido per il documento selezionato dove impostare l'oggetto della mail." +msgstr "" +"Selezionare il tipo metadato valido per il documento selezionato dove " +"impostare l'oggetto della mail." -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo metadato oggetto" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Selezionare il tipo metadato valido per il documento selezionato dove impostare il mittente della mail." +msgstr "" +"Selezionare il tipo metadato valido per il documento selezionato dove " +"impostare il mittente della mail." -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo metadato mittente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Salva il contenuto della mail in un documento di testo" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Salva il contenuto della mail" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Il tipo metadato \"oggetto\" \"%(metadata_type)s\" non è valido per il tipo documento: %(document_type)s" +msgstr "" +"Il tipo metadato \"oggetto\" \"%(metadata_type)s\" non è valido per il tipo " +"documento: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Il tipo metadato \"mittente\" \"%(metadata_type)s\" non è valido per il tipo documento: %(document_type)s" +msgstr "" +"Il tipo metadato \"mittente\" \"%(metadata_type)s\" non è valido per il tipo " +"documento: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "allegato-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "Email sorgente" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Email sorgenti" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Email POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Casella di posta IMAP dove controllare i messaggi." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Casella" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Cartelle monitorate" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Elementi log" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Elementi log" @@ -410,7 +430,6 @@ msgstr "Cancella i file temporanei" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Errore processando la sorgente: %s" @@ -418,94 +437,108 @@ msgstr "Errore processando la sorgente: %s" msgid "Clear" msgstr "Pulisci" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Log per la sorgente: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Nessuna fonte interattiva dei documenti è stata definita o non ne sono state attivate." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Nessuna fonte interattiva dei documenti è stata definita o non ne sono state " +"attivate." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Proprietà documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "File nel percorso di stage" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Il nuovo documento pronto in coda per il carico e sarà disponibile a breve." +msgstr "" +"Il nuovo documento pronto in coda per il carico e sarà disponibile a breve." #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "Carica un documento locale dalla sorgente: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Il documento \"%s\" è bloccato per il caricamento di nuove versioni." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "La nuova versione del documento è in coda per il caricamento e sarà disponibile a breve." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"La nuova versione del documento è in coda per il caricamento e sarà " +"disponibile a breve." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Carica la nuova versione dalla sorgente: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Crea nuovo tipo di sorgente:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Cancellare la sorgente: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Modifica sorgente: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Immagine pagina file di stage" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Passo 1 di 3: Seleziona il tipo documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Passo 2 di 3: Inserisci i metadati del documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Passo 3 di 3: Seleziona i tag" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Prossimo passo " -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Procedura guidata carico documenti" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +621,11 @@ msgstr "Procedura guidata carico documenti" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo index 7eec5fe13c130cce2d20027598b0a4ee6e48ac83..efadc836ec52cda5a33f4e720b28fc49e403ec4e 100644 GIT binary patch delta 560 zcmXZY&npCB7{KvI3}#qAqKzn%r2LpN!=Oo0yBD>s$Uz)5v~5Z|njJT_N^)@ACi+>I@FeyOb>eGO`|fcbYpCiswo2)5L$Xzb9%KlUXdy$= zOoOq(UU7n&s6NDL!GTqbp+ z6siNValDT8#5q(iwu9=RV^jrCQPnA9Ctjgy;1SiqFSv%UalU_n)r%yCQQdqGO*}!G zmOD)26FT@E#}@BL4GF6k_2*h*#+q;~XV$b`&$Y{Qdfz0ODa)}^qWuDPE=1=5 delta 589 zcmXZY(JMny9KiA4nqgx`X%gjzJYd?UO%|e&Xh}%&!fCBFyRNd~aq{3nNm{8rD9M9I z@v10!@rFkp6n}t!K>42S-cIM!?|0Ano!>e89p@c4pN_)4L*%QqVgS2w8vD^i{lA1>yt2JTH}NCteJ?nMKd9?>)k~qgVX$6=9%KUjIExHX zOr2<94W6QIu!M2EKx)YkHsUWfqk}G7=ttc^yKN6v5eHG%i+Br_g`*@INW_sL3rzY( z>!=UN+VLJbi4Rb}*dgkJE>Rb}MqTFyoA3d31FxtL{=gOdvh%~^tezneM}6~SH1GuFWOxmOZ_$e=kW=^8f$< diff --git a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po index 0d55ab1878..5453d8a93b 100644 --- a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -10,45 +10,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-09 15:57+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Bronnen" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Maak een documentbron aan" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Aangemaakt" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Thumbnail" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Datum en tijd" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Bericht" @@ -62,9 +62,10 @@ msgstr "Uitpakken gecomprimeerde bestanden" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Upload een gecomprimeerd archief van bestanden als individuele documenten" +msgstr "" +"Upload een gecomprimeerd archief van bestanden als individuele documenten" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Tijdelijk bestand" @@ -72,54 +73,58 @@ msgstr "Tijdelijk bestand" msgid "File" msgstr "Bestand" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Verstekwaarde" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nieuw document" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Voeg nieuwe IMAP-email toe." -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Verwijder" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "bewerken" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Documentbronnen" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Nieuwe versie uploaden" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Logs" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Altijd" @@ -132,15 +137,15 @@ msgstr "Nooit" msgid "Ask user" msgstr "Vraag gebruiker" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Webformulier" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +153,7 @@ msgstr "" msgid "POP3 email" msgstr "POP3 e-mail" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "IMAP e-mail" @@ -156,11 +161,11 @@ msgstr "IMAP e-mail" msgid "Label" msgstr "Label" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Ingeschakeld" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "BronB" @@ -172,214 +177,216 @@ msgstr "Interactieve bro" msgid "Interactive sources" msgstr "Interactieve bronnen" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "pad naar filesysteem server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Mappad" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Breedte waarde die moet worden doorgegeven aan de converter backend." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Hoogte waarde die moet worden doorgegeven aan de converter backend." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Keuze om te expanderen of uitpakken van archief. (TODO: review this)" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Uitpakken" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Verwijder het bestand nadat de 'upload' succesvol is voltooid." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" -msgstr "Het is niet mogelijk om een lijst met tijdelijke bestanden aan te maken. Foutmelding: %s" +msgstr "" +"Het is niet mogelijk om een lijst met tijdelijke bestanden aan te maken. " +"Foutmelding: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Wijs een documentsoort toe voor documenten die worden geüpload van deze bron." +msgstr "" +"Wijs een documentsoort toe voor documenten die worden geüpload van deze bron." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Documentsoort" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Al of niet uitpakken van gecomprimeerde archieven." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Wachtwoord" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "attachment-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP e-mail" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Loginvoer" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Loginvoer" @@ -409,7 +416,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +423,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +451,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Aanmaken van nieuw documentbron van type: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Type" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Volgende stap" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +602,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo index 873139386b92ff7c38d949be17a80bfbeae6c5e4..0fbda1cd0f767beecf0b6b201494ed2048200475 100644 GIT binary patch delta 496 zcmYMvF-QVY7zglAJFUbtg0Q804vG#3@4fCUFHaq!DJU*ziHHkC1i6b-n*@jU2#)4l zT3ei>rKR?ur7dV{3Zkw5sU;lm_ul)y@Bg@m#82YttDg=N-Omt3iRdjtv;^PbJp6{M zFoa@oPQy4XOwL7!7OKG&xC4{$1g=3B;-gC}F?bCXIDm8THcE%IjLjV`f}lsZ0H0w3 zzCwKTfh7Y!VID5djvp++AlQQV2Reo+Xb+!4wXnXSa$S|1Oz4I#RIYIz+uu{I`gyb6 zbRBiu?$iw?xj>($O2I_YkVU_uq>`3LzgAUy8#-pjprB3Jg$+Etg8?PlfDcKvS4by%UB>;9`twTA7~a}~c) z3{I5&;8{6}ZQEY0W7n|tydI>&$t`^yS*K~&t*mERf^9I)Oy;EpFIpPQWd72EWymxu Z+q@t+>-GNn@(y3cjKGXGcn{x(egUgWQWF3G diff --git a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po index 888e95601b..c6926905e2 100644 --- a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # mic , 2012-2013 @@ -11,45 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-23 13:44+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Utworzony" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Miniaturka" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data godzina" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -65,7 +67,7 @@ msgstr "" msgid "Upload a compressed file's contained files as individual documents" msgstr "" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -73,54 +75,58 @@ msgstr "" msgid "File" msgstr "Plik" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Domyślne" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nowy dokument" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Usuń" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Edytuj" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Prześlij nową wersję" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Zawsze" @@ -133,15 +139,15 @@ msgstr "Nigdy" msgid "Ask user" msgstr "Pytaj użytkownika" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -149,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -157,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Etykieta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Włączone" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -173,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Typ dokumentów" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Hasło" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Wpisy rejestru logów" @@ -410,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -418,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Właściwości dokumentu" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -447,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Utwórz nowe typ źródło:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Typ" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Krok 1 z 3: Wybierz typ dokumentu" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Krok 2 z 3: Wprowadź metadane dokumentu" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Krok 3 z 3: Wybierz tagi" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Następny krok" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Kreator przesyłania dokumentu" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +601,11 @@ msgstr "Kreator przesyłania dokumentu" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo index 3c42f755c6e87a0fae304047054af958c92728e1..1dd79f857d060fbf1edfdbbde2abb3696b4a9e2e 100644 GIT binary patch delta 87 zcmdldyia&TB&(^pu7Rnpk%fYxsgk+Fh-krj|_U}9jv72vNMlvylWKYNcRgUSEsEPGF)zI|F&(I+U~>VRA2R^$AQz|r diff --git a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po index f51f73f634..d61c24007e 100644 --- a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,45 +11,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,9 +63,11 @@ msgstr "Expandir ficheiros comprimidos" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Enviar os ficheiros contidos num ficheiro comprimido como documentos individuais" +msgstr "" +"Enviar os ficheiros contidos num ficheiro comprimido como documentos " +"individuais" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Ficheiro de preparação" @@ -73,54 +75,58 @@ msgstr "Ficheiro de preparação" msgid "File" msgstr "Ficheiro" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Padrão" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Eliminar" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fontes de documentoo" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +139,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Perguntar ao utilizador" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -149,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -157,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Nome" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -173,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Caminho do sistema de ficheiros do lado do servidor" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor da largura para ser passado para o backend conversor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor da altura a ser passado ao conversor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se os ficheiros comprimidos devem ser descomprimidos ou não." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Excluir o ficheiro depois de ter sido enviado com sucesso." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Incapaz de obter a lista dos ficheiros em preparação: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo de documento" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Senha" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -410,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -418,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -447,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Criar nova fonte do tipo: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Próximo passo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +601,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo index 56c4810ca733ef12b4aa9b645f5b55d541e8d855..a2092340e93ce71df744d4ca8d691ebdf9ff7789 100644 GIT binary patch delta 2554 zcmYk-e@xVM9LMpG-T@~{hp0fNa+1Fy4(^cSr-ELh5C}wM1<83J5ttnD!?vhhP22jT zm>6qngc<{>Ux*gWRIpvL91tj(WcC`=#~Sz3=h)e!k!P{Ct1m zX7!=!=v0dHsG;-_D~J(?F=|+mz!#-wfiW%k45r{^+i6VY`UWn=q(tjF6XUrqMi*|u zGOWTldhR-D?W?mIDtFR#c1lV9=os! z`H8t;w@;!LFol}%3~Jy%P|w{&)@I@tbBwrjG5g;^C7p&=d=Zs|)2Or7HfY8Ps2{pf z6I+SuFblO4#kd-)a1HK5E$lEdrWwUt{1|m4KVt~Z682v!+CzqDpf1#mdvP~Di|X)O z)XHvS5aYN)Pygi7Vy1&{}nb$UqoxA&e2eWMmU4Xp*(@`OoA4*(W7d+Hnov1@s`tNTPnRvtv{%wg2TPNG&mipu)0P&+b%vD{&H$_+QFA3y47f>@&W zKTO3*!wCBE6l!a(pnmWJl8@#(>dfZT`&L|pI`dl80>Y@bXTWYBL=8M--+v!9&S$88 zKSvkio2yi`mDBhE-a&PAhG{CxKg8{L5g)>&468kaU0ipgCh{F>;=kJ7LiOYHSSBJ} zn`G2c_TptKGYE&M;+BDYQpE%M6I*9M8kbFOkpv))>{8ef~bxLaULq+o*>kzUZ*l5 zKx`yb)cI4fnzch3kYfH7wb7cpWM+hB-c0)U)l1nIY*d$Xy zs4!pCL?{o+i4ajqJV2=EZ%JLOX3V4LA)G{zP>Cub8i*%}He#;m9c9t6JXmKp>fh>v zgm$XkZkuD5UGZTlQAF$~_7V>hDmtPbVm{G9__h8PDk|Fc5~5od6bI2sDC1R>SdS4~ zh-yNKltCylmHnFul}$uFu}v40SOTKnBqg2lMme;di2eV^|4J4$op&vvS7affgvuvW zwh~IDxuWFTV_)n>C9z5s(HN^)U#%0x^2Ri#YBi-I@;r{j#PoB@ubNSvpzsFxtl2gG sB7NcB&dBgaCgT*xPzbc^oN2C!@s3Ak2R$|pE&l<>RXO~0int39RL6T delta 2659 zcmZwIe@xVM9LMnw0mYB_AsCtn_Z2b3JiI#u>@);4$UqP>e~>>q;5^Sb4h|%pYxhSv zwI8#^Ff`||mDO-&IlRp0B$vTYvN!@9*RD{oZ{) zKi{9@*~UK`qu=Eu4I4@yF`sxn(U@0o>0MkXhf|H&fk!Y0uiH*z9`~7P#>~b=sCzHo ziLID|Td*2^n2e*SrqAG9W1{9AD)~J491HLV`wI!_#?XgJMZJ)VYB(Qru?Xj2C29c8 zxB@#-138HmIF9=M4a~;B@g!#6ZA=FJn=vYS;X_QqFYzAy3bXJQ@@J;GWMB#x4JZ#C zScsZHHEKZZsCFW#cAi4|G%uo7@Hm#^SxlmTbA?J7{)kN8%+8E|(SaJd2ep*-s2R1O z26hlNqhZw2oS@t^}oP)RtA+UvQj zmqzSBy;y=8SOsdS>rf51BV#l{T!8zr7+*zA@H{dm^9?S;o2adsm&^L^q~cSMcY9Q-TpGQzDc@!CgIfhL*WZU?aF#TXLDa~PBY$R;i}vs%)KXqVt<1Nmfn7(<{5Pa2Gndh5MaoeV zXhr45R#ZC&uu$j!1u9-1jA0U9LpR<+txN%}=!H@wFO3(qWldO%n^1c`f||e>>J)u! zKc7T(eA)i|HmaXY5+j@bO)eEBLosS8o%kNsqZ*nwXPAwxxEb~QZQO$ssDUiB z;sdX=twXibY`YN|gK0-?quEDA=kaBX;4xH^r7~>#Hv3TxjG(sU6l$PvAo*v`;bQz6 zW4VM`+^4gT_hY_o1M-pSM|Q~!7qR|TRNl28+`uQfPhJ>b;y%>g9Y8JFGuVZPu^4|w z(PNrF@!pnCs4WYDQbnMkXOt#)K;b~ipKYB{-XGZU8udT!BT9+2k-!{!1qxN z{elUoS?ahxOf(SsKcW@W5t}LgnF?yKDq6i|goFNLKR^&G8@amdx|TXbXe(w)BNZp{ zD4~JO6rBW>mBebIkI?VOCPG`FvYTijI(1{0sAgMD)Dq2vGW#*YBKWO|?H3rIE|l#= zkk~@#)F^+t3FX0mOFK7OK_%!D1cxbBdbuh|m9U(aXzZ+)bCX1L5ZZ5*8sa`xC=U|K z{9T0hO?$h62oT!{ZH<22+K9D;n^0cuAZAJz6?QF_=&MjCAYJGG4l2onGLpP7m4u3Z zR8*9ZJ+WH+*e#*{IH9~)Lo6r$uRO%VM+haHN?n}TNm*yt=P40XHWSL=t%NeTVmy@k zSxQE*+i&&y0)8tP@&(2h=bTThsC2sBPEWbz@_4Dcmb+YO8(N%g{=r~>Fx=x@>l^TU zEsx6``<}bX@|1gBRYL`Nb4qKwgFSw$KH?7!`1-9?KHb*DuDjyT$~wcLvW`gg(3-r? zp%3!fvzmN8fxUF^wR#73*0qgi&3QVlWF15ChpaB2)qCM|AlT!xy26$((ziD_7`6ud Sq26%h!s$qG{J90U6aNLLj0GzI diff --git a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po index 043157c177..069542cea3 100644 --- a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -11,45 +11,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Fontes" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Criar uma nova fonte de documentos" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Fontes de documentos são a forma como os novos documentos são alimentados ao Mayan EDMS, crie pelo menos uma fonte de formulário da web para poder carregar documentos a partir de um navegador." +msgstr "" +"Fontes de documentos são a forma como os novos documentos são alimentados ao " +"Mayan EDMS, crie pelo menos uma fonte de formulário da web para poder " +"carregar documentos a partir de um navegador." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Criando" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "hora, data" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Mensagem" @@ -63,9 +66,10 @@ msgstr "Expandir arquivos compactados" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Upload de um arquivo compactado contendo arquivos como documentos individuais" +msgstr "" +"Upload de um arquivo compactado contendo arquivos como documentos individuais" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Preparação de arquivo" @@ -73,54 +77,58 @@ msgstr "Preparação de arquivo" msgid "File" msgstr "Arquivo" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Padrão" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Novo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Adicionar um novo email IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Adicionar um novo email POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Adicionar nova pasta de teste" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Adicionar uma nova pasta temporária" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Adicionar nova fonte webform" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Excluir" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fontes de documentos" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Upload de uma nova versão" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Logs" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +141,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Pergunte ao usuário" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "formulário web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Pasta teste" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Pasta Temporária" @@ -149,7 +157,7 @@ msgstr "Pasta Temporária" msgid "POP3 email" msgstr "E-mail POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "E-mail IMAP" @@ -157,11 +165,11 @@ msgstr "E-mail IMAP" msgid "Label" msgstr "Label" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "habilitado" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "fonte" @@ -173,214 +181,227 @@ msgstr "Fonte interativa" msgid "Interactive sources" msgstr "Fontes interativa" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Caminho do sistema do servidor" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Caminho da Pasta" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor da largura a ser passado para o backend conversor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Largura de visualização" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor de altura para ser passado para o backend conversor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Altura de pré-visualização" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se expandir ou não arquivos compactados." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "descompactar" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Excluir o arquivo depois de ter sido carregado com sucesso." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "excluir depois do Upload" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Unable get list of staging files: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Error removendo arquivo de teste; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Pastas de teste" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formulários web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Saída do processo" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervalo em segundos entre verificações para novos documentos." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "intervalo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Atribuir um tipo de documento para documentos enviados a partir desta fonte." +msgstr "" +"Atribuir um tipo de documento para documentos enviados a partir desta fonte." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipos de Documentos" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "A possibilidade de expandir ou não, arquivos comprimido." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Fonte de intervalo" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Fontes de intervalo" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Escolhas típicas : 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, 993 para IMAP sobre SSL." +msgstr "" +"Escolhas típicas : 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, " +"993 para IMAP sobre SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Porta" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Usuário" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Senha" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nome do anexo que contém os nomes de tipo de metadados e os pares de valores a serem atribuídos ao restante dos anexos transferidos. Nota: Este anexo tem de ser o primeiro anexo." +msgstr "" +"Nome do anexo que contém os nomes de tipo de metadados e os pares de valores " +"a serem atribuídos ao restante dos anexos transferidos. Nota: Este anexo tem " +"de ser o primeiro anexo." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nome do metadado anexado" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Selecione um tipo de metadados válido para o tipo de documento selecionado para armazenar o assunto do e-mail." +msgstr "" +"Selecione um tipo de metadados válido para o tipo de documento selecionado " +"para armazenar o assunto do e-mail." -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo de metadado do assunto" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Selecione um tipo de metadados válido para o tipo de documento selecionado para armazenar o valor \"de\" do e-mail." +msgstr "" +"Selecione um tipo de metadados válido para o tipo de documento selecionado " +"para armazenar o valor \"de\" do e-mail." -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo de documento do remetente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Armazenar o corpo do e-mail como um documento de texto." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Armazenar o corpo do e-mail" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Tipo de metadado do assunto \"%(metadata_type)s\" não é válido para o documento do tipo: %(document_type)s" +msgstr "" +"Tipo de metadado do assunto \"%(metadata_type)s\" não é válido para o " +"documento do tipo: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Tipo de metadados do campo \"de\" \"%(metadata_type)s\" não é válido para o tipo de documento: %(document_type)s" +msgstr "" +"Tipo de metadados do campo \"de\" \"%(metadata_type)s\" não é válido para o " +"tipo de documento: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "anexo-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "E-mail Fonte" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "E-mail Fontes" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "E-mail POP3" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Pasta de email IMAP de onde checar por mensagens." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Caixa de correio" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Pastas Temporárias" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrada de registro" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "As entradas de log" @@ -410,7 +431,6 @@ msgstr "Apagar arquivos temporários" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Erro processando fonte: %s" @@ -418,27 +438,28 @@ msgstr "Erro processando fonte: %s" msgid "Clear" msgstr "Limpar" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Registrar entradas para fonte: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Nenhuma fonte interativa de documentos fora definida ou nenhum foi ativada. Criar uma antes de prosseguir." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Nenhuma fonte interativa de documentos fora definida ou nenhum foi ativada. " +"Criar uma antes de prosseguir." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propriedades do documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Os arquivos no caminho de preparo" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "Novo documento na fila para carregados e estará disponível em breve." @@ -447,65 +468,77 @@ msgstr "Novo documento na fila para carregados e estará disponível em breve." msgid "Upload a local document from source: %s" msgstr "Carregar um documento no local de origem:%s " -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Documento \"%s\" está bloqueado para carregar novas versões." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Nova versão do documento na fila para carregados e estará disponível em breve." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Nova versão do documento na fila para carregados e estará disponível em " +"breve." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Carregar uma nova versão da Origem: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Criar nova fonte do tipo: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Apagar a fonte: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Editar fonte: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Imagem da página do arquivo temporário" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Passo 1 de 3: Selecione o tipo de documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Passo 2 de 3: Insira metadados do documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Passo 3 de 3: Selecione etiquetas" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Próximo passo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Assistente de upload de documentos" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +621,11 @@ msgstr "Assistente de upload de documentos" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo index 81a74e86cc76fd3d671c42e11f654ebbd8574e93..03782ea624b04f359e950e170c53a4de0e154425 100644 GIT binary patch delta 89 zcmew>{8xBGC##9Mu7Rnpk%fYxsg{8xBGC##8>uA!l>k+Fh-k(H^Lu7Qbx0at*(Zcu7jW^rbIo~}z`Nvf5Ck%1vd qPS?;}!O+;saPnT(&dFhHQT#rMdFiEz=|B}l`SC&io7c1XF#`aF3mRAe diff --git a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po index 3ce1f3146d..f669b651df 100644 --- a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Abalaru Paul , 2013 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 13:16+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Iconiță" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data și ora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -62,9 +63,11 @@ msgstr "Dezarhivare fișiere comprimate" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Încărcați fișiere de fișier comprimat care sunt incluse ca documente individuale" +msgstr "" +"Încărcați fișiere de fișier comprimat care sunt incluse ca documente " +"individuale" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Structura fisier" @@ -72,54 +75,58 @@ msgstr "Structura fisier" msgid "File" msgstr "Fișier" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Iniţial" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Șterge" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editează" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sursa documentului" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Mereu" @@ -132,15 +139,15 @@ msgstr "niciodată" msgid "Ask user" msgstr "Întreabă utilizatorul" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -156,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Etichetă" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -172,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Cale de fișiere server." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valoarea lățime trecuta convertorului." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valoare de înălțime trecuta convertorului." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Dacă se extinde sau nu se arhivează." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Ștergeți fișierul după ce este a fost încărcat cu succes." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Imposibil obține lista de fișiere de așteptare:% s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tip document" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -409,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Creați o nouă sursă de tipul:% s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tip" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Următorul pas" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +601,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo index 187874981df3eb97cf957e90cb9c18dae53461a2..fa24a0a485d9e78d1c08687b50023aff61f03079 100644 GIT binary patch delta 762 zcmXZZ&r1|x7{KwTl|omY)y-`y`!Nv_rUNs>&Tg$j3q=?!WV_iV5;j<6MIBmQJ=ugo z^g|E1L4Uw@j%bMjPeM>chv+I1bnskvP)pD=~nco}Q1@v|h_vG%YC$O+ z#C-UC8LtsPOavmQSbPo>cF-b@^OgP}hZVeu+TkYl<5#?dJ7H`l_ur2owM#yXCsFg~ zFp5v{1HQx#91D)_7jPSO1U1ykS5Z589@@k<;%z*EzfcR@Mg3tn$EEou>WPlxIh+mM zzzp$6%;O)_MuQQ~RX3PH?QjJT;Tqn>I?|;4#YfmqJ6H5Q?#&cW6SuI4{Zw}bePqn? zBD8@M#P3m$zVqbXNTO0;!Fc6CW8h$im$7Wmaxa>Wm-QUWPT6*J{DxI1FI5&Q{=9Xy zv{=rXuI-SQvRub>(pfiMpEQ!Of`6}EUG&X@zfh`H{CZ&A>KZG}PuEJ*d{V8|e;9X~ I*;vu|4}!{HmjD0& delta 757 zcmXZZPe>GT6u|M9lIW(RZmyPVwh=0(Q?t{qOS_xNt46&>u%PN+kgv>#+ zizc{tFLmjl2tr*+bkaj7JsE!A?!Yjg-i>SvX{O;d=~S5ZT15#6K>J*m!`g*w7?$AA3*>%i|+lz&`wiy3c>C#?DZ=pgY(@ zoJM^;4gEn1UCf|%_!YzW6Yt@nABS7Y?-NMvlJ?_gsQD8Z zz$M(pHLSsh-j#9zBd8;oMy+rGwUcGvEvzKo$2RkF$f9;QhgJ9iU*JciNjb(vtfZYmeUGJ?;&tK^9K&X+yMdF)m}SLx z1D_IaqaJIUU%OKU^MUgw zn~d02w3KJr5i6FA#)~hFmO$RkPu-q&3ht}ok}+QVYdo*bIECD-ljDn-*`5CSapN5I Cr(P2P diff --git a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po index bc8fe338a7..f16e4459ef 100644 --- a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,45 +9,50 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Источники" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Создать источник документов" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Источники документов - это способы получения Mayan EDMS новых документов. Как минимум, чтобы можно было загружать документы из браузера, создайте веб-форму." +msgstr "" +"Источники документов - это способы получения Mayan EDMS новых документов. " +"Как минимум, чтобы можно было загружать документы из браузера, создайте веб-" +"форму." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Создано" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Миниатюра" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Дата и время" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Сообщение" @@ -63,7 +68,7 @@ msgstr "Извлекать из архивов?" msgid "Upload a compressed file's contained files as individual documents" msgstr "Загрузить файлы, содержащиеся в архиве в качестве отдельных документов" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Промежуточный файл" @@ -71,54 +76,58 @@ msgstr "Промежуточный файл" msgid "File" msgstr "Файл" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Умолчание" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Новый документ" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Удалить" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Редактировать" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Источники документов" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Загрузить новую версию" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Журналы" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Всегда" @@ -131,15 +140,15 @@ msgstr "Никогда" msgid "Ask user" msgstr "Спросить пользователя" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Веб-форма" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Промежуточная папка" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Наблюдаемая папка" @@ -147,7 +156,7 @@ msgstr "Наблюдаемая папка" msgid "POP3 email" msgstr "почтовый ящик POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "почтовый ящик IMAP" @@ -155,11 +164,11 @@ msgstr "почтовый ящик IMAP" msgid "Label" msgstr "Надпись" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Доступно" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Источник" @@ -171,214 +180,214 @@ msgstr "Интерактивный источник" msgid "Interactive sources" msgstr "Интерактивные источники" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Путь на сервере" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Путь к папке" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Ширина после обработки." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Ширина предпросмотра" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Высота после обработки." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Высота предпросмотра" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Независимо от того распакованы или нет архивы." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Распаковать" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Удалить файл после загрузки." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Удалить после загрузки" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Не удалось получить список промежуточных файлов: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Ошибка удаления промежуточного файла; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Промежуточные папки" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Веб-формы" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Временной интервал проверки на наличие новых документов." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Интервал" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Назначить тип документов для документов, загружаемых из этого источника." +msgstr "" +"Назначить тип документов для документов, загружаемых из этого источника." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Тип документа" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Следует ли извлекать данные из архива." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Хост" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Порт" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Имя пользователя" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Пароль" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "вложение-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Таймаут" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP email" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "IMAP ящик в котором проверять сообщения." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Запись журнала" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Записи журнала" @@ -408,7 +417,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Ошибка обработки источника: %s" @@ -416,27 +424,28 @@ msgstr "Ошибка обработки источника: %s" msgid "Clear" msgstr "Очистить" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Записи журнала для источника: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Интерактивные источники документов не были определены или включены, создайте один для продолжения." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Интерактивные источники документов не были определены или включены, создайте " +"один для продолжения." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Свойства документа" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +454,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Загрузка новой версии из источника %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Создать новый источник типа: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Тип" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Шаг 1 из 3: Выбор типа документа" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Шаг 2 из 3: Заполните метаданные документа" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Шаг 3 из 3%: выберите метки" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Далее" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Мастер загрузки документов" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +605,11 @@ msgstr "Мастер загрузки документов" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo index 150b9feeda2f38c3f6a7279f4e89d3ad2a28b477..6264d9e838e6a02abc32bdacbbf2fc4123551df5 100644 GIT binary patch delta 88 zcmdnQx`}ndZ&Pz!15;fi3k5?{D^o*V0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X q6I~-i1w%6{BeTf{j9vUbiFxUziRnP;;+*(k&&fL(qbI8{^#K4+BpHYR delta 88 zcmdnQx`}ndZ&Nc}LqlC7V+8{vDk+Fh-krj|_U}9jv72vNMlvylWKYNcRgU, 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Giải nén" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload một file nén chứa các file tài liệu riêng biệt" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +71,58 @@ msgstr "" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Mặc định" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Sửa" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Các nguồn tài liệu" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Luôn luôn" @@ -131,15 +135,15 @@ msgstr "Không bao giờ" msgid "Ask user" msgstr "Hỏi người dùng" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "đường dẫn hệ thống phía Server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Kiểu tài liệu" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Bước tiếp theo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo index 0f42b2b457a9cbb4ea87d8e3aa0c12ea3a9052bf..63b68765516339c4a62aea75119fe1b4cb93db7a 100644 GIT binary patch delta 68 zcmdljuv=imdlp`ET?12HBMSvXQ!7)$$$wa+K_Vu)MurN8W>!XKlT}z-`F#@e(n}N5 WQ>_%LGUA>6Ca++P-Ym?f!2|%96caiC delta 68 zcmdljuv=imdlp_ZT|+}%BVz>vBP&z0$$wa+fg%RRx<-ZyMut{~hLcrTTPN>ijpFx7 X%u6p#Oi#5^sLF_U_S-DPrpW{Vnr;&| diff --git a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po index fe5203d4a6..e68e272d3c 100644 --- a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -10,45 +10,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -64,7 +64,7 @@ msgstr "展开压缩文件" msgid "Upload a compressed file's contained files as individual documents" msgstr "上传一个压缩文件的包含文件作为单个文档" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "临时文件" @@ -72,54 +72,58 @@ msgstr "临时文件" msgid "File" msgstr "文件" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "文档数据源" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "总是" @@ -132,15 +136,15 @@ msgstr "从不" msgid "Ask user" msgstr "询问用户" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -156,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -172,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "服务器端文件路径" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "宽度的值用于后台转换。" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "高度的值用于后台转换" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "是否要展开或者解压缩归档文件" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "在上传成功后,删除此文件。" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "未能获取暂存文件列表:%s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "文档类型" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "密码" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -409,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "新建数据源类型:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "下一步" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/models.py b/mayan/apps/sources/models.py index 5b7661a89a..234a4b985a 100644 --- a/mayan/apps/sources/models.py +++ b/mayan/apps/sources/models.py @@ -268,6 +268,21 @@ class SaneScanner(InteractiveSource): class StagingFolderSource(InteractiveSource): + """ + The Staging folder source is interactive but instead of displaying an + HTML form (like the Webform source) that allows users to freely choose a + file from their computers, shows a list of files from a filesystem folder. + When creating staging folders administrators choose a folder in the same + machine where Mayan is installed. This folder is then used as the + destination location of networked scanners or multifunctional copiers. + The scenario for staging folders is as follows: An user walks up to the + networked copier, scan several papers documents, returns to their + computer, open Mayan, select to upload a new document but choose the + previously defined staging folder source, now they see the list of + documents with a small preview and can proceed to process one by one and + convert the scanned files into Mayan EDMS documents. Staging folders are + useful when many users share a few networked scanners. + """ can_compress = True is_interactive = True source_type = SOURCE_CHOICE_STAGING @@ -349,6 +364,14 @@ class StagingFolderSource(InteractiveSource): class WebFormSource(InteractiveSource): + """ + The webform source is an HTML form with a drag and drop window that opens + a file browser on the user's computer. This Source is interactive, meaning + users control live what documents they want to upload. This source is + useful when admins want to allow users to upload any kind of file as + documents from their own computers such as when each user has their own + scanner. + """ can_compress = True is_interactive = True source_type = SOURCE_CHOICE_WEB_FORM @@ -447,6 +470,15 @@ class IntervalBaseModel(OutOfProcessSource): class EmailBaseModel(IntervalBaseModel): + """ + POP3 email and IMAP email sources are non-interactive sources that + periodically fetch emails from an email account using either the POP3 or + IMAP email protocol. These sources are useful when users need to scan + documents outside their office, they can photograph a paper document with + their phones and send the image to a designated email that is setup as a + Mayan POP3 or IMAP source. Mayan will periodically download the emails + and process them as Mayan documents. + """ host = models.CharField(max_length=128, verbose_name=_('Host')) ssl = models.BooleanField(default=True, verbose_name=_('SSL')) port = models.PositiveIntegerField(blank=True, null=True, help_text=_( @@ -688,6 +720,16 @@ class IMAPEmail(EmailBaseModel): class WatchFolderSource(IntervalBaseModel): + """ + The watch folder is another non-interactive source that like the email + source, works by periodically checking and processing documents. This + source instead of using an email account, monitors a filesystem folder. + Administrators can define watch folders, examples /home/mayan/watch_bills + or /home/mayan/watch_invoices and users just need to copy the documents + they want to upload as a bill or invoice to the respective filesystem + folder. Mayan will periodically scan these filesystem locations and + upload the files as documents, deleting them if configured. + """ source_type = SOURCE_CHOICE_WATCH folder_path = models.CharField( diff --git a/mayan/apps/sources/urls.py b/mayan/apps/sources/urls.py index c096f6ea10..01f41a7b68 100644 --- a/mayan/apps/sources/urls.py +++ b/mayan/apps/sources/urls.py @@ -7,9 +7,9 @@ from .api_views import ( APIStagingSourceListView, APIStagingSourceView ) from .views import ( - SetupSourceCreateView, SetupSourceDeleteView, SetupSourceEditView, - SetupSourceListView, SourceLogListView, StagingFileDeleteView, - UploadInteractiveVersionView, UploadInteractiveView + SetupSourceCheckView, SetupSourceCreateView, SetupSourceDeleteView, + SetupSourceEditView, SetupSourceListView, SourceLogListView, + StagingFileDeleteView, UploadInteractiveVersionView, UploadInteractiveView ) from .wizards import DocumentCreateWizard @@ -59,6 +59,10 @@ urlpatterns = [ r'^setup/(?P\w+)/create/$', SetupSourceCreateView.as_view(), name='setup_source_create' ), + url( + r'^setup/(?P\d+)/check/$', SetupSourceCheckView.as_view(), + name='setup_source_check' + ), # Document create views diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index d1e1c273e7..a4b3e95694 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -12,8 +12,8 @@ from common import menu_facet from common.models import SharedUploadedFile from common.utils import encapsulate from common.views import ( - MultiFormView, SingleObjectCreateView, SingleObjectDeleteView, - SingleObjectEditView, SingleObjectListView + ConfirmView, MultiFormView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from common.widgets import two_state_template from documents.models import DocumentType, Document @@ -37,7 +37,7 @@ from .permissions import ( permission_sources_setup_edit, permission_sources_setup_view, permission_staging_file_delete ) -from .tasks import task_source_handle_upload +from .tasks import task_check_interval_source, task_source_handle_upload from .utils import get_class, get_form_class, get_upload_form_class @@ -253,7 +253,12 @@ class UploadInteractiveView(UploadBaseView): ) ) - return HttpResponseRedirect(self.request.get_full_path()) + return HttpResponseRedirect( + '{}?{}'.format( + reverse(self.request.resolver_match.view_name), + self.request.META['QUERY_STRING'] + ), + ) def create_source_form_form(self, **kwargs): if hasattr(self.source, 'uncompress'): @@ -297,7 +302,10 @@ class UploadInteractiveView(UploadBaseView): if not isinstance(self.source, StagingFolderSource) and not isinstance(self.source, SaneScanner): context['subtemplates_list'][0]['context'].update( { - 'form_action': self.request.get_full_path(), + 'form_action': '{}?{}'.format( + reverse(self.request.resolver_match.view_name), + self.request.META['QUERY_STRING'] + ), 'form_class': 'dropzone', 'form_disable_submit': True, 'form_id': 'html5upload', @@ -313,6 +321,7 @@ class UploadInteractiveVersionView(UploadBaseView): self.document = get_object_or_404(Document, pk=kwargs['document_pk']) + # TODO: Try to remove this new version block check from here if NewVersionBlock.objects.is_blocked(self.document): messages.error( self.request, @@ -438,6 +447,32 @@ class StagingFileDeleteView(SingleObjectDeleteView): # Setup views +class SetupSourceCheckView(ConfirmView): + """ + Trigger the task_check_interval_source task for a given source to + test/debug their configuration irrespective of the schedule task setup. + """ + view_permission = permission_sources_setup_view + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Trigger check for source "%s"?') % self.get_object(), + } + + def get_object(self): + return get_object_or_404(Source.objects.select_subclasses(), pk=self.kwargs['pk']) + + def view_action(self): + task_check_interval_source.apply_async( + kwargs={ + 'source_id': self.get_object().pk + } + ) + + messages.success(self.request, _('Source check queued.')) + + class SetupSourceCreateView(SingleObjectCreateView): post_action_redirect = reverse_lazy('sources:setup_source_list') view_permission = permission_sources_setup_create @@ -493,9 +528,6 @@ class SetupSourceEditView(SingleObjectEditView): class SetupSourceListView(SingleObjectListView): - view_permission = permission_sources_setup_view - queryset = Source.objects.select_subclasses() - extra_context = { 'extra_columns': ( { @@ -512,3 +544,5 @@ class SetupSourceListView(SingleObjectListView): 'hide_link': True, 'title': _('Sources'), } + queryset = Source.objects.select_subclasses() + view_permission = permission_sources_setup_view diff --git a/mayan/apps/statistics/apps.py b/mayan/apps/statistics/apps.py index ba0f36b43f..d0909ad7c4 100644 --- a/mayan/apps/statistics/apps.py +++ b/mayan/apps/statistics/apps.py @@ -19,8 +19,8 @@ from .tasks import task_execute_statistic # NOQA - Force registration of task class StatisticsApp(MayanAppConfig): + has_tests = True name = 'statistics' - test = True verbose_name = _('Statistics') def ready(self): diff --git a/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo index 672822fbeed066ed3f76c90e014a049f160b22bf..002384af0b05a0e9b136ddfe3f6002c8038dc697 100644 GIT binary patch delta 44 zcmX@ha+YPn3SM(v15;fi3k5?{D^tUXTNm>9B<7`;CZ?xaDI^w64rPp, 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "إحصائيات" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo index 26274c7e27c549c87e7c8307e48a9eb83434930f..261fa5606c9de98ff31cf1dbf2ee404ca9b64163 100644 GIT binary patch delta 44 zcmZo>?`L!Z043lJ A^#A|> diff --git a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po index 0f4cea307c..976c54eb0b 100644 --- a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Iliya Georgiev , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Статистика" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo index d88811ab0a51555d9c7c0176aa78f43846f7bc7b..816b0972bc7b9365d0a7e85292493cf302c1100e 100644 GIT binary patch delta 47 zcmcb|a*t)g3SM(v15;fi3k5?{D^tUXTlew%B<7`;CZ?xaDI^ugJ2_4+VvL@Am$4B5 DcGD0m delta 47 zcmcb|a*t)g3SKi^LqlC7V+8{vD^v4{TlY, 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "Statistika" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo index 34f06b0ae1be529bee09eeb53dd45fa72d06d81f..50943f72089a8422bdaf6ae26ffb94d9f9df6e96 100644 GIT binary patch delta 44 zcmey&{F!;e3SM(v15;fi3k5?{D^tUXTNm>9B<7`;CZ?xaDWoJ$4rPpo082Cu AzW@LL diff --git a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po index ec47a54150..af7640b312 100644 --- a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mads L. Nielsen , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statistik" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo index 2656da7e0b49bf3916b524549dcda893c55cb9da..83e69293908ca38df07b508798eb797a60334592 100644 GIT binary patch delta 50 zcmcc5eV==S7BjE8u7Rnpk%fYxsgN{62|!>7|M3sa6UpsqrqZlfN-XZ%$;X GV*~(sZV!$C delta 50 zcmcc5eV==S7BjDzuA!l>k+Fh-k(H_WWOL>Nli69K__$IQsZ4*Hz%;v GGXel>S`L^1 diff --git a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po index 0e1eb1f3f8..b8e94d83f0 100644 --- a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Berny , 2015 # Mathias Behrle , 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -26,7 +27,7 @@ msgstr "Statistiken" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Plan" diff --git a/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo index f1fa87dd04bc6a5a99a76fe46258c1c1988302f2..a7fd5097eee38124c3146de2df4c0e4886026a86 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8s#x>5l5l\n" "Language-Team: LANGUAGE \n" @@ -23,7 +23,7 @@ msgstr "" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo index fa9d1583beb9e1dd587619183b0aa4881e0818e2..a0f356aa4c1d89379bbe3502bcbc133e05b39946 100644 GIT binary patch delta 47 zcmeC+>EPL*#msB2YhbEtWT9YaYGrCT*_?S1k56J=dTC;Ms+B@&@#GuK(VHDuPA~!h DE4>Z# delta 47 zcmeC+>EPL*#msA_YiOuzWUOFdWMyhT*_?UN7|M3sa6W9#hdL}PBH=j DF>MX` diff --git a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po index 01e6577cec..651b91dca3 100644 --- a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lory977 , 2015 # Roberto Rosario, 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -26,7 +27,7 @@ msgstr "Estadísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programa" diff --git a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo index d65858ad2734d71bb7b2ed2f450880229ff79317..6f3f4b7226fd7dd359566d335b9038c459e46d20 100644 GIT binary patch delta 46 zcmX@bc8YC79V4%~u7Rnpk%fYxsg7|M3sa6VUiIa7hq9;#b+6DkZ C*bZ<2 delta 46 zcmX@bc8YC79V4%quA!l>k+Fh-k(H_W_%z5+_e)+719e C{SI~j diff --git a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po index 267d8a8785..209101fe81 100644 --- a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2014 # Mohammad Dashtizadeh , 2013 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "آمار" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo index 2245b130366a85cc8c87225094546da90e366fec..e0b7009eb3d991a6286fb5dbc0e82769d2eecc37 100644 GIT binary patch delta 47 zcmX@XbAo4s7BjE8u7Rnpk%fYxsgtJU)qe>7|M3sa6VUMU#IqM{iDIdBz9; DN1zV( delta 47 zcmX@XbAo4s7BjDzuA!l>k+Fh-k(H_WWOL>tlQ~$TczhD`(n}N5Q>_%ziZ&;*JZA&| DIvx%F diff --git a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po index 1f00d53b03..878f66e726 100644 --- a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Pierre Lhoste , 2012 # Thierry Schott , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiques" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Planification" diff --git a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo index 291819e27cdeafd639617089869951d5a35e0e03..e4d45026ac669259945b2ea17151319c62bcc5bc 100644 GIT binary patch delta 44 zcmeyt{DXPI3SM(v15;fi3k5?{D^tUXTbJ;M1& diff --git a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po index 0b0b18df86..6cbc819102 100644 --- a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dezső József , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statisztika" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo index a4c41cc528b2b016b2cd108f39e1ebece05be092..b92d57313d616ab0427f6631a48c4b20ed9f75a0 100644 GIT binary patch delta 44 zcmZ3)vWR8EAzpJ`15;fi3k5?{D^tUX=a=&MB<7`;CZ?xaDP*QhE@q6Le4Ei7069bs ArT_o{ delta 44 zcmZ3)vWR8EAzm|GLqlC7V+8{vD^v4{=a)`yWQ^kRNz6+xO-xU, 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statistik-statistik" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo index 6676cb110e956c7dcca73366fefa9e96383637b0..f5a3f8617ce8bf96c01e6e4c84c7c77f54aed171 100644 GIT binary patch delta 47 zcmZqUY2(?T#msB2YhbEtWT9YaYGrCT*_?Slk56J=dTC;Ms+B@!$>guh(VJsgRx$zr DF7ys8 delta 45 zcmZqUY2(?T#msA_YiOuzWUOFdWMyhT*_?U*WM-BqE}z7_^wPxiR4aweQ7mg10R}P* AQ~&?~ diff --git a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po index c169cd9b98..f8fba15512 100644 --- a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Giovanni Tricarico , 2016 # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-09-24 10:01+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiche " #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programma " diff --git a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo index a93b512aaa36ddd53c95ce55f64179a1e02d9b55..43b8a9e5dbde7f7cc7b0e54c38921779056e428f 100644 GIT binary patch delta 49 zcmbQvF`Z+>FGgN-T?12HBMSvXQ!7)$$?Qz$__&8a^n4bCSPHSo@~#2 F0|0GX54ZpT delta 49 zcmbQvF`Z+>FGgN7T|+}%BVz>vBP&z$$?Qz$CO>70;`d3+OD|1KPqk9W%Zc~%nQX^= F699B?55WKc diff --git a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po index ef3ef753ce..f66207cf4b 100644 --- a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 # Lucas Weel , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-09 16:41+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiek" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Schema" diff --git a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo index 067786d37ae43ec661a21d2ec433c995df8b3574..8e3dd6b395fcc42c3a8fc08a711e4257e5be8600 100644 GIT binary patch delta 47 zcmZ3_vz}*z7BjE8u7Rnpk%fYxsgNJU)qe>7|M3sa6UFIg`IJM{kZ}xyT3r DJ|GUL delta 47 zcmZ3_vz}*z7BjDzuA!l>k+Fh-k(H_WWOL>NlUZ1zczhD`(n}N5Q>_#VayG}ZTw(+O DFj@_- diff --git a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po index 7a2c9ae962..98fd6ba05a 100644 --- a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Wojtek Warczakowski , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "Statystyki" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Harmonogram" diff --git a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo index 45e6e7b5e4f5833a863964d4eb98da069c0f723e..8eea4c3775954ef5bad0dfa355302b38986c2a68 100644 GIT binary patch delta 46 zcmX@dagJkyG!w76u7Rnpk%fYxsg7|M3sa6UFC6m7~MNf`n{r~_r C84l3^ delta 45 zcmX@dagJkyG!w6xuA!l>k+Fh-k(H_WWDTbClUbOfxP21y(n}N5Q>_#VCdV*;0stFH B4PyWR diff --git a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po index 06ad1b0ba4..e2ace3b902 100644 --- a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Manuela Silva , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Manuela Silva \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Estatísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Agenda" diff --git a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo index f84fc839f9f7d285c434f04144090818aa623646..efe824526f6009fc07b5cfdab097ef556a19ff37 100644 GIT binary patch delta 50 zcmZ3%vw~-X7BjE8u7Rnpk%fYxsg7|M3sa6UFCGk!{lNni}H|MbI GVFUnRybh=U delta 50 zcmZ3%vw~-X7BjDzuA!l>k+Fh-k(H_WWOL@zlZ9BK__#VO5&Y@HfOW! GWds0Pxel=a diff --git a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po index f0f3d14b3b..b0421e0154 100644 --- a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Estatísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programação" diff --git a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo index d6a402985a5b9dd9de12d75dc2d1e64816ef94f0..4638fef926dd18463f4ac640bf5ffcdd741c1347 100644 GIT binary patch delta 49 zcmX@cc8qO9I3usQu7Rnpk%fYxsg7|M3sa6U_`SC&ilU10aC-*aL F2LNY74@v+4 delta 49 zcmX@cc8qO9I3ur_uA!l>k+Fh-k(H_W_$=^5cX2C-*V! F003hj4^sdD diff --git a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po index 1660cf993b..2499b96ff4 100644 --- a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Badea Gabriel , 2013 # Stefaniu Criste , 2016 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-04-17 12:06+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -25,7 +27,7 @@ msgstr "Statistică" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo index 279a3ac462d4b9d327684e9f8e6c9b67d3be8d9b..ef6e10387b2a20c5d76a85ad54e641c491f02b7d 100644 GIT binary patch delta 47 zcmey$^_6RbHWRP8u7Rnpk%fYxsg7|M3sa6U_rIW8PMQ^rYwqybT DQ4kJ0 delta 47 zcmey$^_6RbHWROzuA!l>k+Fh-k(H_WWDBOblOHif@%SX>rI#kAr&=i#m2S3XwqgPR DRznU! diff --git a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po index 1c9f5a96f4..3b80cb1519 100644 --- a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 # Sergey Glita , 2013 @@ -9,15 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-07-19 20:06+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -25,7 +28,7 @@ msgstr "Статистика" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Запланировать" diff --git a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo index 96d10306fe358633af4602a16290470b7c594f4b..46a621b0c0c26f0b0c64fe48b6c20fec5fd491ab 100644 GIT binary patch delta 47 zcmeBU>0_DD%4@D`V5)0mp2 DPah85 delta 47 zcmeBU>0_DD%4?=;XsBystYBbdWokZg(x%BFj8XhPiFxUziRr0U3dK3`!Jd=XGA055 DO#Tk$ diff --git a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po index e98b40d96e..1c107bdfdc 100644 --- a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-09-24 05:16+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -23,7 +25,7 @@ msgstr "" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo index e9dbf37f1f083ec34e4f98ac87d0f779413db637..14e79835e9fdf96efe5ce48b0e8d3f9c2b7ed22b 100644 GIT binary patch delta 47 zcmZo>X=a(Qg4bNvz*N`BLc!3~%G7Y;*3JAriFxUziRr0U3T2t`VSba-8KWm(Vl)H* DRu>O1 delta 47 zcmZo>X=a(Qg4ayf&`{UNSi!)^%G7+~*3FYE7^C=o67$ka6Vp?z6v{H=!~7;+WHbT* DRu&I9 diff --git a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po index ca427b5d39..e422777387 100644 --- a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Trung Phan Minh , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Thống kê" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo index f85e963756148f997ecefbb8d776499124f12d29..d12bbce2ef7d0b9f9dc77f504ea1686fb252e089 100644 GIT binary patch delta 47 zcmeyt{DXPI3SM(v15;fi3k5?{D^tUXTi5dYB<7`;CZ?xaDO6>|JNr#eWQ?AChEWFq Deq0am delta 47 zcmeyt{DXPI3SKi^LqlC7V+8{vD^v4{Th~r5VvOSVNz6+xO-xU, 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "统计" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo index e0af7c8ebbeaae261d6b24eb7d9cd449d0bd34b2..4786513f80c27cac1a045206b55f115df892d3cc 100644 GIT binary patch delta 44 zcmZ3?vY2H;E3dh(fvK*Mg@U1}m8s#xNvnB$67$ka6Vp?z6cURj+b~8?Ucy)p04bOb A1ONa4 delta 44 zcmZ3?vY2H;E3cWZp`oskv4Vk-m8to}NvkJ&F-GzDB<7`;CZ?xaDI^w6Ud-4404G-t A3IG5A diff --git a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po index 1d98a945f3..f905811945 100644 --- a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo index 6c8fcea159e6885feb5d80d9bc86a68fa34c561a..e9da8c3eeb370ae792f1bf267d2e4749b77db026 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8s#xN$Yrg67$ka6Vp?z6q3>>+cQQ_Ue2fk067>A A4gdfE delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8to}N$V#2GDh+EB<7`;CZ?xaDI}#&UdE^k05>KM A6aWAK diff --git a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po index d9cbff3beb..e12388e5d6 100644 --- a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo index b16699b58a3b9a7a42e3011262e575cca362884d..9eaaec813e6e5018719708e18d80c31b01169128 100644 GIT binary patch delta 47 zcmdnRvWsOxE3dh(fvK*Mg@U1}m8s#xNhkPy67$ka6Vp?z6q1VLog61eGDc56!dM0X DV2lrH delta 47 zcmdnRvWsOxE3cWZp`oskv4Vk-m8to}Nhc;}F-GzGB<7`;CZ?xaDI^ugJ2_51%vcTp DU{?=w diff --git a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po index 1ab354e68d..c3c2043e26 100644 --- a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo index 1588f0b80b183f6d1ca7e7ef7dc7c421e13cf402..33be68b8f1be37b4a70977cdb5ae46da9b0caa6d 100644 GIT binary patch delta 44 zcmcb>e1UmFE3dh(fvK*Mg@U1}m8s#xNvnB$67$ka6Vp?z6jBl=+b~8?Uc#sY05_Bk A`v3p{ delta 44 zcmcb>e1UmFE3cWZp`oskv4Vk-m8to}NvkJ&F-GzDB<7`;CZ?xaDWoJ$Ud*Tq05yva A0RR91 diff --git a/mayan/apps/storage/locale/da/LC_MESSAGES/django.po b/mayan/apps/storage/locale/da/LC_MESSAGES/django.po index 22e6558343..388f8b1d53 100644 --- a/mayan/apps/storage/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/da/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo index 4d77c4d6c2b7e62aa85a6484f573f64516816175..55a835862754e68fbe661b36d483bb5d048162e9 100644 GIT binary patch delta 47 zcmbQnGL2=zQeJai15;fi3k5?{D^tUXn-1{%B<7`;CZ?xaDWs&vySPp+WQ?AChtUcE DTe1&G delta 47 zcmbQnGL2=zQeHD%LqlC7V+8{vD^v4{n+{BFVvOSVNz6+xO-xUe diff --git a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po index 7869c00e46..13cf6d2a41 100644 --- a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Berny , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo index f1fa87dd04bc6a5a99a76fe46258c1c1988302f2..a7fd5097eee38124c3146de2df4c0e4886026a86 100644 GIT binary patch delta 23 ecmeyx^owai7q7XlfvK*Mg@U1}m8s#x>5l5l\n" "Language-Team: LANGUAGE \n" diff --git a/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo index c8c0abdce9acd133cc7af7edabc4464c83408348..2f48b879e219779d6e7745978563428029a6af61 100644 GIT binary patch delta 44 zcmeyy{Ed0SQeJai15;fi3k5?{D^tUXn-=l-B<7`;CZ?xaDWn!p4rYv=yqnP)08H}^ A&Hw-a delta 44 zcmeyy{Ed0SQeHD%LqlC7V+8{vD^v4{n-)z@WQ^kRNz6+xO-xU\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo index 2142f7d5b0aec000eedb4639ce473280e0251d30..952f0588978b315728c83a2bee02a67f364d7951 100644 GIT binary patch delta 44 zcmbQhGJ$2nQeJai15;fi3k5?{D^tUXn-25%B<7`;CZ?xaDWnxmE@6zGe238l052U5 AU;qFB delta 44 zcmbQhGJ$2nQeHD%LqlC7V+8{vD^v4{n+{KIVvOSPNz6+xO-xU, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo index d3f6f52bca07360d4194a35d60ee288e95d70abd..8121ee93ea2f941ba1369b25676247adb3ddc34f 100644 GIT binary patch delta 44 zcmcc2e3^MdE3dh(fvK*Mg@U1}m8s#xN$Yrg67$ka6Vp?z6f#OD+cQQ_Ue2fk06EeQ AA^-pY delta 44 zcmcc2e3^MdE3cWZp`oskv4Vk-m8to}N$V#2GDh+EB<7`;CZ?xaDP)vRUdE^k05^~h AC;$Ke diff --git a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po index 66572c9709..1d85a660d7 100644 --- a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo index 237412df64cf91fdf2a42e15c7f1d5a5ac2851af..80cc3ae06d61aa00c91bc6fbd84046065746707e 100644 GIT binary patch delta 44 zcmX@he3p4aE3dh(fvK*Mg@U1}m8s#xN$Yuh67$ka6Vp?z6f#pLJ1|C1Ucsme05@0; A0ssI2 delta 44 zcmX@he3p4aE3cWZp`oskv4Vk-m8to}N$V&3F-GzDB<7`;CZ?xaDP*QhUe2fn05xL{ A2mk;8 diff --git a/mayan/apps/storage/locale/id/LC_MESSAGES/django.po b/mayan/apps/storage/locale/id/LC_MESSAGES/django.po index c9a9dc72dc..019c3d2133 100644 --- a/mayan/apps/storage/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/id/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo index a9f5fa4ac3fe247308905d9212415881aa0cc7be..2707c7027218255bf098ef3058cab5e62799cc3c 100644 GIT binary patch delta 44 zcmeBU>0_C&l-FF>z*N`BLc!3~%G7Y;rhPm0_C&l-Eqx&`{UNSi!)^%G7+~rhSuZ8Kby-67$ka6Vp?z6eeF`v;qJTo(+5e diff --git a/mayan/apps/storage/locale/it/LC_MESSAGES/django.po b/mayan/apps/storage/locale/it/LC_MESSAGES/django.po index 71410927b8..5dd337ac26 100644 --- a/mayan/apps/storage/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/it/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Giovanni Tricarico , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Giovanni Tricarico \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo index 70aceefa93e49f45a707ef40695f6ab90c50d714..9e19fb61f34bd9fe480adb00d175c73ad38ad86d 100644 GIT binary patch delta 47 zcmbQsGM8n-QeJai15;fi3k5?{D^tUXo6hn3B<7`;CZ?xaDdgqE`}s_+XN;cwiqRMV DVUiD< delta 47 zcmbQsGM8n-QeHD%LqlC7V+8{vD^v4{o6b$1z!=5vlbDxYnwXwyrI42s@8>i5C8G%d DV@(gF diff --git a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po index 79a3599d17..1ed2707fdc 100644 --- a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-10-28 09:41+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo index 73e24eb3c6ff7a832a8e87fb7c5e1533c2be801d..206eea8bd0598074e3161425efb8c0a677ad44d9 100644 GIT binary patch delta 44 zcmX@fa*}1jQeJai15;fi3k5?{D^tUXn-1~#B<7`;CZ?xaDHP;PE@q6Le48;3078oo A4FCWD delta 44 zcmX@fa*}1jQeHD%LqlC7V+8{vD^v4{n+{EGWQ^kRNz6+xO-xU, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-08-04 09:32+0000\n" "Last-Translator: Daniel Winiarski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo index da99c6af02a73b7d2b5c43b3ded4dd50d14efc06..50fb74d2ae400c10224f886e5d53e04ca101efde 100644 GIT binary patch delta 44 zcmZ3)vWR8EQeJai15;fi3k5?{D^tUXo6ht2B<7`;CZ?xaDHN1UZeWa_{DRR605>HL Ax&QzG delta 43 zcmZ3)vWR8EQeHD%LqlC7V+8{vD^v4{o6b+}V~pbVNz6+xO-xU, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Manuela Silva \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo index 3b965c6d95377e468213495d5a845980b34c22de..c0263783dd9b4c7489f0830281463f011b6e6ed5 100644 GIT binary patch delta 47 zcmZ3$vVdj6QeJai15;fi3k5?{D^tUXn@;olB<7`;CZ?xaDHN2%I|WUyVT_*qoY4{h DVtWsw delta 47 zcmZ3$vVdj6QeHD%LqlC7V+8{vD^v4{n@&&eWsKtYNz6+xO-xU, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-04 19:03+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo index 2b60498a7fa422f07d9b0b1252c5ecc37ddb40b3..f536748367a5e4bcbdcf527b06418782359b99a1 100644 GIT binary patch delta 47 zcmdnRvWsQHQeJai15;fi3k5?{D^tUXn-22(B<7`;CZ?xaDHP?$2l-DfVvL@AmoXLq DYWxr8 delta 47 zcmdnRvWsQHQeHD%LqlC7V+8{vD^v4{n+{HHW{l$ZNz6+xO-xU, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-04-17 09:42+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo index 100272eb83de8ef3432c3f19626ace82c63df402..21f3e4dac7181955bbd88accf6682da286cbed83 100644 GIT binary patch delta 44 zcmey*@}FhGQeJai15;fi3k5?{D^tUXo96QPB<7`;CZ?xaDHN4X_G65myp8cB08q~l AZ~y=R delta 44 zcmey*@}FhGQeHD%LqlC7V+8{vD^v4{o90fAVT|JONz6+xO-xU=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo index 6360098ac01c8fa5aa3eed4656b690e6b9726317..e5a3441993e1f23986302cb61bc03e1fa457c86c 100644 GIT binary patch delta 47 zcmbQiGJ|D8E3dh(fvK*Mg@U1}m8s#xNqhKx67$ka6Vp?z6pC}=gFPqvGDc6{!I%I5 DR22^o delta 47 zcmbQiGJ|D8E3cWZp`oskv4Vk-m8to}NqZ*8F-GzGB<7`;CZ?xaDHP|#2YXK5&X@=Q DQj`xE diff --git a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po index 82331b5c0d..9244484173 100644 --- a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo index c08af74dc8901b95e227e36dac07c18490ebb9b0..229223cb17788418ec201d6ca0a2ca6de9621256 100644 GIT binary patch delta 47 zcmcb|e2;lTE3dh(fvK*Mg@U1}m8s#xNqhNy67$ka6Vp?z6v{H=!~7=uF-A|`$*2kd DZ5a<~ delta 47 zcmcb|e2;lTE3cWZp`oskv4Vk-m8to}NqZ;9Ge+_IB<7`;CZ?xaDU@Z#hxtw3!KelR DYlshW diff --git a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po index 8645d1e283..292d94ed7e 100644 --- a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo index a9433c9333251860b157745bd25fd1fac5ed1621..fb39674e979fb48cdaa6b6d0d2f13e2511c4b789 100644 GIT binary patch delta 47 zcmcb?e1myHE3dh(fvK*Mg@U1}m8s#xN!$5-67$ka6Vp?z6sj`fo&6?zFh)<_%%}|JNr%E#Ha=U DXV?!! diff --git a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po index 163d16dc06..101968558c 100644 --- a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/tags/api_views.py b/mayan/apps/tags/api_views.py index 522a5cac38..5d96310c31 100644 --- a/mayan/apps/tags/api_views.py +++ b/mayan/apps/tags/api_views.py @@ -15,15 +15,43 @@ from rest_api.permissions import MayanPermission from .models import Tag from .permissions import ( - permission_tag_create, permission_tag_delete, permission_tag_edit, - permission_tag_remove, permission_tag_view + permission_tag_attach, permission_tag_create, permission_tag_delete, + permission_tag_edit, permission_tag_remove, permission_tag_view ) from .serializers import ( - DocumentTagSerializer, NewDocumentTagSerializer, NewTagSerializer, - TagSerializer + DocumentTagSerializer, NewDocumentTagSerializer, TagSerializer, + WritableTagSerializer ) +class APITagListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_tag_view,)} + mayan_view_permissions = {'POST': (permission_tag_create,)} + permission_classes = (MayanPermission,) + queryset = Tag.objects.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return TagSerializer + elif self.request.method == 'POST': + return WritableTagSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the tags. + """ + + return super(APITagListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Create a new tag. + """ + + return super(APITagListView, self).post(*args, **kwargs) + + class APITagView(generics.RetrieveUpdateDestroyAPIView): filter_backends = (MayanObjectPermissionsFilter,) mayan_object_permissions = { @@ -33,7 +61,6 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): 'PUT': (permission_tag_edit,) } queryset = Tag.objects.all() - serializer_class = TagSerializer def delete(self, *args, **kwargs): """ @@ -49,6 +76,12 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): return super(APITagView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return TagSerializer + else: + return WritableTagSerializer + def patch(self, *args, **kwargs): """ Edit the selected tag. @@ -64,34 +97,6 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): return super(APITagView, self).put(*args, **kwargs) -class APITagListView(generics.ListCreateAPIView): - filter_backends = (MayanObjectPermissionsFilter,) - mayan_object_permissions = {'GET': (permission_tag_view,)} - mayan_view_permissions = {'POST': (permission_tag_create,)} - permission_classes = (MayanPermission,) - queryset = Tag.objects.all() - - def get_serializer_class(self): - if self.request.method == 'GET': - return TagSerializer - elif self.request.method == 'POST': - return NewTagSerializer - - def get(self, *args, **kwargs): - """ - Returns a list of all the tags. - """ - - return super(APITagListView, self).get(*args, **kwargs) - - def post(self, *args, **kwargs): - """ - Create a new tag. - """ - - return super(APITagListView, self).post(*args, **kwargs) - - class APITagDocumentListView(generics.ListAPIView): """ Returns a list of all the documents tagged by a particular tag. @@ -112,15 +117,21 @@ class APITagDocumentListView(generics.ListAPIView): class APIDocumentTagListView(generics.ListCreateAPIView): - """ - Returns a list of all the tags attached to a document. - """ - filter_backends = (MayanObjectPermissionsFilter,) - mayan_object_permissions = {'GET': (permission_tag_view,)} + mayan_object_permissions = { + 'GET': (permission_tag_view,), + 'POST': (permission_tag_attach,) + } + + def get(self, *args, **kwargs): + """ + Returns a list of all the tags attached to a document. + """ + + return super(APIDocumentTagListView, self).get(*args, **kwargs) def get_document(self): - return get_object_or_404(Document, pk=self.kwargs['pk']) + return get_object_or_404(Document, pk=self.kwargs['document_pk']) def get_queryset(self): document = self.get_document() @@ -132,6 +143,12 @@ class APIDocumentTagListView(generics.ListCreateAPIView): return document.attached_tags().all() + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTagSerializer + elif self.request.method == 'POST': + return NewDocumentTagSerializer + def get_serializer_context(self): """ Extra context provided to the serializer class. @@ -143,12 +160,6 @@ class APIDocumentTagListView(generics.ListCreateAPIView): 'view': self } - def get_serializer_class(self): - if self.request.method == 'GET': - return DocumentTagSerializer - elif self.request.method == 'POST': - return NewDocumentTagSerializer - def perform_create(self, serializer): serializer.save(document=self.get_document()) diff --git a/mayan/apps/tags/apps.py b/mayan/apps/tags/apps.py index c0c39ef7cd..397eb2bcfc 100644 --- a/mayan/apps/tags/apps.py +++ b/mayan/apps/tags/apps.py @@ -29,8 +29,8 @@ from .widgets import widget_document_tags, widget_single_tag class TagsApp(MayanAppConfig): + has_tests = True name = 'tags' - test = True verbose_name = _('Tags') def ready(self): diff --git a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo index b68eb4af8d1108487455350d5de6ab1800bca87d..9bcd99fa432c7e222a352e324cb18692ae4a5705 100644 GIT binary patch delta 535 zcmY+>&nv@W9KiACyY0LA&Nj9S`PFLSz-m8y&1T}j&4papK`U!Xh@zA%C7h(5cJK#C zO2Ud9TpgUaeWm=mDXz}m&*n!y_4&R&&(qWM`Sg6Z>#qET$AF_Khyd9{9+AytTH`~U zU_G9qjyG6?w^)tO*p2UKV8|wf1H-7+F>J>)I&lgca0dH@D2Ppp0XD9&1zq;a1#PG< z=)e$~_(YR&Ot4NejT;v*imTX($2g4-=))nps&iu)!ATs!-SU1xh*ye1Ha;+eF_#c| z+`&Hl#8&L8sx+8Dll2xdk6`X{1Lpb-&v(TP<>2VQP%lI~;ZqZ-@RI6Tf1;K`{SrT^ zo>>KR2t(?&HF<7JI!AM}^UJx?p1oJ|Cc+Uj9P0^2&6F9HFOJ5)on$H=mxjLL8P3k- lm$La>DwtiA>w2d2rb|s;x{7XV-#W7n?l-K%(uHxSeF2y2KxO~{ delta 1110 zcmajc%WD%s9Ki8O8k4s6VIQ_4S_ez0)TSg`n@Y6kp?dOJP_QDpm^DUhqD>l+g29?X zDBe~tp1h?GYpFrn9twIA^dxwg6}10=;7L!4ekTS|+R}mFes&%^zu(NRG~`>epBp`o z1+A6XMSLLk5D#5EXq9duc3>55!M#|I`*15B#4rw^fn!*O&(VWR<^BqG(0_yN_!ZlP z$cm;4Avzf_a5r8;Cd3%-#3y(JU*b{xR-O;DyH0S9hfX+z?HI*XiqB&o{p(&Ks_`j? za2C7p6UNCes(nHnW+07qxPbbDR~W>1cou(PFP^Ft;uz-eGQP#**hv-I+c6+R6Lmo447#vB8^}u90>LV zjF2=!k&t13thj4m@eI|RFcYy+GsY5gq`2&PY18i%E>$T=`2VmuV$S|XIxF|*Mgc;^Sr8MRd8~|xRdJ^>wNVw z(&8KoH{3?=65Blaf2nopoPoj?b*?GrPuhZ-StqfemKUY6r|o{9-){5O+N(Zqy}s+U Ob4?ySUi{*H@A?gkF+WHE diff --git a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po index 2ef5e5d294..3cc67a866a 100644 --- a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammed ALDOUB , 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "الكلمات الاستدلالية" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "الوثائق" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "اللون" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,31 +106,39 @@ msgstr "إضافة كلمات استدلالية للوثائق" msgid "Remove tags from documents" msgstr "إزالة الكلمات الاستدلالية من الوثائق" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "يجب توفير وثيقة واحدة عالاقل." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "الوثيقة \"%(document)s\" مربوطة مسبقاً بالكلمات الاستدلالية \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "تم ربط الكلمة الاستدلالية \"%(tag)s\" بالوثيقة \"%(document)s\" ." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -136,25 +146,44 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "يجب توفير كلمة استدلالية واحدة عالاقل" - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "الكلمة الاستدلالية \"%s\" مسحت بنجاح." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "خطأ أثناء مسح الكلمة الاستدلالية \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "الوثيقة \"%(document)s\" مربوطة مسبقاً بالكلمات الاستدلالية \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "تم ربط الكلمة الاستدلالية \"%(tag)s\" بالوثيقة \"%(document)s\" ." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "ستتم الإزالة من جميع الوثائق." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" @@ -164,70 +193,120 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "الكلمة الاستدلالية \"%s\" مسحت بنجاح." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "خطأ أثناء مسح الكلمة الاستدلالية \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "يجب توفير وثيقة واحد عالاقل مربوطة بكلمات استدلالية" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "ازالة الكلمة الاستدلالية من الوثيقة: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "ازالة الكلمة الاستدلالية من الوثائق: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "إزالة" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "الوثيقة \"%(document)s\" لم تربط مع: \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح من الوثيقة \"%(document)s\"." +msgstr "" +"الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح من الوثيقة \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" +#~ msgstr[4] "2b1f894eebfe4fd9c93a2a121387867c_pl_4" +#~ msgstr[5] "2b1f894eebfe4fd9c93a2a121387867c_pl_5" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -280,9 +359,6 @@ msgstr "الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح م #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo index ef999b129e5460c8877c68bc2dec483136af8921..041d8f8ca247a121dd2d46ef2237f02dc2881587 100644 GIT binary patch delta 424 zcmYMw&npCB7{Kv&c4n7lhFU`7N4v=?+Sb^nWll~`T-;D<)wCQ~7fxHNE#3ryk-8hH12ZsH{87AEi=ZT!M9?1;7dYa&ab22A5Py4av;6^oodbs;)2 z!}L5(VFuSQg;gBD22S8DF5@%yqs`U}m`4Zqum`VkRG30MP%Lus5|_4StCsddyHr7_ z<<&z~&@C)d{Q$L-nj@sIog`NLoyvhPi?K(mn458PvvX<3^;}2(#D@QG=Dk8eX7#GM rRN5`?m&(4E-Ym;2eZ849HnhIW=r9bzr|>>H3R__i)x$u3$3K1n(`G&U delta 652 zcmZ|LJ!lkB5Ww-b`68Yd4FO{eDo;eLcC)+5C2}B$h?P-MY;0sr*5kn3O0st??eM=TFuWh?`D2XF1cnsK094qi1nTM zs8*g0br9>@VL&3PgnBlbsm_I!*irwliGz}p{IXhwN!#;me_XqMu`p%36Rw-Pe968N z*2)XzsA8WB;;^WF*PFE6aohK_?-e~i`P%g$nd!cszYtVP)u2Sl&C>d2_YJH5B3sN> z<*mGvhL#O;`6!)iiTy~@Y+0Jy32B={lY&&*rmiEcY(+LnwX, 2012 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Етикети" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Документи" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Цвят" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,123 +105,191 @@ msgstr "Закачане етикет към документи" msgid "Remove tags from documents" msgstr "Премахване на етикети от документи" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Трябва да се осигури най-малко един етикет." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Етикет \"%s\" е изтрит успешно." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Грешка при изтриване на етикет \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Ще бъде премахнат от всички документи." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Етикет \"%s\" е изтрит успешно." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Грешка при изтриване на етикет \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +341,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo index e52a90b654ad91199d5318437d7c7341e8363216..a50c0be027de94ce6e59a737a0ff74104b6287c4 100644 GIT binary patch delta 534 zcmYMxIZFdU6u|Mxy{jhCSSVfuA___%2dm}~4=gQ2un-H07($3izzb|lmtKYlHnuhv zilE=XLK_RMMA1H#g<$9Z=|&&><~K9T&U?Fi7CH*lUPJDNB0}TyFUh2)oXk@A@(&I$)q+t$HB#1rLdPPpOM8O{F#qTs*5mY+l?I*i$cHYd}<*sKvjn6%) z2ZFJe*iU>Q`iXl9E{yi15PjHzX*`4(Jc`@!6y|Xp9bCc=e1R!^9pAsfLGIt;0Di@T zLNr8gix9_o;NStgf+WNe?!!kohAVgmf5iDbtD6GTTui|k96%S>*!*2I2Wqr7=RL+= z?w?>6u3(P(VwFE;=j&(|vf6~;Cq}rKiDPIscma>$Ej)}*(Y*H#O`)G?4$#-$+;|>G zxxW;9AI-e?NGb6JyQwd}@y9Hfqbvc~e#W!7%DdUT#d(s-e753F@A! zr3&S|Ry+uNE!|+YwxIoRNc?|Js7hO;OWOTor767-)V1U_d94yGNcTisq#%z}hs0m$ zI9uIFzbq$DCvthqwk>B^W}QNA#LAw`W;-V@T2s32RlUHs##N{b(#hI+D?4mCwsh=* z?L?ni9!7UkGnwDk6aP*Jkzg`NzGda+p6 ztIOJ#MOBey?JA$c%x$)1ixsF, 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tagovi" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Boja" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,125 +106,195 @@ msgstr "Prikači tagove na dokumente" msgid "Remove tags from documents" msgstr "Ukloni tagove iz dokumenta" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Mora biti obezbjeđen bar jedan dokument." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" je već tagovan kao \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Tag \"%(tag)s\" uspješno prikačen na dokument \"%(document)s\"." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Mora biti obezbjeđen bar jedan tag." - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" uspješno izbrisan." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Greška brisanja taga \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "Dokument \"%(document)s\" je već tagovan kao \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "Tag \"%(tag)s\" uspješno prikačen na dokument \"%(document)s\"." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "Bit će uklonjen iz svih dokumenata." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" uspješno izbrisan." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Greška brisanja taga \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Mora biti obezbjeđen bar jedan tagovani dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Ukloni tag iz dokumenta: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Ukloni tag iz dokumenata: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Ukloniti" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" nije tagovan kao \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" uspješno uklonjen iz dokumenta \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +346,6 @@ msgstr "Tag \"%(tag)s\" uspješno uklonjen iz dokumenta \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo index 8a4bc9828edee27fa9dbb4cdb79277d12dbded6b..3cdea872f5b7b53fa3424169264aa2daffe7fbd3 100644 GIT binary patch delta 488 zcmZY5JxIeq6u|LInzmY_MnTjfQV{JFNSj7&1ix?;6j!G}OX*Sv+hP$ZI6HX=3gY18 z;vkBS4&vr0jvZVa6x5-!{x6D)4_5Rs-4A>heU-UG7AD&6~0v&(2P# zGM?{cY$xY9iPaT*tynK_mNzQ)Qcx}WsjQRvtIPYYE8mQUxg1nVwV=fBLLdv#b@>oI Mmlv^Fc@%&823EH`od5s; delta 978 zcmajcJ#5oJ6u|LIlK?FVq=iJ36m)9U4+4pr6k14yS|kJvWdIh$0GRj)!HHePP7neV z1~%9%D%co-fh7YoVr60gCI%KZ3JYT7e~zOfP{qm5Kilu@d++=@v7YLD9*I2`j0`bG zyd(AzcO#q_-*FHAz&H*K2(c4WxE&?V;~^|z1qX30^chZb{}LzgJ?_V!m=mHS($U_6 z%cv8VaWCG(C47R*_$kbf#)RMyM>*+*j^hNL#zz!sp>E_C)#`%NTZGtwS=94$xQK^w zf%U~I7ehRFj!Eod9^c>;uA{`v)?OzInC1Qo>YciSqxcld*u`V`4To`NTd&|Ua)>2P z`nzW^!uo=p2nwLVVCa`p;kE8SkKKgsLXQ!GCIxi`zW{>5Sx=;i1fhSC{-wK!{?Lo- z9S|oxsxo>6uE2N5SD$0uh@r_yRD+dJTn%UgzPPka7{$hpqhmg~vYrqiyON*bQ5 zD}x7)tz`d&g4lcxEBq&2RpuXGI+cBswzv<@LRE0{@2)W zvSwLIUaPCNv>ekPj9=_ru#CE7YK^iQHQS{5w=X>T<^Dqs)3Jg*D~OY-Dcy~!?#5hO rcT*6Xe1}|BdF(*{L#J-4X7CCdU`R6;CVKt, 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenter" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Farve" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,123 +105,191 @@ msgstr "Vedhæft tags til dokumenter" msgid "Remove tags from documents" msgstr "Fjern tags fra dokumenter" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Skal angive mindst ét ​​dokument." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokumentet \"%(document)s\" er allerede mærket som \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" vedhæftet til at dokumentet \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Der skal angives mindst én tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" slettet." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fejl ved sletning af tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Vil blive fjernet fra alle dokumenter." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" slettet." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Fejl ved sletning af tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Skal angive mindst ét tagget dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Fjern tag fra dokument: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Fjern tag fra dokumenter: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#: views.py:244 +msgid "Remove" msgstr "" -#: views.py:367 +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokumentet \"%(document)s\" ikke blev kodet som \"%(tag)s\"" +#: views.py:265 +msgid "Tags to be removed." +msgstr "" -#: views.py:388 +#: views.py:290 +#, python-format +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" + +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" blev fjernet fra dokumentet \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +341,6 @@ msgstr "Tag \"%(tag)s\" blev fjernet fra dokumentet \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo index 2b63b3b3d0f7d2a3ecc70856b496a7ff6bea6f54..f5f43e7f712a5d8c7200b3defe7238cf3e1e77ad 100644 GIT binary patch literal 3341 zcmZ{lONbmr7{@Cy@i8&RBpQtxt!!SqEL6HJ)_%9&9CeA)%U8e zf8Dm>BEvI|b|0Eq$JjLZ-Fp1t`TPdP@MB-#??&)Ta1;17crW-PcsKYbxDnjAfw8B- zP2g?d3*Z(o1PkCRAjx?xnSTQ$dGCXh;K$&@;8kz}+zz3)f>m%cSOaeXUk2|1&w^OW zUIl60>&g7v-~seM1o30v;_oK#2XGH~1tdMLgQVAbbV!fQ;4W|{Nb(PZFpbr~Bj6(V z82A==KX?VC^RIz-g4e-2z^yoJJGdVteJdcHI}5%CAGbi-w-J+cZUH3wc7Sy5UXbJ; z0ihy$5j+EWAj$m-+zS2-(!Srpo58=p+rfX5@hvd!QS^6#Q{b6|7eTV?dyw?_3B(q5 z1tk4{1My?m@JHvYgOU`-?I6Wz4@mnKK|1$&a2)hNlJh1=dc6x$9()9H@H3G7`wK|t zUjxane`l7f62HherM*o#`CXl^&>P<41So02=8+&x1YK7(IY@^4SiwQ8e5h3{K) zPP5~27%Tiok;}DcyUI1f<6)o;kDGlNysd)BRm=RGSk@%G+X@;jZdw6)uFtzc81f~- zU8|MwitM-&ki@0v(t@Ebj_pm;)T{`F5eaCqRk%0WGc0{?38)x~25E?ONBVn)CNyRe zMF2}p46Rp;M%Q^ip~4Xnn!y;j4)Sz<-3SV%SUCFDn3(pj4q8%&aENDOQoMRndJN3B2 z3#Xo{JNA}fy)%ouRN<55iNj9$kTW^OCk|B(O*rL;%4IBcYKT0^{hxJ@R1O{-FXJi9 zyV^K)lT9W~-&KzW53PgOS3*iG^zBkcncsa6Fa< z1 zR*|l7*|uFhGdazBuQQ{P@1EfkW77qyrGh;X$dyiW^|CJ{<)7v&ovsLU+MA8f*-F|U zw)Y@e$kSONc`GMp&Q(i-owSA37e)yQ!FfR}q!#D=# z`XW}I6oz+&!Zg=0z5!2)4qj;i(#i-}BJCIrq0Y%rBnIW?=T|?~jaJVx9wwd4o^%AI zRdTnZ{qE|eR*0zBW71jF*8sI-Xj=E>QT zf!$ouwu#=t<_7i=j&YT z^85404hu+3Ft!F`5+ypn)fc_=vY|{%bly0M-gBMwY9brRYefuY*7XN%d|bIA0=fdH T1Lbj24V4+*PA$Z1suTMceO`Ng literal 4022 zcma);O^h5z6@WV-A!G>T2Pcp}C@(SIP0};7YbV)^+5D_`?O5`{${uX_gnFlIXPWKl z9#z$NvX&x62yPsZ04d^tgk%KbP9%^85_{&9OLB>_NRgr_oVX&v_iDOldIyc2($;)k zRj*#X_v%&Ee)z~ezX~WJ^(pF4?h1l6_}Sh3P(J!X5Y*ryti#XXH{g@^1i`)VH2f-T z!3W_5DDv0f7hw#)4ENv)9KjdiAB*-Oe1P^blzjyrhxfwuMe2LA>hhVMa<{}?hg_;=C%4}67o4QE#21^5#DF%*0M0wtb*g<{76JO=*( znHu~PivE8=+0Xw%*|!G?zRX*P%kVsW4(>yV&+nkvaaink20~K6{k}sX2 z-@rF${~WHv58wuT3L$AnQ0%@5CC+~+_z9HwEMlbCbskEbFTw@515p+Hv}peV5@ugy ze?{j>s_a2XWqT*(@yS;Z+|9R~3(0wj%d^x+s9&ebI?q$3EK$WzDPqS%R9XK?>N8Z? zdnts)7qPu8q>SH#6HxYA_F48u_MhzS0x|L7mauw&DVP9u%PPeV}+p4?`&gN-ug0n_PPOD6hyz-+>gvP_N?uJga(*;D> zPQH6uSw=ff$1?EhyaCHdVXs;^u~^!^WEWIoRg|(=ye}HMD2lAe&|rA(v{7WUlkWCY zP%)iP1G@_&Dqm`pIO2;ZNVL=m8*Ijj^FK#=q`{amxlyr1B+0tcH?@_?i(1B)Y;ZB! z(P^+Xv`!67em#k`ikwPyL`RZN6>%k@6&#!xzE1zoDt4pTc z{9Yn$N<;5FQ!JWHwf{fYGAw(zR9IJC^^S8z_q@r~b!FK$X-BPi8TmuZX4zqodETOkzEU6gvu*MpaX*9?;_!+#Hp#P=+KTq0Ol@v#U9MfygWR}q z%XX7ETpxCA*v?z3w*CEf=x-q8!wv4KmRe~pzZfnrhbyO4bEWmdOJVbLvx#7MiL4jB zRk`L1;Yw4jEVoXbdag;SUF6_}Z4+fSja+V8s-5p7Tr}H}9_(rLUFVzifp5MxMm^K+ z6=r7LVbs-OTSxttIBAooh*>->No41yx%anjZBi8Mqm65 zb={s6a~e$zDuX_RDVRHqjitKHfU z+ULU6shljjt4+9>b@G^7sijtT5;rltMGCN1Z95&BC=Ji$rcb(O1K+f3D`(XBb8RtG z$Jf;I(wUl1zbNY++|0Tq-C=-_5AC4gRQIm+{s zVBE~`bhbQCg>y$wBF~dkESG1hpSa4A=7!x%v~hDLs!?QAmUMb<-aI^%z{*QBUYQrR z{PJ@oDjdgkEs;v_NW|&k#8rEaw9n~YstpoJUzKrU`|UWMlUG%4tn#I5lVHK7RsEsm zC&`dzEvs~rsnQ^JqRUR~5Y>@3vCis~8CyqY6k!+fsqjR0Mtd1T%$vJVa3wc{KN|X1 z?ck;~(t}%;|2n*1KBdZ}!Z7cs4-`j;Ly;9>yUqqq79oc7N6}FoA77P6<*ll!W5QJ1 z)m(B|T_)QKYsL=;kIpDDdnp;gNr&fh`qHuI}nF{_{m zhVz@qAVH`u-PPm!!K*Ky!-HF9Y7pmdLsxcdCf$5EiVTUe8#S|(QpCG)1Y)|Rj IG)-LaKROg&5&!@I diff --git a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po index 66b1952f91..d6b3bd252d 100644 --- a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po @@ -1,58 +1,56 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-20 21:33+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Vorschau" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumente" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Dem Dokument hinzuzufügende Tags." - #: links.py:14 msgid "Remove tag" msgstr "Tag entfernen" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Tag anhängen" +msgid "Attach tags" +msgstr "Tags zuweisen" #: links.py:20 msgid "Remove tags" msgstr "Tags entfernen" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Neuen Tag erstellen" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Löschen" @@ -60,23 +58,27 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Alle" + +#: models.py:18 msgid "Label" msgstr "Text" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Farbe" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Tag" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Tag" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Tags" @@ -104,123 +106,193 @@ msgstr "Tags zu Dokumenten hinzufügen" msgid "Remove tags from documents" msgstr "Tags von Dokumenten entfernen" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Komma getrennte Liste der Primary Keys der Dokumente denen dieser Tag " +"zugeordnet werden soll" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Primärschlüssel des hinzuzufügenden Tags" -#: views.py:34 -msgid "Create tag" -msgstr "Tag erstellen" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Hinzufügen" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Tags Dokument zuweisen: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Zuzuweisende Tags." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokument \"%(document)s\" ist schon mit \"%(tag)s\" markiert" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" erfolgreich an Dokument \"%(document)s\" angehängt" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Tag an Dokument anhängen" -msgstr[1] "Tag an Dokumente anhängen" +#: views.py:108 +msgid "Create tag" +msgstr "Tag erstellen" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Es muss Mindestens einen Tag angeben werden" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" erfolgreich gelöscht" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fehler beim Löschen des Tags \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Wird von allen Dokumenten entfernt" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Den ausgwählten Tag löschen?" msgstr[1] "Die ausgwählten Tags löschen?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Tag löschen: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" erfolgreich gelöscht" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Fehler beim Löschen des Tags \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Tag %s bearbeiten" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Dokumente mit Tag %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Tags für Dokument %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Es muss mindestens ein markiertes Dokument angegeben werden" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Tag von Dokument %s entfernen" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Tag von Dokumenten %s entfernen." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Wollen Sie den Tag %(tag)s wirklich vom Dokument %(document)s entfernen?" +msgid "Remove tags from document: %s" +msgstr "Tags entfernen für Dokument: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Zu entfernende Tags." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Tag \"%(tag)s\" wirklich von den Dokumenten %(documents)s entfernen?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Dokument \"%(document)s\" wurde nicht als \"%(tag)s getaggt" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Wollen Sie die Tags %(tags)s vom Dokument %(document)s entfernen?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Tags \"%(tags)s\" wirklich von den Dokumenten %(documents)s entfernen?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s war nicht mit \"%(tag)s\" markiert" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" erfolgreich von Dokument \"%(document)s\" entfernt." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +344,6 @@ msgstr "Tag \"%(tag)s\" erfolgreich von Dokument \"%(document)s\" entfernt." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo index 30e20e69f152eda4adcc8a23126e03cc73651b7b..6ec6134d2a9a92b2ee18c050dd1fccc6f06d1d12 100644 GIT binary patch delta 404 zcmY+;JxfAi7{>AYc#fKOj!8=qA%a6L;tQM%mz?_=4%ruI6&fUTa5xDrZZ5jI`2i%5 zhNgzFt;NCSkf8r1E!}XP-vj4LPTjvNNmJX@jUDfWzBY`nVC|!c=W0l zzl$eMehg#uYv=+0Gqe;M(2GYVo&9z8d71w+FZ+FH;4?wHg+7e_75y%Hb_x%)AK-29 zCwLb81zvN8(}Y|C2El1?7%YM-;6?BQI01eF$G|V(2>13nzJOjQ z=yif#=lPCK(CY-fPH-M^J01Hj2q|RbLPsa)b%K!Tmd($La(o-a)9VDCZr5(0U-AD4 zxemH~kU?^tcb7p-LvEtGJ-CYQ_HPLNV8fJzJhzs|8`Sc;p;pmE#jS>r){q62DNPo% z;8sv6+TMkfL?$qH?xfW5rK97M-MA?;N>f95hPY(g`PD^2xp6)iz)>>(rI2Ea^JLg{Jh>lMRXP+{p(lVAdwc1P*LAj-w;CP{=*sn1E7ayekhuKxt ztvOGsqMx93-61^1)jbQI1!4AF8gaU57pb7?Yem5yjttqF~_tSZBGs^B2& zEnXL_CU_&FWm(Tsvq2{}tZha?&~CT$)`h3*Vk;l3Mu5ZS3Nt}7Xt;WqNE#-{I%xtS zgQ@+b5fw65S*nzKYf#9CxdkOH?jEacH&LJ!TQ+EBJe9LF-r(8@JNKrx$e#B6oPc$q zSy{#^!F`D6)3wy*ma~@T8Cz7kfiotXerV>3vvlw8+@z%U=4fGRHg|IWkNQTO+<$5D MsqTJ2{^$Mw1ArAv%K!iX diff --git a/mayan/apps/tags/locale/en/LC_MESSAGES/django.po b/mayan/apps/tags/locale/en/LC_MESSAGES/django.po index acae517c0b..77e54c99a1 100644 --- a/mayan/apps/tags/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2012-12-12 06:07+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,26 +18,21 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 #, fuzzy msgid "Preview" msgstr "preview" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 #, fuzzy msgid "Documents" msgstr "document" -#: forms.py:53 -#, fuzzy -msgid "Tags to attach to the document." -msgstr "Attach tags to documents" - #: links.py:14 #, fuzzy msgid "Remove tag" @@ -45,7 +40,7 @@ msgstr "remove tag" #: links.py:17 links.py:24 #, fuzzy -msgid "Attach tag" +msgid "Attach tags" msgstr "attach tag" #: links.py:20 @@ -53,12 +48,12 @@ msgstr "attach tag" msgid "Remove tags" msgstr "remove tag" -#: links.py:28 +#: links.py:29 #, fuzzy msgid "Create new tag" msgstr "Create new tags" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 #, fuzzy msgid "Delete" msgstr "delete" @@ -68,25 +63,29 @@ msgstr "delete" msgid "Edit" msgstr "Edit tags" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Color" -#: models.py:34 +#: models.py:33 #, fuzzy msgid "Tag" msgstr "Tags" -#: models.py:53 +#: models.py:47 #, fuzzy msgid "Document tag" msgstr "document" -#: models.py:54 +#: models.py:48 #, fuzzy msgid "Document tags" msgstr "document" @@ -115,137 +114,218 @@ msgstr "Attach tags to documents" msgid "Remove tags from documents" msgstr "Remove tags from documents" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" + +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" + +#: views.py:42 #, fuzzy -msgid "Create tag" -msgstr "create tag" +msgid "Attach" +msgstr "attach tag" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Must provide at least one document." +#: views.py:44 +#, fuzzy +#| msgid "Attach tags to documents" +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Attach tags to documents" +msgstr[1] "Attach tags to documents" -#: views.py:86 +#: views.py:54 +#, fuzzy, python-format +#| msgid "Attach tag to document: %s." +msgid "Attach tags to document: %s" +msgstr "Attach tag to document: %s." + +#: views.py:63 +#, fuzzy +msgid "Tags to be attached." +msgstr "Attach tags to documents" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -#: views.py:110 +#: views.py:108 #, fuzzy -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Attach tags to documents" -msgstr[1] "Attach tags to documents" +msgid "Create tag" +msgstr "create tag" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Must provide at least one tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Will be removed from all documents." -#: views.py:199 +#: views.py:132 #, fuzzy msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Are you sure you wish to delete the tag: %s?" msgstr[1] "Are you sure you wish to delete the tag: %s?" -#: views.py:231 +#: views.py:142 +#, fuzzy, python-format +#| msgid "Delete tags" +msgid "Delete tag: %s" +msgstr "Delete tags" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" deleted successfully." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Error deleting tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, fuzzy, python-format msgid "Edit tag: %s" msgstr "edit tag: %s" -#: views.py:244 +#: views.py:201 #, fuzzy, python-format msgid "Documents with the tag: %s" msgstr "documents with the tag \"%s\"" -#: views.py:271 +#: views.py:224 #, fuzzy, python-format msgid "Tags for document: %s" msgstr "tags for: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Must provide at least one tagged document." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" + +#: views.py:237 +#, python-format +msgid "Tag remove request performed on %(count)d documents" +msgstr "" + +#: views.py:244 +#, fuzzy +msgid "Remove" +msgstr "remove tag" + +#: views.py:246 +#, fuzzy +#| msgid "Remove tags from documents" +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remove tags from documents" +msgstr[1] "Remove tags from documents" + +#: views.py:256 +#, fuzzy, python-format +#| msgid "Remove tag from document: %s." +msgid "Remove tags from document: %s" msgstr "Remove tag from document: %s." -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Remove tag from documents: %s." - -#: views.py:344 -#, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " -#| "%(document)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -"Are you sure you wish to remove the tag \"%(tag)s\" from the document: " -"%(document)s?" -#: views.py:351 +#: views.py:290 #, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " -#| "%(documents)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "" -"Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " -"%(documents)s?" - -#: views.py:360 -#, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tags: %(tags)s from the document: " -#| "%(document)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" -"Are you sure you wish to remove the tags: %(tags)s from the document: " -"%(document)s?" - -#: views.py:367 -#, fuzzy, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" -"Are you sure you wish to remove the tags %(tag)s from the documents: " -"%(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" +#| msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "Attach tags to documents" +#~ msgstr[1] "Attach tags to documents" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~| "%(document)s?" +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~| "%(documents)s?" +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~| "%(document)s?" +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#, fuzzy +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #, fuzzy #~ msgid "remove tags" #~ msgstr "remove tags" @@ -300,9 +380,6 @@ msgstr "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo index 0f458e74877bdcd45112a4ea57bc82866acfdaba..d8ba7adcc2079828e5599b97ed691f2a83f42094 100644 GIT binary patch literal 4864 zcmb`JO^h5z6@Uv8Lb4D7<}dtL7L0dsdiKXQY-TaG#`{lbwupHy5Yx!=wGlUFJAaro&w_~W{Er&9ay07}!J;a%`=@OAKCa30?M z8l~O^AAwASS6lLXrDR*{@!!)G^+tAXBJC$WJZt_kMU5BC0|tc0CTojy)*8 z`8<3N{1KFSo`>R(m*5%rS9lhlyj!XF!VwhvzYb5pU%&wV6L#P%Moa&vp!9zkirv@Y zTj9^(Ti|cuo8g}zKXnJjiM{v2uM(>T_%+_IW2~%eokhz!E<^G26}Sus@B#QV6ur+v zk^dbu@WrzIQJnfV-mgH3R}L{*eF2IcUx9Cg--N61`|zXi-*5>oGf3>u;oIStp!oCK zQ2g>;DE9pdioWNd==%c{fBXZ=e8(|f^5`TC;2M1)haZ!AIc>C665`{6B<}=TE?Qz;8gwhwnjL zpq_;vguj7=$NK=N zqnPM@1iTHBM{k~88*@eQu^J^?;ABp#C6;t#prSD^lvJe%bvHPlh=4{(oPEYV-$ zhgWmsO7EKw`PSlGkVlF4v9e8aZ$X~VtzXcWHdgg8jgmY{c66RW`fcn9N9E!+E2{iDdtsC-`D?Yvi&MQUOEVpce|$RP=-N~U&sgc7b!ydY z*;uV-b}zE~unv`ku$)YSCIJdV8+O!&9i)4)*Xr=ujF4I5XG(X?)T(iLu$h^}Q7O`_ zt2fdun~}8}sWVxWB9QEi%#IBLn#i2;t@8mK(+P2p^{d6#w z6$7)mfvhI5;lRzsrII=8=4NY^U2Wae+J&`VmSZd^CdMZ}XOZsWZnbXxvTTwo>9*;5;2ak~NuB(%we|4u9mv!-Y zdM42ioYo7o%Tr1!XlQk8wA540X3=KI-Z0eCQDQV_8Ew4UqNw(x8$V2RpG{<&s8V>t zs|=C?Y~$E;bk8wFbX#9meO09j`-!BPx{4kOYuQ#!!`@B9lmeL8t0pT^8!`DV)uB$U z^ksUR&Prvit39?j+{?8#`v6Odin~gMttxJ4_~yv)!GK~UOG=%-uu|6Ch!@(beCN%0 z0dcI816}-NvK!yRGvd{9%Ax{iIvLr$rq$QoveDJDMLEvuch!rdL6qRGhtn)GO^099 zM4MATy1fVYL1aqbQ&LAw3!ei?%5`e;v8>PNax^beds`lic zExkXktu}QUy>;QQ%$C~k*yyI%OhZ0a%K)y%X3ticG`Tm(Bxf^ib~3v|kUCA=H+%(c z0$&#XrlG3$V=b*Ly?H>Z`&Prf^Bx7kTqPMxt0-Oj0L7F@-> z{;sOL&z_Wk-gx?2Bp)8FvuX0{V@wNQ5L>cmTEjc)Vj4&NC?D~Cz?MzyHGk;wY)b) literal 4091 zcmai$O>7%Q6vqcBU#385Q=lz{si8D(S=&iJNF73&CaF{@5g{=};WqJ3oNd=TW@a5X zf=WmrPH>}APnC+05S);DxOZ_FMr!N6c@4&!Am_aTDMKH~@YO!Uc9M zXTl(d;bODBHM!? z?*aFNq^}H8-o`;%M}vdl2O!!16?h!{5v02K52RY!i)7OLNw5gk!B@d9NPb>V`o9Co z&R;%LW_by0v^E)^V4xrc$f$xD7&kw-^;HMzj^(6?E><5t6y$d4D z(L?#A+#SJ7vJPJIJ$?42A0TZ5+85*-*?ko6ZoCvj^6NFc^px;YJ<&sPCf{j&vgsAP zlzVy*p6H>Nrw>Xd%JpH8a!v6kpC~`+Lwf)&uwzLF)d0tfa76wAQ9O{w=%E}@+}K1I zipB~LMbrA^q2jJ;bXqb9H|aK3zp>>Fn^eBiY*I@RN*>5=q`bEYp?H|qoszx`Wdag5 z+4qX%2BVEox->Ap*?_@FVlOWq9!za7nIiWL7d{qq*GNMXii9BDXMaX?A(4hjEWv{%243uv(OwmeXS!Q!uu6nWydM%;X_$9f<)pF_@ z)xZ+0a9!z^*}QD2)yQS*lP_!4$`n#8Y{A}9(?4u1MW#Hq~sLYcNbXEG5?2t8P1&bZ<7t0JHC%{ z&o?p2=3W=eee-pct-k3!$=XB#_E%J^eM?9B4K0FLP(3Hx0-hwjuq`&4th6IlW*1On z@n(3}^L?tR)V#Ss=?i#Q*g^R9D2YU8P(#%INv2>A5W>_TB)wv`T@S=01f z=WM5GoVu#RJTG7opNMKChOfhHvxA2<<5d1kH|UN~bPGtHu}FBJj)# zA6yB;cCAwBcDv<}rhCisa=D>e6&+91l@@v9NVjDwexjrzO{G+rJwH30J3Umc7A92? z;>dRDYi)QG%FAJ;?F%m$<&71gjSR=$sh@L3ayeRYS!!oGXebv4PK}Q&d0}R3jZ0IQ z^E+Dj&N-!9DC3|VHO<)YD33qK1_OR*j1QGY3v9x@*aA#7*zH^C8259v z@jcW)9SB#9_X=6d^oUuvlIq<+yvWy}+k|&+WG1?bBkz$QP6GRG>YH5Tfugx$DL1cw zGB0Lv!w${Ene`&XR(F11A+}S=ZbcdzDzJkP?O(dS5Vsha_0~|ot%^OD2y_BD1}+%yd^p_npCR z5)JRp%>b69KCl^I;BIS2*PtgTkanR6)Bx;gYS~1oq&J*ZdT)0qfZ0-Xg68f}9LsE@ zNZ+oA#p25=S7rJqMp^FLPq%NS(`>7=|A;o2V_h6n_uEb0XlSM&x-@MK_QuKXKMH5h z2|(46o%nPCZlZ$Zuyg1F?hk1;pQdLOmVV@g$lD#-SUqP{@6N^Dd7o)XX}BWVF?YVX z?9t_G=XEPBxJ8%f6zZ9tuah5v8y&O9+CszfKwgZuK^ihtGH%AK+zeZg*>=S7gK&q+ LMZkN5US|IT1WtNR diff --git a/mayan/apps/tags/locale/es/LC_MESSAGES/django.po b/mayan/apps/tags/locale/es/LC_MESSAGES/django.po index 97ace02593..2e0ef3be57 100644 --- a/mayan/apps/tags/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/es/LC_MESSAGES/django.po @@ -1,60 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-09 01:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:38+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Presentación preliminar" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Etiquetas para anejar al documento." - #: links.py:14 msgid "Remove tag" msgstr "Remover etiqueta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Adjuntar etiqueta" +msgid "Attach tags" +msgstr "Anejar etiqueta" #: links.py:20 msgid "Remove tags" msgstr "Remover etiquetas" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Crear nueva etiqueta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Eliminar" @@ -62,23 +59,27 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Color" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etiqueta" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etiqueta de documento" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etiquetas de documentos" @@ -106,122 +107,197 @@ msgstr "Etiquetar documentos" msgid "Remove tags from documents" msgstr "Quitar etiquetas de los documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Lista separada por comas de los ID primarios de documentos a los que se " +"adjuntará esta etiqueta." + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" +"URL de la API que apunta a una etiqueta en relación con el documento " +"adjunto a ella. Esta URL es diferente de la URL canónica de la etiqueta." + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Llave primaria de la etiqueta a ser agregada." -#: views.py:34 -msgid "Create tag" -msgstr "Crear etiqueta" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "Solicitud de anexión de etiquetas realizada en %(count)d documento" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Debe proporcionar al menos un documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "Solicitud de anexión de etiquetas realizada en %(count)d documentos" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Anejar" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Anejar etiquetas al documento" +msgstr[1] "Anejar etiquetas a documentos" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Anejar etiquetas al documento: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Etiquetas a ser anejadas." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Documento \"%(document)s \" ya está etiquetado como \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Etiqueta \"%(tag)s\" puesta al documento \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Adjuntar etiqueta al documento" -msgstr[1] "Adjuntar etiqueta a los documentos" +#: views.py:108 +msgid "Create tag" +msgstr "Crear etiqueta" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Debe indicar al menos una etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" borrada con éxito." +msgid "Tag delete request performed on %(count)d tag" +msgstr "Petición para borrar etiqueta sometida para %(count)d etiqueta" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Error al eliminar la etiqueta \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "Petición para borrar etiqueta sometida para %(count)d etiquetas" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Se eliminará de todos los documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "¿Eliminar la etiqueta seleccionada?" msgstr[1] "¿Eliminar las etiquetas seleccionadas?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Borrar etiqueta: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" borrada con éxito." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Error al eliminar la etiqueta \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Editar etiqueta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documentos con la etiqueta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etiquetas del documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Debe proporcionar al menos un documento etiquetado." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Quitar etiqueta del documento: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" +"Solicitud de eliminación de etiquetas realizada en %(count)d documento " -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Quitar etiqueta de los documentos: %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" +"Solicitud de eliminación de etiquetas realizada en %(count)d documentos" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remover etiquetas de documento" +msgstr[1] "Remover etiquetas de documentos" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "¿Remover la etiqueta \"%(tag)s\" del documento: %(document)s?" +msgid "Remove tags from document: %s" +msgstr "Remover etiquetas de documento: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Etiquetas a ser removidas." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "¿Remover la etiqueta \"%(tag)s\" de los documentos: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Documento \"%(document)s\" no esta etiquetado con \"%(tag)s" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "¿Remover las etiquetas: %(tags)s del documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "¿Remover las etiquetas %(tags)s de los documentos: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documento \"%(document)s\" no estaba etiquetado como \"%(tag)s \"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +350,6 @@ msgstr "Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo index 2a0d66deb5a926d94d229d609e751509a4650bc3..a8bb5d87b98c247f36e7956b8b5684d23dbefb72 100644 GIT binary patch delta 811 zcmYk)!An$86vy#1%{Zf@rfH>vLUEF*W*~~7GKdH_k`nR2=TKOIq*f5tqS*<> zrB$|R(;!L4v}u#LiLgZ*7uQ(`E!^d*f1vO0A>`rR`+4v2xaXXE-&&^9KDXJHcw@v7 z#$iSxW_AkypyJgYvrc@Cb-0LoaT!~11=IKolUTz>{EcUD8ym1EZgvR!F@e{x$!yMU zaH9{#@Fa$)MDv(Jhg$e8D$#pXf+f^~Uy;k!nJ%Emi`Yq)qj(FI@G;W?e1^*B@HqMH z9XDmVT}5?1L^dUyVrs`HsDLMKkzDUq6$1g)xDTQIDVK&`zj3{R0YWkB);J(edm^J| z(&?<#)$VZj;tQ^jC}nO=g)?`?p Y6vwYxf33D?)mnewVo5VFrrKDPZ7)()uD~-XJ47-( zJOU$%e++yDJOPs31(5Ri9He+tAW~q9;05q2@LljXkn9sk9xhoI_#Bu7DW5)&;(rL% zpp_G@|AXKsFyHnV_JA1>OKc2$1{?>;?+o}Xcr9Gt0LlLr_&#_C90c1CjLz{X*Z~$n z(&Z}n68KHXZLkOLzk_6d7`F^~93;Iz0Qko5Q!d;$C$q2xM_1Yast1nJLpV5i64&AI9qFs_R7k1~4LbAwp!3n7 z{-9b@9Z8#ZTY7jFUy#zZ1f~q9!14f*8wM`E<7VL7$2{t;ZGMz>f#j;G9 zp_9~vp6W^r4G#6!51mP-6TPRJ$>#Wko)|VOj&5oLwo^tQTGQ%P_GG$w@Ys{?PB3rPU+{jw zeV%)3-qvo-+xFHl>uspnh1e_}{Uz>g`!#R#-uwI|Z#A@9Rd%anx#ib(fyg`eZg`t} zE6NFQ1Hm>M!W>+#Z)V<2?|XkPL~I+yWg}-jODy04!`ND&!!7SeD#fO^#l749 zBI;Y?fpRg^TucGDjDB(()rNHbyuZNrR(99J>XQ#>No5OVrN-Ftm#L;VN$l8;SlwIh zg5uFy^M2KDv8+S!4u(!L|7Rq%0|S+t5|2cnH@`+9wp1hRcpD@~l-R*$BImcm!z!^4 zXct;UB@L`vMF@(bIyV-VW~n2?FDjN#^cbrUZCpj4`pf>DKaVqQV1{%L1ZwVi6dj*1 z>K1l%-DUKD|6U&J=RWWiHRwn6R$oeRsQt8Jr=$J&vRGZ`K!tiDVdjB!VU=PI0&_}e acimsuTcNW?dPm)S%U?#jEm1G3g#HC7yus}N diff --git a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po index 5280182912..a3ea517f45 100644 --- a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mohammad Dashtizadeh , 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "برچسبها" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "پیش دید ویا دیدن" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "اسناد" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "برداشتن برچسب" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "الصاق برچسب" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "برداشتن برچسبها" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "برچسب جدید" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "حذف" @@ -60,23 +57,27 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "برچسب" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "رنگ" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "برچسب" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,121 +105,187 @@ msgstr "الصاق برچسبها به اسناد" msgid "Remove tags from documents" msgstr "حذف برچسبهای سند" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "ایجادبرچسب" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "سند \"%(document)s\" دارای برچسب \"%(tag)s\" میباشد." -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "برچسب \"%(tag)s\" با موفقیت به سند \"%(document)s\" متصل شد." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "اتصال برچسب به سند" +#: views.py:108 +msgid "Create tag" +msgstr "ایجادبرچسب" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "حداقل یک برچسب باید ارایه شود." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "حذف موفق برچسب \"%s\" " +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "خطا در زمان حذف برچسب: \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "از کلیه اسناد حذف خواهد شد." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "حذف موفق برچسب \"%s\" " + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "خطا در زمان حذف برچسب: \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "ویرایش برچسب: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "اسناد دارای برچسب : %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "برچسب سند : %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "باید حداقل یک سند برچسب دار ارایه شود." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "حذف برچسب از سند: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "حذف برچسب از اسناد: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "حذف" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "سند \"%(document)s\" دارای برچسب \"%(tag)s\" نمیباشد." +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "برچسب \"%(tag)s\" با موفقیت از سند \"%(document)s\" برداشته شد." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -270,9 +337,6 @@ msgstr "برچسب \"%(tag)s\" با موفقیت از سند \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo index 1f188df70edef861f619026512ba2277549a9918..d0bad6224b18960f7e5bd5f7ebc6f839abc33823 100644 GIT binary patch delta 936 zcmZY7Jxr599LMo17U(NrRjMNOAyhF+BW&zj8SI?C!?D~7iBOkPA>ZWRdMm3-hHmm^W5G4URH;e`kP;3{v|^U zQFc(0K4bRdXa^PX4Y%Sdc4Ef{V|p-vy%@(3j$jvNFpPQ3;88q?S1^Lh7{%8ZG^T0Z z)7Z{~kLbrW)Q3O*d|-S$9N~W$l|UA|F^|JIftt92N@Na|z-839H<6*tLoDJW9LE+W znBNRDDs3}~Td;&=W=^3dsNy2KvWQ9~&g@E{NR_}6?!;MC|68d34{#ek#^d-7$1xT# zrXQy<&iv*)4RyGI8t4x4Gf%0s_0RwM0VnzY6}8g6bkb4eFpWo0<1A3A-!)VM_fZR3 zLG}BLN~nd+X&MK3x*Kn!K3Jw2z*ne&KH)B0LpGv)JT%QF%6ceqh3o(Gr37c}|g11o7YuoJFWAAmpwe`T&=%LhDE|od# zq;rK_+Wrg-WdA+M7qZ!XV?=1mtv6C9YVLe}&TV+Lf>ZWRS87aB_Udl!oM&f((~&86 yzIw^6RtnB+&Atepw24q|(nF+HiXu14#cbz(Q zZgqM-eD>Viipyhsjq&r3DYXtCKEXe(e|%i21^56q;6wNo`20DgJ^?Sor(qjD1Gk~b z--VxqKKu-P1Fpdn_zL`B^85fk#q)WTeHOj|KMkAktME05i0VL*yE~ch!6lxDkU#Yf z|Go)-2fq&g0$+p=;FItvjFI{CQ0%(`FTf2b@&<~XKZCOGui$I&J$My9nD7G1+C1Nd zghKrWUWf0%8}RQ?^gZ{fvE5hT7kOTX-+%{D{Buz3`6+yln7<1puG<**eRv3$;2$9> z)!(4#{Sb9HNxB4|fiJ=hcnwBS>fjG>75)i|o`1n_!zYOf`mE0B)^h7 ziLcn;F-UKDiG9WO1UGUnMAzpT;`6f%iQyvSI}Ev27*bDiNnY44uV=C8TMUV@T!b;d zB$ve{`904NJ1JN71%~8C{4Opz1GubSn!J!)Y6juT;{enP4APum5^Kq)x|yb?d!$p- zuiff2)_&a01~y9Pymqzst}gG?MjXb8+DNQPt&Z$Tu6+6tq4BiryJN?rS#EDP*JVt z0lOzg)b8|2kP=@!L87fMI<@5oY5s5OjXW@yBypmBiAWIjrCO^a^%VpiJb*`6%A?02j zVv()9UTn;)Px5TdET2l&90i=OyjEwn&h3y(GRzfAF?_?{%BFAdcF4*PNP2Z*A@#EbQB1oTT2a>j%Df zE9*P26Swuk-VZun-hq(!HtADsz1CWN#amtV)-LJRTKnZ!z1HPc3qfz6su#U=xz=TG z?Pa~X)^5G}Qj2S0hlA&J5)--5q;b;Lx6CjN91ZY$H@A0owmSN|hm$vrzQHe>-srmY zu+dAdu{i2yrfG3X|62nZtreY@mOuN7B=E2rJH-5(;?2L_I}zNh9-!v>h6(AoK4q%)Vb|l zspMqGo=v>1s2ltAqPD(r7^J1GZI0H$UYI2&^lrz=fC`U>`J-E3yQ;^x>&ub8rdL<4 zE~x!UjV3yyJ&n%N;LXgYwEcM#+GJ&(A0>3Zl%hkFoA}n%HsKSH)#WzgEVP+?qef?T zY*7?v$Ck9zRu$9q)?#)_X)!#s>RKmRc-ku_@lFXqu-a#jm|WMG_X|AC95@j)`uBq}xdT#Npt?XCZVIEDgBW>0M32rV0kuSxZNW~7~Aaay=={@}{&SdLj z`xAO$mPEmn;8el=@9JyWkX|@CqgQ1n3>?AQF}fR)C8@^T)FInX`-_;-=3bnUSlg)8 z+q{~dUhY>%G|$tVvX-2bEqg|AHedVv@JWc}%=@WsFlU?cN1d+ORr_YkxAXB!>$cVw z=O6sqYQ&0zka9oX8zK21*1Y}yG*n@&trzoarMOdX9F^;4a!SXYkgSdmsr)b)y)S*R z%!JrnWCgn$YL3Qn+n|ozxUqdiXFb}pI=9M>uy~Q!%u%6AF;{buFjm&)Wt0D)pkT*8 kck**oc%W|fdO`Py%9&}E>Og9|wlQZul_M!~#cHSi164)%x&QzG diff --git a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po index 85164ca4c7..7408881231 100644 --- a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Christophe CHAUVET , 2015 @@ -12,50 +12,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-25 12:07+0000\n" -"Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquettes" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Prévisualiser" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documents" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Tags a attacher au document" - #: links.py:14 msgid "Remove tag" msgstr "Supprimer une étiquette" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Rattacher une étiquette" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Supprimer des étiquettes" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Créer une nouvelle étiquette" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Supprimer" @@ -63,23 +60,27 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Étiquette" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Couleur" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Étiquette" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Étiquette de document" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Étiquettes de document" @@ -107,122 +108,194 @@ msgstr "Rattacher des étiquettes aux documents" msgid "Remove tags from documents" msgstr "Retirer des étiquettes au document" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "La clé primaire pour l'étiquette sera ajoutée." -#: views.py:34 -msgid "Create tag" -msgstr "Créer une étiquette" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Il est nécessaire d'indiquer au moins un document." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Le document \"%(document)s\" est déjà étiqueté comme \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "L'étiquette \"%(tag)s\" a été attachée avec succès au document \"%(document)s\"." +msgstr "" +"L'étiquette \"%(tag)s\" a été attachée avec succès au document \"%(document)s" +"\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Rattacher une étiquette au document" -msgstr[1] "Rattacher une étiquette aux documents" +#: views.py:108 +msgid "Create tag" +msgstr "Créer une étiquette" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Vous devez fournir au moins une étiquette" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiquette \"%s\" supprimée avec succès" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erreur lors de la suppression de l'étiquette \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sera supprimée de tous les documents" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Supprimer l'étiquette sélectionnée?" msgstr[1] "Supprimer les étiquettes sélectionnées?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiquette \"%s\" supprimée avec succès" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erreur lors de la suppression de l'étiquette \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifier l'étiquette:%s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documents avec l'étiquette: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Étiquettes du document: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Il est nécessaire d'indiquer au moins un document étiqueté." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Supprimer l'étiquette du document: %s" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Supprimer l'étiquette des documents: %s" +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Supprimer" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Supprimer l'étiquette \"%(tag)s\" du document %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Supprimer l'étiquette \"%(tag)s\" des documents %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Supprimer les étiquettes \"%(tags)s\" du document %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Supprimer les étiquettes \"%(tags)s\" des documents %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Le document \"%(document)s\" n'a pas été étiqueté avec \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "L'étiquette \"%(tag)s\" à été supprimée avec succès du document \"%(document)s\"." +msgstr "" +"L'étiquette \"%(tag)s\" à été supprimée avec succès du document " +"\"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -275,9 +348,6 @@ msgstr "L'étiquette \"%(tag)s\" à été supprimée avec succès du document \" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo index 78263a536f74831efb6b3de899e0d40fa36c769b..cc5002bbb6ad2b35256d2b24e27e987757323155 100644 GIT binary patch delta 180 zcmeysGL0qco)F7a1|VPtVi_Pd0b*7l_5orLNC09^AWj5g79h?B;(kU3h5{hX1H=qW z3=AAViWf)&g~0&G1Ot$n3@-V}rManjCB+lx1@W5e8kp)DStuBqTA3P7{40$Ru(UEZ po~+7P!{d{fmtLBfo@%9#Q95}6WAtPWCQDA|!)tT153kH-005&Y9{d0R delta 270 zcmbQn@`0uPo)F7a1|VPoVi_Q|0b*7ljsap2C;(zkAT9)AWgxBwVvySTK-|yBz_0{J z^8m3469a=Pkah&p96&l9NCTxAn1L9`1Ot#h2ABNg(%jU%l41tm(&7?%g@U5|vdolJ zg~SqtoYchP5{3M{RD~3%BE5-OLA++VhK9OE#tH^TR;K0?Pf7y?42*S+3>AzFtqhGO zeyo{X#TdoolbDxYnwXwyrI1lN`7)!GzGF&Oex5>ZYC6!|^u(OQ3zL!*QqwDeW@m#P UP@0=xqQ~HTcx`U>;g#7809?8~=>Px# diff --git a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po index f5610de111..fec25d2cd1 100644 --- a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po @@ -1,57 +1,54 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Címkék" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "dokumentumok" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -59,23 +56,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -103,123 +104,191 @@ msgstr "" msgid "Remove tags from documents" msgstr "" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:160 -msgid "Must provide at least one tag." +#: views.py:108 +msgid "Create tag" msgstr "" -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -271,9 +340,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo index 3c8ac587c0c66f187066779920b708eff0a12af0..e33e45dd5adeed46f1b3c28a1029c494f24c4fd0 100644 GIT binary patch delta 165 zcmX@j(#0}C$CZtNfgu}+I~f@mihwjb5dQ(PS%EYQ69WT~2?jtW7%+oKm;B_?+|<01 zVuqm9-2AfCiG9AN=DG%^x<(cXhNf1ghPnnO1_oRK{<=Y_Wtqj9`FXl7i6yC43PuKo qaCMee#>SHc7;AZa67$ka6VrjxnJJTd7^5eDVbo>INGvEVW&i+dE+j7i delta 206 zcmeBTIn6RbCrO!sfgu}+I~f@m`hhe%5KA&KFlYj4MIa3nW?%+lAQJ&x@{>z*Q}arS z8GK8NOB4!<^2;()QWX+Q6mn7%fdct?sR}7jHF^^ZeR<7v4GndTj1>%wtW3=(o|Xm* z7#Qms87deVS{WKm{9HS^mNAOQCowO*G%-EZN+C04@-;?1Esw;a(qe_&)ZC=hqRi~X dJcZ)alFXFE?7YfEh2q4LQlKT-AcyEN006BOHcJ2i diff --git a/mayan/apps/tags/locale/id/LC_MESSAGES/django.po b/mayan/apps/tags/locale/id/LC_MESSAGES/django.po index 8a895fd530..57b7d3fd1d 100644 --- a/mayan/apps/tags/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/id/LC_MESSAGES/django.po @@ -1,57 +1,54 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumen" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -59,23 +56,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -103,121 +104,187 @@ msgstr "" msgid "Remove tags from documents" msgstr "" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" - -#: views.py:160 -msgid "Must provide at least one tag." +#: views.py:108 +msgid "Create tag" msgstr "" -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "hapus" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -269,9 +336,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo index b78100f1a72bdcdeccd944740ad96a711abf4791..831c4793294821f4062c9b71b813ff3d2196d102 100644 GIT binary patch delta 953 zcmZwFO-vI(6u|M3meNnqYEhxciU&;S252d0B@vURUciv1poG&(Hg%JhjqR2MJrokW z_;qkFo{TY`y>KudOg!jaJb2}-UNuIIU;o!sPrh{aH#@tXH~VI87*7(-y}19rB8F&5 zT56wCqd48ch4_j-{Dw#HCw5{lgWZ_K9vs0ip1}YXFoJWK#wDD@+Ze@H7*ndLcIku| z*uy@2kAC!Vkr#s~&l5O|gD49)k6k#2CvX8J@jA*vHc%FD3uWF1$kb{F&*C$jA;0=U z=NJQ1%t}`+Vgi>@5?@70a2@YZokz$|nPiuWWl$2&;~~6=hp~cEnJoBt{Pc}vWrBwoS+TtR+nlS?n&#QpdfrKCG3?|(q~@=s{uFJx+!;^6_DXj?#o z`%BoAKdjT4$1N=2I~>L&59z8rN`)?99IH5l8%RN9A6uoC#Y=ERS_z~t3q4L_Ev=A> zNp+-xRHxaRXpozJn(WX2;%IwN4xEH+j~qtXF4mw9(&Vg2btGhwQaSnhzabTnb08li z+a({Q&UI8Oy3fC>2Rb)(G?0#{qFr^@Y{Rq4x*0gBx4T~Idhl9o${fp@=~KpdHkTdO z--G>`e{6{tM!WIxwV{8bT8XA&&9e`b6jnQO3_(swcN1EcFu4- z{XDd+jd03WYIyo?__ux=d98m$XX2{pR2%M^W7wXva>e#MOW%u4=oj6e^_!l_KYA8! AN&o-= literal 4101 zcmb7`Pi$009LGll(SrXF6-0C>Vq4(tZp$CbLM?S$v`HJAvSK(GGrTw5j=c9~^Jcb7 zNi-fzJg5hvB%F*MjD~|TCf+7yh6CkFrCP?$nC*w=t5ZY}Jf9x85 z_Jf~-&wxLG2f;OPE4UrT(D+V}>>CI7f(?-73y|!57o>GR1W$lpf+xYXgnOZ^j`n#F zp*Rkm9ff!6iNW z!6(4OAlcIZDPK*H=6?W^T~|R4ehUtRzkyhq{R2`hZACI41&@ITz?TySN&m+nNB$>TVN?iFi8UJ0R)(9$Wx_0?&ZE;QSEyCP;R@4^rH(B>V>4f%Y%pAb1l*nB#}? zOSvO?%7KHIVw^s^(+`lg0r^WcPyQUlOL{2>r1vmhdPeY49OCo z?lQNcRrusqb5FaSK!$dmZd2$t#rcLcw67!9h@`NRhq4imFVGoG^XPpO9*7>gnuagQRR!WQ-AwnBJV()fsBbK-*Z z*?h-X-j4K&@+23Q`%<7ohce4vWrI0TewSg2RvOC+TZrU}l3h>*B3k7aCm+Sx>Ju*|YaIpHUvaJWEgkDOvsWie6}b`CYx z+YGNO-=~^N&5JD(=u7pXeikDA7S0D})^pCu$S57w`Mg*aA)lF^KRd7}+d8t&ylE-V zd8yMfPE*(Uz{0CdCq98N-1(c{kOs55qi*T(9{UT|thYc))C7E$%2w>YnM z!WlctM{D&XqlapE2IjEwoMt3K;|r@JvLSLcZ-}7nOC$Ly>=;*9+@xIz+|#Wt&V6(rzu5H=d)J$3LXqETidQztKDw5VoA4Jl9x!L8fhaUrK4&?o#tvA?pk@tR@=T%;Ysc;i^xbj@mlkYGoH_*6_;e> z%!ID?a2nP5_yuJ%W9uA^1-}ys-#MeB05u-A0jH^E0oP7bgs-l_``^puO^K zyr1V$97{+EOFwcKO5)JVZlZJ~mQ@bM3drlh6^ z0-25NN{3E)MsD+l(wS!n9Gk*^Y13VYqF7b}*IC?(l%PYeXs;(Y{?X{nUd;4V$KL!Tx2Jef(L7-d8UQEC;gwch25p!Dw6 k_>?R, 2016 @@ -12,50 +12,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etichette" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Anteprima " -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Tag da attaccare al documento." - #: links.py:14 msgid "Remove tag" msgstr "Rimuovi etichetta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Allega etichetta" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Rimuovi etichette" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Crea nuova etichetta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Cancella" @@ -63,23 +60,27 @@ msgstr "Cancella" msgid "Edit" msgstr "Modifica" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Tutti" + +#: models.py:18 msgid "Label" msgstr "Etichetta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Colori" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etichetta " -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etichetta documento " -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etichette documento " @@ -107,122 +108,193 @@ msgstr "Applicare i tag ai documenti" msgid "Remove tags from documents" msgstr "Rimuovi etichetta dal documento" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Chiave primaria dell'etichetta da aggiungere " -#: views.py:34 -msgid "Create tag" -msgstr "Crea etichetta " +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Il documento \"%(document)s\" è stato già etichettato come \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "L'etichetta \"%(tag)s\" è stata allegata con successo al documento \"%(document)s\"" +msgstr "" +"L'etichetta \"%(tag)s\" è stata allegata con successo al documento " +"\"%(document)s\"" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Aggiungi tag al documento" -msgstr[1] "Aggiungi tag ai documenti" +#: views.py:108 +msgid "Create tag" +msgstr "Crea etichetta " -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Devi fornire almeno un'etichetta" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etichetta \"%s\" cancellata con successo." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Errore nel cancellare l'etichetta \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sarà rimossa da tutti i documenti" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Cancellare il tag selezionato?" msgstr[1] "Cancellare i tag selezionati?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etichetta \"%s\" cancellata con successo." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Errore nel cancellare l'etichetta \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifica etichetta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documenti con l'etichetta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etichette per il documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Fornire almeno un documento etichettato " - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Rimuovi l'etichetta dal documento: %s" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Rimuovi l'etichetta dai documenti: %s" +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Rimuovere l'etichetta \"%(tag)s\" dal documento %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Rimuovere l'etichetta \"%(tag)s\" dai documenti: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Rimuovere le etichette: %(tags)s dal documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Rimuovere le etichette %(tags)s dai documenti: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Il documento \"%(document)s\" non è stato etichettato come \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\"." +msgstr "" +"Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -275,9 +347,6 @@ msgstr "Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\ #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo index 223a67dff7dc0985e5d5428e2fb21479b04d5438..86b0c62ba6c4cf4589b6ccc95659f468024a0504 100644 GIT binary patch delta 850 zcmYk)OK1~O6vpuzlO|1LO^uJVMrEWGv9!>KQJad7MOOwbS%}buO!XQfHG^YJz)iq~ zxDY`Gbt6^^`%tg zjv;n3wlmg;jMu*-O^dQYps7(rf*KDn-R;UX!rx`mqYg3BN3?)*P+Mq%k*Y~7~ zGmK4)EsXzzP3<;4%&2{QC(Wu@G@UGX)7GzePQknE`Xw*ui=9p8-E#4Y zTeLZ+JagtmKDZv63YKF7!9e@(;B@?MZ!7I7>(@#b&RO5&-Dx}HR9pA9JlE(*gjNBd C0%^+t literal 3035 zcmai#TW=dh6vu~B3Yb!$+)AM^4UL)<)|b%q;v~K0f-2$?rB0AaMHzcfoK1FTt(mpm z!V^d!AyEk-A<-8Eh-btH-~%8b9{2*hfCNu`2L5N(yLQ~BjJ*5X**WLTod291|8a2d zR|4%Au9tAlJ|M(2czq9UXypfmD1a645I74y1g?Pxz<0qXz%7vNJ^=TDpMZ~npMz82 z*WfAe*M5J`ULp3QKMg((UIHHlS3vy4HQadoM*n>X9!I|m^8DX`uYx~-FN42;C&0hK zhrxp|;`JN`kAUMK+s%W#t_FA*)F755J_FB#x4{eGZy?(rKr#p^JdoEn1@gSJ;Lp(N zeUNoH@`w;mg0F*c6>}i#H4pMU*Fm=HfgI;kknO(!FM{8JC&53#)8HW(u`Vkh`@IKp zJ`o5LaT8?!k3iP{OK=hV9_0D|0VlzK!Ex{qoH_nEkoB?PQ{ac71aE_5;E&)z@OSVi z_!r3W_Cd6>;C^rhTmqj1KL#OzxC8P!z6DQ!KY@@ZZ>+(KxVXl+v8D*^)`BIv_5$vl z6F2GZLiEef^;pkmaXpWV_l)P~wXz;uE8KW3Pvhb}=f)Zyb5H3F%W{o#=k`nr@k*Zz z)`9n!^I;7*e^(2jxR@lWxhWIX8hW%ciKQPmI}z!`iupKVu7K{=7-jVzil%&jaUo8?YGZ&o9TuC$hCn+A$eesX|QV-{J@@1X7l5(82Jo zZaro7@#Ow42r=+S2kXv7SoDKL@Qp)M<+#l|crqq7(&w}T-C~2mf?zs9JU(f~vT9H$ zY8{)%wu!rePf{f^B!w5Trd;ykeQXf?e}-9-Ot7L@G1LvHCsrwnyTof7dXyU`j&ftp zs<`W@9UZnqrgmo}E9#gB*FXnk%9Vz-*-o=b)^2pd5L-AXw2_T2j`$mwz=->f_3sh@ zHRHBsWNH`Rigk#?s#x((5QefrGMmW7R(O|*32|0TyoKuZF8kg(85_j9Dr@SN(sFU3 zcD1ld?bsw<&9(yHyVPk}uO3%rVdd?*=e`fvdkgrAs&cAaIptL<-qahiJXM`O?UhfK z%P{m-v0WT@#IAf+R;H^b&%RbhD=ed8yt+}^hAN3oRW5cZ47Rkqs#J&?+?KPHzOnrm z7g~`D!eTRy&cR!^I;urpom5nn3!MZfz{C|wHpzra`*u=JY$i#&S}OH=y<)=i1RHdd zy-Oyx$^@|~MVz)req>8RX0 zD$p~sxv7k$WNxj#EqmlmPhAgWpbt<)?;ePkiS9M2)5F%G2dL$;;oQ6M%0wrmPA_WfI7Xty;53S zR60`I80ccV-5{l-Rz&QRMrKQtMlaa%$qb${%QvZi{*m$f9^K5E^m#Eno`sh?EV3hM zq}tPSQMSk}!P5?M{&Ku;Rxv()FT6J#3lETX68=G z^aWJwJ1xbXgyol;n06>Jr>e6Vn!hO7JfbkIfYFn5P5J?fN=AXUs4goj`F2X|1Ii4E zbx9Y+nv7!12g3k+6}tU(ld)aHkZz?`cg4%~%npGpaPE{Hu*>9WYC8Yzlm>N&Ix?3yR$ x@5tlczIcmMci_?wX;B{A!4`i*PJAn_VK4Y|!ZADe`@?WAHa>r8nLvI~{0CSJBy0cx diff --git a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po index 4f10953a7a..3fe713650f 100644 --- a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-09 15:49+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Labels" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Preview" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documenten" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Label verwijderen" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Voeg label bij" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Labels verwijderen" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Maak een nieuw label aan" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Verwijder" @@ -60,23 +57,27 @@ msgstr "Verwijder" msgid "Edit" msgstr "bewerken" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Kleur" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Label" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Documentlabel" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Documentlabels" @@ -104,123 +105,192 @@ msgstr "Label documenten" msgid "Remove tags from documents" msgstr "Labels van documenten verwijderen" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "maak label aan" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Document \"%(document)s\" is al gelabeld met \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Label \"%(tag)s\" is gekoppeld aan document \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "maak label aan" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "U moet minimaal een label aanbrengen." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Label \"%s\" verwijderd." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fout bij het verwijderen van label: \"%(tag)s\". Foutmelding: %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Zal van alle documenten worden verwijderd." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Geselecteerd label verwijderen?" msgstr[1] "Geselecteerde labels verwijderen?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Label \"%s\" verwijderd." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" +"Fout bij het verwijderen van label: \"%(tag)s\". Foutmelding: %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Bewerk label: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "U dient minstens 1 gelabeld document aan te brengen." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Verwijder label van document: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Verwijder label van documenten: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Document \"%(document)s\" is niet gelabeld als: \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Label: \"%(tag)s\" is verwijderd van document \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +342,6 @@ msgstr "Label: \"%(tag)s\" is verwijderd van document \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo index d74886672332c000f3bd6fb868114905760a5745..77804a2562759dffd7673304ae286f5250ec650a 100644 GIT binary patch delta 981 zcmYk)O=uHA7{>8Qo2F^{p^c4gjUOv&+Z-aL%b zj9tden_~>LU=oM1h)Q%F+tEb@zKcrq0F_`774SLoXFl=B<7eED17z8XCs7G6@QC0g zR6ZAXkl);Au#H{5Mpa;mY}&vdT#tTs(TfpO;$aM83cE3fSv-OYynq|=25RGvQ59Q6 zeg6^@_zr{QH@`K&79L96i3-$Q)s)ElO8@@9rh@UWt@UO+ge;O_kAU2kBvYAD#R2egoiLm99e@S5j3>n_AmcjefeS zLBUnsh<9S0a&2?ZwBBx<>E>D7r$Y~{T|tt2Glzqm=_reb3u_fBxpz1-30nW#>c%5N5?%!zvA O?N#?msPADj!?U5YE^+af}k8wZ-@h@!U2_A6A%&y{(@dOfyAkI#P^M3uVX1KBkz1>=e>FF&3m&W z-`u_P3x>8I&+~XDcQAGs{NOHhX#U-d<-ihH04Kqx!Da9s@FKVi{1kiyyaJN`ci_F? z58#8~b?^xID_92q1s?!QI~jWxoB;7-XVE`Hd%=Am=^Y0tjt@cd*8~v)y96EwKLK9{e*;NBhu~q7<-sSx0!Z;pf#m-! z@E7DN1}WZS_cQhmI0I51zXD;3{Rln^UI!loe+Ma!n;?GdZ*&iXx4;Ux15S>ClOXw9 zLAM9|7=$bKB}n=H1|&P*gFg5Z=&p^u4w;+CO z10B`(50LWn7kC2v2OI}|IDH%pK+4Z~kmCCY#E*TB&I7N4NRMk2?=yHPFVDG|Zf>5y zm|}uy*T^rOA!;vn!8VVfdwU8!#Z3OlH`Rr5O8cQ2P@^-j+l{&%2lnHk98;qhsZmX+ z(O#%g&3kR%=79E3wWhpNjz;jXH>?%)C2mDyV92fJfvzVl8QE>7&A_}F)Hm#;4t2~< z#!^_xBbhqmTVJ8n6_ej78A>ZRLCS_rZ93;8qhq~5@@9l9!$pXdL5K7jGT_3H4qhPM zc3CP+bkN>*N#@h=R9R$XNz#G}A2n<`P}X%@X6Oa7IMy)_Xb&oC&|DS}7LQ4i=M6h8 z7G%g~6JvQh)+;KITv#4Tfe9VSe!dI0(Sh+hh$$t#gcaCaELW6F*}QD&6}O#%AzzGj ztFKJ^ENm+^!(ua_YPMQ3tcIfE$?|}m(kVl1CaKq@F^fqUqJ-Hg8!B{RXnpK9FtmJ2 z{M#77nQ^5Va_#K9KoLBZZ}YslYM({Qy0v{zg&|*%yyxC|6qxJjBV}{3Zpym#P6ggs z85^ae3ZE4n5%KA%*>`jEvaMt5&6ocr{(&xw*G%p8Eu#?@i%DsqnI2I^vZ| zUU{7R<;vk#J^zsJL(!W@5y|eLoafQ$81sNm5 z^V*15X(&XEL^PyVlcH7Ob2?OJiH|K=+pZLgX_^)+tyYWje4(ye#kjjJF1Bbho(x*1 z7;f4qw!>mRH+yP!I@@!p;O9>2$l}WIYMnMVWaW7aO`)O*USATik+yoKHsc-5^vL6) zjJ@fot^<5N6@GL<*?z1Q-VSqfVG@hbo6&I#$1rNUS5qCIfRH5Bv8Y-t@#Ea*5RaDp z*Q#ZH;D8%WRu9o|jHdm`lFu((aPy?&=dq@QHRb$74p+y<+WMvXDixlc6WI%Djo-4n z3zKanH?F1sTc!q0(!w|0g?YxNH?GC2JkqJV-Ppi{`*u}-hGINpl4$+X`sMzBB3IZ) zH`Jl;fj1@YnP#%_GuP15sfaqfDVBBik#4&*Qj#xpHrDREveUQG;VzR(;;6X`v}2Pd zu22F6IxyRf`vhe?;B6h$S8=B&CP9cwkWgeXR, 2015 @@ -11,50 +11,49 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tagi" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Podgląd" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenty" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Usuń tag" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Dołącz tag" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Usuń tagi" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Utwórz nowy tag" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Usunąć" @@ -62,23 +61,27 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etykieta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Kolor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Tag" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,125 +109,199 @@ msgstr "Załącz tagi do dokumentów" msgid "Remove tags from documents" msgstr "Usuń tagi z dokumentów" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "Utwórz tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Musisz podać co najmniej jeden dokument." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokument \"%(document)s\" jest już otagowany jako \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Dodanie taga \"%(tag)s\" do dokumentu \"%(document)s\" powiodło się." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Załącz tag do dokumentu" -msgstr[1] "Załącz tag do dokumentów" -msgstr[2] "Załącz tag do dokumentów" +#: views.py:108 +msgid "Create tag" +msgstr "Utwórz tag" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Musisz wprowadzić conajmniej jeden tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Usunięto tag \"%s\"." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Błąd podczas usuwania taga \"%(tag)s\":%(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Zostanie usunięty ze wszystkich dokumentów." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Usunięto tag \"%s\"." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Błąd podczas usuwania taga \"%(tag)s\":%(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Edytuj tag: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Dokumenty z tagiem: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Tagi dla dokumentu: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Musisz podać conajmniej jeden otagowany dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Usuń tag z dokumentu: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Usuń tagi z dokumentów: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Usuń" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" nie był otagowany jako \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" usunięty z dokumentu \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +353,6 @@ msgstr "Tag \"%(tag)s\" usunięty z dokumentu \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo index e09b3449673275a07b62e0d78700b8ad2de48fdb..3d7f564fbd0b4ede11ed54d5eacfc561edf86b87 100644 GIT binary patch delta 503 zcmX}oJxjw-6oBEhNt@cnuZmQ~kBXp!29mZxTX1s}D(xcZQX!NgwxYEtD0L9gK~RE! zKpb4$#YJ#&a1aC+5huaXKj7edQt2Tl&%Mb#_nzc8_8M(|#wrgOgX#9)jEFDM88pfu1& zyPY_KlQ@m^;creaeiJP9zaIR<3>gqQDYX(^r2H{yPWF{%+993GZ;5!ffwOSI-KaHO zZ$EhN%$k;Crsk5ilXGm-%2-x(DQ_0sMrFHFtC|a?x|>U;EW5ofn@gv?b@jklELF=p Yr82KK>)yAz;^nmuy|wd}w;MY80}z`!s{jB1 delta 650 zcmaLUKWGzS7{~E9cd0S|tOkT&tG*)Cp(Nxk{(-}(bTmsxhr*G(hCq53)4PC3$fBd5 z9D)uG?hZNyM4^*Hha!QFjSdCTRopE2ePR?Bec;XK-iP<@`Q2rb`;i|_OXIupN#wZVbgL1<=e8@w;;sy41Ib`EAJdMxsIF9iY?qCilC_xYKBpzZ7zhj#D zYK2%UG*;(s;Cc3UPzFCm3Gx<;_#Wl_K9Wa~XEsQ}(3;hWxiVNvg8g00o_)1~B$1M2 z@>!*1h?M*#@+QA4!$mf^pL(#?h_@r%>xY9*%VmR8{{z6Z!3G zQnp?fuT~tV;?{M|^{!k?K3Yq3YW0fiXxH%^H_6z;LBX=B|C qjJ_521Jg8p-80=#Gc(-Q@z$RJVO9O-n6FLLxgDFxuO@rxdp`k+%W6sh diff --git a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po index 81cde1bb0d..cfa632d663 100644 --- a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Emerson Soares , 2011 @@ -11,50 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Eliminar" @@ -62,23 +59,27 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Nome" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Cor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,123 +107,191 @@ msgstr "Atribuir etiquetas aos documentos" msgid "Remove tags from documents" msgstr "Remover etiquetas de documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Deve fornecer pelo menos uma etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" removida com sucesso." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Será removida de todos os documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" removida com sucesso." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Remover" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +343,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo index 995c537541437b744db066661a8fd51e6dcff817..ecf8158e3e14354b65ae669e3d5e4be7494d62d8 100644 GIT binary patch literal 4934 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, 2016 +# Jadson Ribeiro , 2017 # Roberto Rosario, 2012 # Rogerio Falcone , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Visualizar" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Etiquetas para anexar ao documento." - #: links.py:14 msgid "Remove tag" msgstr "Remover Etiqueta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "anexar etiqueta a: %s" +msgid "Attach tags" +msgstr "Anexar etiquetas" #: links.py:20 msgid "Remove tags" msgstr "Remover Etiquetas" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Criar nova Etiqueta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Excluir" @@ -62,23 +60,27 @@ msgstr "Excluir" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Cor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etiqueta" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etiqueta do documento" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etiquetas do documento" @@ -106,122 +108,197 @@ msgstr "Anexar etiquetas para documentos" msgid "Remove tags from documents" msgstr "Remover etiquetas de documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Lista separada por vírgulas das chaves primárias do documento para as quais " +"essa etiqueta será anexada." + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" +"API URL que aponta para uma tag em relação ao documento anexado a ela. Esse " +"URL é diferente do URL da etiqueta que está de acordo com as normas " +"estabelecidas." + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Chave primária da etiqueta a ser adicionada." -#: views.py:34 -msgid "Create tag" -msgstr "Criar Etiqueta" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "Solicitação de anexo de etiqueta realizada no documento %(count)d" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "Solicitação de anexo de etiqueta realizada em %(count)d documentos" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Anexar" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Anexar etiquetas para documentos" +msgstr[1] "Anexar etiquetas para documentos" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Anexar etiquetas ao documento: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Etiquetas a serem anexadas." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Documento \"%(document)s\" já está marcado como \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" anexada com sucesso para o documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" anexada com sucesso para o documento \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Adicionar etiqueta ao documento" -msgstr[1] "Adicionar etiqueta aos documentos" +#: views.py:108 +msgid "Create tag" +msgstr "Criar Etiqueta" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Deve fornecer pelo menos uma etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" removida com sucesso." +msgid "Tag delete request performed on %(count)d tag" +msgstr "Solicitação de exclusão de etiqueta executada na etiqueta %(count)d" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " +msgid "Tag delete request performed on %(count)d tags" +msgstr "Solicitação de exclusão de etiquetas executada em %(count)d etiquetas" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Será removido de todos os documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Apagar a etiqueta selecionada?" msgstr[1] "Apagar as etiquetas selecionadas?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Excluir etiqueta: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" removida com sucesso." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Editar etiqueta:%s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Os documentos com a etiqueta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etiqueta para documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Deve fornecer pelo menos um documento marcado." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Remove etiqueta do documento: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "Solicitação de remoção de etiqueta realizado em %(count)d documento" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Remove etiqueta dos documentos: %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "Solicitação de remoção de etiqueta executada em %(count)d documentos" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Remover" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remover etiquetas de documentos" +msgstr[1] "Remover etiquetas de documentos" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Remover a etiqueta \"%(tag)s\" do documento: %(document)s?" +msgid "Remove tags from document: %s" +msgstr "Remover etiquetas de documentos: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Etiquetas a serem removidas." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Remover a etiqueta \"%(tag)s\" dos documentos: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Documento \"%(document)s\" não estava etiquetado como \"%(tag)s" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Remover as etiquetas: %(tags)s do documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Remover as etiquetas %(tags)s dos documentos: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documento \"%(document)s\" não estava etiquetado como \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +351,6 @@ msgstr "Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\". #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo index 6eedd58ce7c087676884e53361861fa451830845..e48537f37aca8592ed24da8daf5f038fde61e38b 100644 GIT binary patch delta 791 zcmYk(KWGzi6u|M9CQX`Dt*IJ~6%B|)k%LQP)SieP6o zTDXo{a0&}JjaqmHwa^msNJw)DdpM1+@hJXAov1`}04GovQp4kT0Y9>-HXdVKWwIRe z%T+oDdC^Q>hdm)fN9ATvKw~di1O-*|~n#9gmZGWg2^SNUm(qmH6|}z4&3;E4JLVpy$dC zmB@IT&od^qe9p2P*5vt0t>H9kmVL&y3-e8@<@WrpA9SqCCUTw1q+R>>yD6t$KW!6* zS<{WI#n5!Rt0oFUr_u^m+%O8TYeGMW*Rv~Qv!>(SHXcR7pxtW5pR&vG#oV>{Mea%5 iA9+;%@HBEm&y_2y{+i!;->!n&+s|Qh3rs*VEOm@RQs?C4V?dM=| zq0T+Y&^WG5bX736ldQxa+8nHbuiyqa4?XZZ^ur&}3tcY8R>2zB1%ogS2Vgb405`&` z&<&^IYQ~D}ektGyY{A5HND02dZEz88f%SN52aH47&`G!%W+BaAfwX~XNQoXnJj!0f zUicO!VE~I${9))uepWzdJq9dDJG}-e@g)3+YCMJOaDT(c*j9K4;>TX%uK~U(-G7C& z<`ePt|Xekk&m98{y^B{Y@A|es&L?diV^s!}(G`6`l&?z7EoxC*f{*2G+tU7=jN< z^Y2UJKVcij11J-^ECCO~J~#lc!&bNei^#=%s9O^ZK>DV;U<>SlD1g&Y1gB9PHF{HO z`20@UsS@;dv@vRRxPnfPu{AJI>eKpEe%jbt#*R6MfxZ)!m=4%d@Q@KI~?tZMr(!!!^3h+F%(S=_X$%bcsv^G!dy7k&7*q~9Ub;3 zcLP6S%Ct}wi|^MJ!<4)yV-=KSR;U@FM|5qk?e&b<=RC*#hcIM`4A#-L)5C-IJI@Kf z6yviKT$)NME6v#nd%O2mla=Gmq1L4WwHeJ^wYcDE%`ok|-iO7bx*V|-$qhW2wsch) zm*bMBWR4fCxhX~EmRc@Agq5RZPNqzOB!7l#%ensuMT{_Y1zBF)R#t{rm-fmd_9, 2013 @@ -11,50 +11,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-17 09:44+0000\n" -"Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etichete" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documente" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Elimină eticheta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Atașează etichetă" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Elimină etichete" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Șterge" @@ -62,23 +60,27 @@ msgstr "Șterge" msgid "Edit" msgstr "Modifică" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetă" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Culoare" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etichetă" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,124 +108,197 @@ msgstr "Atașați etichete la documente" msgid "Remove tags from documents" msgstr "Îndepărtați etichetele de pe documente" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Trebuie să furnizeze cel puțin un document." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "Documentul \"%(document)s\" este deja etichetat cu \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Eticheta \"%(tag)s\" a fost atașată cu succes la documentul \"%(document)s\"." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Trebuie selectată cel puțin o etichetă." - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Eticheta \"%s\" a fost ștersă cu succes." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Eroare la ștergerea etichetă \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "Documentul \"%(document)s\" este deja etichetat cu \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "" +"Eticheta \"%(tag)s\" a fost atașată cu succes la documentul \"%(document)s\"." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "Va fi eliminată din toate documentele." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Eticheta \"%s\" a fost ștersă cu succes." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Eroare la ștergerea etichetă \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifică eticheta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documente cu eticheta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etichetele documentului: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Trebuie să atribuiţi cel puțin o etichetă ." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Eliminați eticheta documentului:% s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Eliminați eticheta de la documentele:% s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Şterge" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documentul \"%(document)s\" nu a fost etichetat cu \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(document)s\"." +msgstr "" +"Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(document)s" +"\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +351,6 @@ msgstr "Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(docu #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo index b86ee3ea2b7328733e9103f48d590467a9c89ee5..c7bbd2f8a4c5e909cd162771ba1aa62543fa38d6 100644 GIT binary patch delta 951 zcmZY7KWI}y9Ki8QP1C$4v1x0KwN3h@wT-61G$F=BP-87Z=@hz1ad>KoO6`NZS1T^T ziXiBA{@D~Pba3%c1w}%+^vwa;DN z+ltsl_LD;%rS{=y3qQmLLM0nB3>CvZPr!XQ4v5WYr3 zshWCEV<#OS(2GA%25$TvpgeSr@Et(eKnB||kAql5S-6a{ky(@tETGJL6`4xi!^8Lh zkKh-KvA!B)R@&+)_TX`3XX+%%0u_u<{SD0Vy~OH%{DedJ6^GHFvlmk+Cp6joK7r5q zb})+xCXb?p1FWxVG`jFU%0y35cK#9LxPiMdN_od{9A$y)C|7kC58=CJzmM{zke;Rq zl!c4P5Ve3($RgGzXuPB$cQ5BI1EMJJA&vt$i3jmK@;n;XBjdWs&5&^t@+M4Du1KPf z+)l~~%cf=C7%2sEs8av`ArDSM9*V>^GD6Bdau|)%V$Y2#L3NT+fV_jv2-A@3;M5!M zMvhz+UDrB&)^x3kW4g9^#@3_WH#*vSMF)N9fGU+Q*cZ$4x32l(`c~Up?f5T;a>-OS znLc2SWeeFc{nOu<`PY*#WHN~q(LQB4ZgRS6%{jA{YgY?q$v#!CvPj8xtm-*ij~mm$ zDQm7WZ&k_#vpTQu7&H2}v8ML~`d7XOu6b6LLphIr(qV^|>d)$r>#yoBRu@-q>R5QM Pei$z3U!7|@)IIYDtfO>S literal 4968 zcmdUyTWlOx8Gr`}1x&bwaA`x^6PF}jn%RqEx6USO(>hKSsTNVX6h(cS?2esjcXzCr z*|?U9lr*hcDN&SKxm5C0Ky>!J`lntqMi% zY&<^)5AnVL`KP_f&qMGX_yGJJ`~kcJzW{gRjLh$a;@V${|OJm`$)#U@G&U)eRzrC$Grl8<|EdInCyuwS9fFT?%t*HHTR zk5J;={mrO;has&UUJ|F&?hv=sKA$=Jy31Ya9fAG?Nu<*)#nAjV<$3CYSHq@FOeWoRtH>drfzxRPtS&RkOVToRh}z&X6A*UfrfJ7YHO3t`BaM>Xfz&D5aeA}iQC z>-JB(8AEQLY&sQXxtp>`PLiL5AxTW0bF@w3=+2trQL5^0)^(Yd8s=i}va9Z>E4BwI zXV;ZwtF#?=CQ2jR#1zYI*J`Hg&b1p2+P%ApMYbFDaK2C939Hqo-czgr2H0O=ul6k+ z+IM9Uav}X3Zwn%cNAWFkTD;6=Dz80Fk42l|Csv~&J(ai@dSoz`*rR_=JNC1j5BjOP z{12zmVk=TupZ z7E6!lrIJ2+L={KNS%(dp*#=NOlO`};>XWFi7;or!4&s!)L3X6-2c~3O0IrI5^&2APP+cg}^ zb_z`iL^tbAx6p`<6r6S;H#B={cBUI|DPJ6#wp$*jwO(CXAQ;bl-YYCL46Aia)y^A^ zYkHL*S5N8_T{&5C&UEydR?V(+)|A!6Im=6(Ei0!zbh^=YjD~*FcA9i>Yax7fD`Ur0 z^jH~b9Vitmm6AGmP|0I)f2CAXQ>v&C=Y6s=noJ$9jLBoDQ9NE6RWG~{sZ5r}a;TJI zl}e>3Q=!~sWxT6?G?$KJmt~SQk5{lTrA9GuBzJ5`^WP0F`W=6r-!=bZzZ1L|Tvh%@ z{#x)NgO_)jSN^*4SN+=}D_Z^rdMo}%+w1wA|9`#r{Tq@b&0i+^o8(|6O5FypH-gK- zYdu*^h5QY&y{3SOT?t-J#7N;LTbVMvCoA~3q5^4t&ue00-S2FgVGaK}#a&^=jXt-g zc96azj>bOto&T+L@0qLUrVnKGPS{lBIdvqs+&#;+J}qKI=VMYUUcVykNTU(^dPc{8 zD{5|kWsA<$(pg%xzpts7=D&gUOtS}9wir^urPN=Xmo@)Za5Yho%-s$yktqrCB4-*tTtvD=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Метки" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Предварительный просмотр" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Документы" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Метки, прикрепляемые к документу." - #: links.py:14 msgid "Remove tag" msgstr "Снять метку" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Прикрепить метку" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Снять метки" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Создать новую метку" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Удалить" @@ -60,23 +59,27 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Надпись" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Цвет" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Метка" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Метка документа" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Метки документов" @@ -104,55 +107,82 @@ msgstr "Прикрепить метки к документам" msgid "Remove tags from documents" msgstr "Удаление тегов из документов" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Первичный ключ добавляемой метки." -#: views.py:34 -msgid "Create tag" -msgstr "Создать метку" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Должен быть хотя бы один документ." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "\"%(document)s\" уже имеет метку \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Метка \"%(tag)s\" присвоена \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Прикрепить метку к документам" -msgstr[1] "Прикрепить метки к документам" -msgstr[2] "Прикрепить метки к документам" -msgstr[3] "Прикрепить метки к документам" +#: views.py:108 +msgid "Create tag" +msgstr "Создать метку" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Должна быть хотя бы одна метка." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Метка \"%s\"удалён." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Ошибка при удалении метки \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Будет удален из всех документов." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Удалить выбранную метку?" @@ -160,71 +190,116 @@ msgstr[1] "Удалить выбранные метки?" msgstr[2] "Удалить выбранные метки?" msgstr[3] "Удалить выбранные метки?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Метка \"%s\"удалён." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Ошибка при удалении метки \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Редактировать метку %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Документы с меткой: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Метки документа: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Следует указать хотя бы один помеченный документ." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Снять метку с документа %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Снять метку с документов %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Удалить" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Снять метку \"%(tag)s\" с документа %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Снять метку \"%(tag)s\" с документов %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Снять метки \"%(tags)s\" с документа %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Снять метки \"%(tags)s\" с документов %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "\"%(document)s\" не помечен как \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Метка \"%(tag)s\" снята с документа \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +351,6 @@ msgstr "Метка \"%(tag)s\" снята с документа \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo index 72bc579bf1dbfde89b4242158d4c2a93bb29d69f..0b816c99c12f717f0a496cdaf4840b3db5e12d06 100644 GIT binary patch delta 230 zcmey(wwSH{o)F7a1|VPuVi_O~0b*_-?g3&D*a5_>K)e%(`GI&p5OV_Yc_0Rf-vnYQ zAifX8EI|AVh_5g*F#HG7Ao(jy3=G0R`WBD|>3avH*?{y9APuxnis3(0K!%xt0jQ4w zNPz+S#FcK7g&A{r&2_eso4FHKBOwNfa~ Ui4XRiY|9iqc?DDVQ^s{R+a z@C{8^sWDbZwvZnXLbd12V1`^mR`=JCHe(xX69*TK5LtcT?0>)v5_cJb&4Dw1+INrg z%+PS8i!_lW4E3czLn}#%zRm|ynbvqRh_*f7_kxgk5Jzo~Z*jiRIrdIuk!Gn@-kvZr zrhxm?J-%r}4Gm=+IQ%}-RC&HvuWTHn> N;pLm@%jK`N{s&CbL%sk2 diff --git a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po index 78def0b01c..88d34b222d 100644 --- a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # kontrabant , 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Oznake" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Oznaka" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Barva" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,55 +106,82 @@ msgstr "" msgid "Remove tags from documents" msgstr "Odstrani oznake iz dokumenta" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "" - -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:86 +#: views.py:33 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:96 +#: views.py:35 #, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgid "Tag attach request performed on %(count)d documents" msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "" - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Attach tags to document: %s" msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "" + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" @@ -160,71 +189,116 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +350,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo index d48b0dd7da8050cc8e2258b28e801a3ce4914ae0..ad745f7c98eeff0e2233e435c09be6fd60e76d00 100644 GIT binary patch delta 531 zcmYk(J4*vW5Ww+Ga+er24`ZW7B@od<4)WlPi2-c|Nns(1MF@BV5fuw#As9&^h~;9T zos~@r<-o#LNMYqC5bZ4Nv=;w!K8KtA?H=6BEZ0ihMw*Wa<5Up|a+qwBBV^gfLR{eh zUZaWk7{dqb!6%%;R}5p?uaton$~lJ_1#+CDWw|g a)uoEo=BoZMFZ4^WU@YIcHTNwP^L+wDZa4G* delta 1059 zcma*kO=uHA6bJB0n%Jb;MAQ0JKl(@vsmhkk#-w~(sam9mP$@(~5*!bGjAr%{#$|S zr-17rL+nKEMZQN4BkwuzKzN*t?SfwDhC%3uBXBc33gd7BN^lN(;WOxhFFWH`FoN+L z7=r6?KVwxk(8Jgve30Nico|}X&A}l!4^O}s@Fe`&nU7<2zQIL2_=ag1f>}6^=I_AW z7>73ftUC^QrBtpcgrCvX*>Z`p zhdY}jD6EaLzot90T6?;2&3Vi*78jyXL5h(mCC0`D@rWq)T{thKluAJ>lvQCu)|CWF zVl*y@F+qxw6iq}W^Fz;F({QEz=VUc!$T^f$3Rk8k&3CRRF`{62q, 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Tài liệu" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Màu" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,121 +105,187 @@ msgstr "Gắn tag cho tài liệu" msgid "Remove tags from documents" msgstr "Xóa tag từ tài liệu" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Tài liệu \"%(document)s\" đã được tag \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" được gắn thành công cho tài liệu \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Cần cung cấp ít nhất một tag" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" xóa thành công." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Lỗi xóa tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sẽ được xóa trong tất cả tài liệu." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" xóa thành công." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Lỗi xóa tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Cần cung cấp ít nhất một tài liệu đã được tag" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Xóa tag từ tài liệu: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Xóa tag từ các tài liệu: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Xóa" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Tài liệu \"%(document)s\" không thể được tag như là \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" đã được xóa thành công từ tài liệu \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -270,9 +337,6 @@ msgstr "Tag \"%(tag)s\" đã được xóa thành công từ tài liệu \"%(doc #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo index d900244e2dfbdfbab2fdaea51c9683b880240ffa..6b56c34a117e4174200989a1dd137fce36c07aeb 100644 GIT binary patch delta 514 zcmX}oy-Nad9LMpW&t|3;M3E6fP>ToW!(|!tK#fu177gKWs6!f54iPy8HeV4g4I$JR zG!!@mE&T;SfolZi9zyi~9?};+_qzK%-S_S;@(`@Ghujy68YJVSNk&NA!G)^hD4wAQ zuQ80b*pH7mgU{H9-JTw&Qqw$#(Tf=z!v$Q#EnHHnrW)K#Fz|+M{6RVB7bns0QtF&T z<2cOo6N}`)SCmHD7{m@Hu-lv0=vKzlIEBk7`-&(ZRKX0!`P+8MfL+$NquZZ4ZjSzqqc@LIlH iILsHAJ}U04tXq4YZR_20X*Ilt_v5DZ*=Sk?-^(9W1VVcN delta 982 zcmajcPiWIn90%}UyVh!*w$5$3>EyXO=f8|3+p1KC^B-Px>W&_i(8jj7CbFazMClYp zJ^6>sIo+j0VK5jBCORn0vmhQkdGcbGy4$>X_WP0y1Q~ne_df6C_wxSbW8*@+{G%!K zl2BR^`w?Fd9f$`3R48k3FZ>O|Fd8I^!8qIw8BD?xP=;x^4Nm%2VK@47Faf{81Mm+# zMpUMj25-SZ$P+hVJA4Swz$rKgzx(;N5D^|ag^DjU02A;MoWLgUz!vmri~CS39&ZPAP(tH%6|bbI}ljMJvl!F zKQaHMyAkUJ>$x{ZXH8Q{=a{Kv4QnExTTgo-P(t&FrC#$6(q`(pfe0&rHK=K`*I%H|+MPUSOHy{vs*XW%SU0X+LYY z>BWKI=|F!{kR(CwWulzwKPiZPq8Pn)RTx%Fc_XiD!Ue@tQ%n}6q#*VRvczO5CCS!& z!?<-WbR%|I(XvG)iy`-Ox6Th))1j$7on1%P&wAA8bY4}RYNbBEY$d`M%PXJ8S7&O@ zv*-5m^sma|%EAkKY0O@lb0#Zx?ZeNp$K;Lha^5(9ggeP5X-wnHyd}H#)NAo`)@N(0 QuitrlXx}(xY2nX*0av~Cxc~qF diff --git a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po index 9349954ebb..86d99688fa 100644 --- a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -10,50 +10,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "标签" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "文档" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -61,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "颜色" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -105,121 +106,187 @@ msgstr "给文档添加标签" msgid "Remove tags from documents" msgstr "从文档中删除标签" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "必须提供至少一个文件。" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "文档 \"%(document)s\"已经被标记为 \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "文档\"%(document)s\"添加标签\"%(tag)s\"成功。" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "必须至少提供一个标签" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "标签 \"%s\" 删除成功" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "删除标签\"%(tag)s\"失败: %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "将从所有文档中移除" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "标签 \"%s\" 删除成功" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "删除标签\"%(tag)s\"失败: %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "必须至少提供一个标签文档" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "从文档: %s移除标签" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "从文档: %s移除标签" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "移除" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "文档\"%(document)s\"无标签\"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "标签\"%(tag)s\"成功从文档\"%(document)s\"移除" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -271,9 +338,6 @@ msgstr "标签\"%(tag)s\"成功从文档\"%(document)s\"移除" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/serializers.py b/mayan/apps/tags/serializers.py index 63c655ae16..6a8830f792 100644 --- a/mayan/apps/tags/serializers.py +++ b/mayan/apps/tags/serializers.py @@ -7,13 +7,14 @@ from rest_framework.exceptions import ValidationError from rest_framework.reverse import reverse from acls.models import AccessControlList +from documents.models import Document from .models import Tag from .permissions import permission_tag_attach class TagSerializer(serializers.HyperlinkedModelSerializer): - documents = serializers.HyperlinkedIdentityField( + documents_url = serializers.HyperlinkedIdentityField( view_name='rest_api:tag-document-list' ) documents_count = serializers.SerializerMethodField() @@ -23,7 +24,7 @@ class TagSerializer(serializers.HyperlinkedModelSerializer): 'url': {'view_name': 'rest_api:tag-detail'}, } fields = ( - 'color', 'documents', 'documents_count', 'id', 'label', 'url' + 'color', 'documents_count', 'documents_url', 'id', 'label', 'url' ) model = Tag @@ -31,22 +32,82 @@ class TagSerializer(serializers.HyperlinkedModelSerializer): return instance.documents.count() -class NewTagSerializer(serializers.ModelSerializer): +class WritableTagSerializer(serializers.ModelSerializer): + documents_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document primary keys to which this tag ' + 'will be attached.' + ), required=False + ) + class Meta: fields = ( - 'color', 'label', 'id' + 'color', 'documents_pk_list', 'id', 'label', ) model = Tag + def _add_documents(self, documents_pk_list, instance): + instance.documents.add( + *Document.objects.filter(pk__in=documents_pk_list.split(',')) + ) + + def create(self, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableTagSerializer, self).create(validated_data) + + if documents_pk_list: + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + def update(self, instance, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableTagSerializer, self).update( + instance, validated_data + ) + + if documents_pk_list: + instance.documents.clear() + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + +class DocumentTagSerializer(TagSerializer): + document_tag_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a tag in relation to the document ' + 'attached to it. This URL is different than the canonical ' + 'tag URL.' + ) + ) + + class Meta(TagSerializer.Meta): + fields = TagSerializer.Meta.fields + ('document_tag_url',) + read_only_fields = TagSerializer.Meta.fields + + def get_document_tag_url(self, instance): + return reverse( + 'rest_api:document-tag-detail', args=( + self.context['document'].pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + class NewDocumentTagSerializer(serializers.Serializer): - tag = serializers.IntegerField( + tag_pk = serializers.IntegerField( help_text=_('Primary key of the tag to be added.') ) def create(self, validated_data): try: - tag = Tag.objects.get(pk=validated_data['tag']) + tag = Tag.objects.get(pk=validated_data['tag_pk']) AccessControlList.objects.check_access( permissions=permission_tag_attach, @@ -57,19 +118,4 @@ class NewDocumentTagSerializer(serializers.Serializer): except Exception as exception: raise ValidationError(exception) - return {'tag': tag.pk} - - -class DocumentTagSerializer(TagSerializer): - remove = serializers.SerializerMethodField() - - def get_remove(self, instance): - return reverse( - 'rest_api:document-tag', args=( - self.context['document'].pk, instance.pk, - ), request=self.context['request'], format=self.context['format'] - ) - - class Meta(TagSerializer.Meta): - fields = TagSerializer.Meta.fields + ('remove',) - read_only_fields = TagSerializer.Meta.fields + return {'tag_pk': tag.pk} diff --git a/mayan/apps/tags/tests/test_api.py b/mayan/apps/tags/tests/test_api.py index d714a5a14f..d3aa157326 100644 --- a/mayan/apps/tags/tests/test_api.py +++ b/mayan/apps/tags/tests/test_api.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings - -from rest_framework.test import APITestCase +from django.utils.encoding import force_text from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) @@ -20,12 +20,10 @@ from .literals import ( ) -class TagAPITestCase(APITestCase): - """ - Test the tag API endpoints - """ - +@override_settings(OCR_AUTO_OCR=False) +class TagAPITestCase(BaseAPITestCase): def setUp(self): + super(TagAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -36,9 +34,26 @@ class TagAPITestCase(APITestCase): ) def tearDown(self): - self.admin_user.delete() + if hasattr(self, 'document_type'): + self.document_type.delete() + super(TagAPITestCase, self).tearDown() - def test_tag_create(self): + def _create_tag(self): + return Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + + def _document_create(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + document = self.document_type.new_document( + file_object=file_object, + ) + + return document + + def test_tag_create_view(self): response = self.client.post( reverse('rest_api:tag-list'), { 'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR @@ -46,7 +61,6 @@ class TagAPITestCase(APITestCase): ) tag = Tag.objects.first() - self.assertEqual(response.data['id'], tag.pk) self.assertEqual(response.data['label'], TEST_TAG_LABEL) self.assertEqual(response.data['color'], TEST_TAG_COLOR) @@ -55,15 +69,60 @@ class TagAPITestCase(APITestCase): self.assertEqual(tag.label, TEST_TAG_LABEL) self.assertEqual(tag.color, TEST_TAG_COLOR) - def test_tag_delete(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_tag_create_with_documents_view(self): + response = self.client.post( + reverse('rest_api:tag-list'), { + 'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR + } + ) + + tag = Tag.objects.first() + self.assertEqual(response.data['id'], tag.pk) + self.assertEqual(response.data['label'], TEST_TAG_LABEL) + self.assertEqual(response.data['color'], TEST_TAG_COLOR) + + self.assertEqual(Tag.objects.count(), 1) + self.assertEqual(tag.label, TEST_TAG_LABEL) + self.assertEqual(tag.color, TEST_TAG_COLOR) + + def test_tag_delete_view(self): + tag = self._create_tag() self.client.delete(reverse('rest_api:tag-detail', args=(tag.pk,))) self.assertEqual(Tag.objects.count(), 0) - def test_tag_edit(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_tag_document_list_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) + + response = self.client.get( + reverse('rest_api:tag-document-list', args=(tag.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['uuid'], force_text(document.uuid) + ) + + def test_tag_edit_via_patch(self): + tag = self._create_tag() + + self.client.patch( + reverse('rest_api:tag-detail', args=(tag.pk,)), + { + 'label': TEST_TAG_LABEL_EDITED, + 'color': TEST_TAG_COLOR_EDITED + } + ) + + tag.refresh_from_db() + + self.assertEqual(tag.label, TEST_TAG_LABEL_EDITED) + self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) + + def test_tag_edit_via_put(self): + tag = self._create_tag() self.client.put( reverse('rest_api:tag-detail', args=(tag.pk,)), @@ -73,48 +132,51 @@ class TagAPITestCase(APITestCase): } ) - tag = Tag.objects.first() + tag.refresh_from_db() self.assertEqual(tag.label, TEST_TAG_LABEL_EDITED) self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) - @override_settings(OCR_AUTO_OCR=False) - def test_tag_add_document(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) - - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE - ) - - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = document_type.new_document( - file_object=file_object, - ) + def test_document_attach_tag_view(self): + tag = self._create_tag() + document = self._document_create() self.client.post( reverse('rest_api:document-tag-list', args=(document.pk,)), - {'tag': tag.pk} + {'tag_pk': tag.pk} + ) + self.assertQuerysetEqual(document.tags.all(), (repr(tag),)) + + def test_document_tag_detail_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) + + response = self.client.get( + reverse('rest_api:document-tag-detail', args=(document.pk, tag.pk)) ) - self.assertEqual(tag.documents.count(), 1) + self.assertEqual(response.data['label'], tag.label) - @override_settings(OCR_AUTO_OCR=False) - def test_tag_remove_document(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_document_tag_list_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE + response = self.client.get( + reverse('rest_api:document-tag-list', args=(document.pk,)) ) + self.assertEqual(response.data['results'][0]['label'], tag.label) - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = document_type.new_document( - file_object=file_object, - ) - + def test_document_tag_remove_view(self): + tag = self._create_tag() + document = self._document_create() tag.documents.add(document) self.client.delete( - reverse('rest_api:document-tag', args=(document.pk, tag.pk)), + reverse( + 'rest_api:document-tag-detail', args=(document.pk, tag.pk) + ), ) self.assertEqual(tag.documents.count(), 0) diff --git a/mayan/apps/tags/urls.py b/mayan/apps/tags/urls.py index bc0f7bd63e..c477e49756 100644 --- a/mayan/apps/tags/urls.py +++ b/mayan/apps/tags/urls.py @@ -63,11 +63,11 @@ api_urls = [ url(r'^tags/(?P[0-9]+)/$', APITagView.as_view(), name='tag-detail'), url(r'^tags/$', APITagListView.as_view(), name='tag-list'), url( - r'^document/(?P[0-9]+)/tags/$', APIDocumentTagListView.as_view(), - name='document-tag-list' + r'^documents/(?P[0-9]+)/tags/$', + APIDocumentTagListView.as_view(), name='document-tag-list' ), url( - r'^document/(?P[0-9]+)/tags/(?P[0-9]+)/$', - APIDocumentTagView.as_view(), name='document-tag' + r'^documents/(?P[0-9]+)/tags/(?P[0-9]+)/$', + APIDocumentTagView.as_view(), name='document-tag-detail' ), ] diff --git a/mayan/apps/tags/views.py b/mayan/apps/tags/views.py index f4debb2e14..133a6caf68 100644 --- a/mayan/apps/tags/views.py +++ b/mayan/apps/tags/views.py @@ -126,7 +126,7 @@ class TagDeleteActionView(MultipleObjectConfirmActionView): result = { 'message': _('Will be removed from all documents.'), - 'submit_icon': _('fa fa-times'), + 'submit_icon': 'fa fa-times', 'submit_label': _('Delete'), 'title': ungettext( 'Delete the selected tag?', diff --git a/mayan/apps/user_management/apps.py b/mayan/apps/user_management/apps.py index 08a7e0a5a3..ddc721a655 100644 --- a/mayan/apps/user_management/apps.py +++ b/mayan/apps/user_management/apps.py @@ -37,8 +37,8 @@ def get_users(): class UserManagementApp(MayanAppConfig): app_url = 'accounts' + has_tests = True name = 'user_management' - test = True verbose_name = _('User management') def ready(self): diff --git a/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo index 875cfe531797a61b94a78077675e8f86cef7de67..c6625b80135dcc61fd887c7c5d0c8f540e3bd1ec 100644 GIT binary patch delta 674 zcmY+>KWGzi6u|L!X%bCrZJQVkwBofWO(6-nV3HCMBu+}vL0t?TP7;dPR%r~OB@&cu zI(bMaxTnQHDd(S2C!L)VL3DF+5OJ1%-*FB;c=x&AkGp&Kes4FqljwYl1z!k}BxlL5 z)C!G*{LM5fTfX{`9`n|P9S9TV8bAU?+v*uyvuFoYj)5kF!Pe_>dpBMW09<7{M+ z4Y`0RtY8)IVGTdw8B9|}UB*dVLoLuoE&K$va1X!J#49veKjq_Rae(vq8B^4kKis6* zIDJGUidQjV#}@BhXb z>dPE&X$KcEg_lu(Xbp7=+Lad4t~dnmwBWy>h8M?tb)5f#0}yI?amrUmMjvANYj2h@ zf1&f%AELfD5}iBak_mFsT?rUQ{93(bKCl~&*8Rt)m4bgqZ1?z`~gfU_N$jgI=GgONMx Lf9blF=nvx%AAe0i delta 1082 zcmZ|NPe>F|9Ki9ntEQ=GY5wUC_KG9}XWLzMg*|D14ndiCNGJ%0cG?zdS9VrKh!(ds zOzRMfL8lH8Yl~^yLgBRzb+Aj9-hk9C=n!=1&!J1-H*H>`2X8(z@6CI^-~8U(Z&_+j ze`u;)6tq3`z4UMNPWrls3vJ9R#C9}s2PVtUS#0Hb5nFH>EAb`n#Mju28(4*3@i6|t z5XuT6wg{0HqulIc-~!g;bv%Fz*nunM`M21`^A|jitwf7p67~A`Wq)EL&uv82fe&%f z2^pvpI*K3pxU(pUFGAHq9Ash?b>M5L13kcQe1o<49epTjgz&==+>c{8fEkS7D{R27 ztwIc9KkCX(;|aWn0o=e|;)@1$KZ(asf7u<>8-2zg4%Ph$JcIg}o+8PMb?m}-s1yB# ze3)pX>k8=Op;&HJ!EH@t$x-a0o2+r0&iHSmf`a7Sw!3UQQUJH z!{r-WMiMffNXe^a>f+^YnMzJeGit`-J~3k1Rw@>cZZ49S5=nQju{*)PyPMA?%F_WdbEgA2?yjoUEQayBTN>y;?oEcS=&aBEyC#x^>PR7Yf zwZ=4~B~?%>YSo#Q&Ya4tCu-G~Td3(syYDhrP%ju>ax&7n;biqTsvuR~y)Ck&sBTME z<%yHk`xVt=LbGMjx#bh;ky>NLDud, 2013 @@ -9,57 +9,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "إدارة المستخدم" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "البريد الإلكتروني" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "كلمة مرور جديدة" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "تأكيد كلمة المرور" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +73,20 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "مجموعات" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Users" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +121,161 @@ msgstr "تحرير المستخدمين الحاليين" msgid "View existing users" msgstr "عرض المستخدمين الحاليين" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "تم انشاء المستخدم \"%s\" بنجاح." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "يجب أن توفر ما لا يقل عن مستخدم واحد." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user and staff user deleting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user deleting is not allowed, use the admin interface " +"for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "تم مسح المستخدم \"%s\" بنجاح." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "خطأ أثناء حذف المستخدم \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "لا تتطابق كلمات المرور، حاول مرة أخرى." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "ارسال" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user and staff user password reseting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user password reseting is not allowed, use the admin " +"interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "نجحت إعادة تعيين كلمة المرور للمستخدم: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "خطأ أثناء إعادة تعيين كلمة المرور للمستخدم \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "إعادة كلمة السر للمستخدم: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "إعادة كلمة السر للمستخدمين %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo index c140e8308c96e340a4b8e41bbe411cf60a2cdef1..971c6004c89d7945c93f254d3dadae7759221ffb 100644 GIT binary patch delta 677 zcmY+>ze`(D6u|M5#KfOzY-}~4Vup%8+DKk#jOI}S>EL1=YP%>MqKQG;s%XU}AoL#y zBorN7ofH(K9Yn1z3Yh{9S&CF}bf~Tl`aQ4d;DPf#?_QF3?m73a_1w37;jQ{1gpX_^ zf0Lc$nvDk$w2L&Nflo1BS%1K0)+v0B8LYw_KEoAk!cBDIG4|jo_Tyi4i7ZQ(L!^O? zK4e2o?8Z2b<7Z6b8Ft_+s;I;0!7r!lB)}j_r7fV|b5A9IFwj!(XTqD56g455B`2yuw(m$SuC$$8WHuUStqI zVvzch-4w6wd1GF9SH=( zfzW{82uH(4e#_aaJFf#F!*BFQLy>&hnQ0hK%%m3+=~UD|k1P`{TXb+M_7Tca3j9P4fp}wxPrU!2X><@ z7ot*#lsHLaJ1@>)4PL_?cpJCjvH zPzQ7fr@7n-+{5|eGhysypka*=J=li_Fo{QS9`#LsVL#Sa6~~8hEB!k-iVsl-am~6EYT$PK1M&G!ycYW%42#v1HP=;vR9#nv^lqwkMd^oI diff --git a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po index ea0c98084a..c1fd0c4b89 100644 --- a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Iliya Georgiev , 2012 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Управление на потребители" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Електронна поща" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Нова парола" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Потвърждение на парола" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Групи" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Потребители" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,153 @@ msgstr "Редактиране на нови потребители" msgid "View existing users" msgstr "Преглед на съществуващи потребители" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Потребител \"%s\" е създаден успешно." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Трябва да изберете поне един потребител." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Изтриване на потребители от супер потребител и служител не е разрешено. Използвайте администраторския модул за тези случаи." +msgstr "" +"Изтриване на потребители от супер потребител и служител не е разрешено. " +"Използвайте администраторския модул за тези случаи." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Потребител \"%s\" е изтрит успешно." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Грешка при изтриването на потребител \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Паролата не съвпада. Опитайте отново." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Подаване" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Промяна на парола на потребители от супер потребител и служител не е разрешено. Използвайте администраторския модул за тези случаи." +msgstr "" +"Промяна на парола на потребители от супер потребител и служител не е " +"разрешено. Използвайте администраторския модул за тези случаи." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Успешна промяна на парола на потребител %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Грешка при промяна на парола на потребител \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Промяна на парола на потребител %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Промяна на парола на потребители %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo index b4488727f73bb6538d82a29331c3195ec5fa4e28..f8dc490c2edb80df7d7a2215a62b85c5fb47e47c 100644 GIT binary patch delta 685 zcmY+>O(;ZB6u|NGFyq@`#z%;^5z1)ZWY8#ORu+=5P?DZz(lBOZe3aCbow71vV`Zf% zi;=YzHf$}(&Q7vo>wjL)!mV?E@7`wax#!%+h68`@t-j<)7|lc*@k(?Orv?)vR3uW1 z7S>_RUC&@6>jXC7E|%aS2Ji&^c!?go#U8xF0sKO*NKU$nMXK27LpEd>yD^4yxPo!K z#}4czi#m=zOra*&MNPbin)n32DdGb4;%6LQkJqRdzsF|s%NrkB`45(2fXV3w>V5<@ z!4!sY7DsU3-G4wW;0ep|1^e(FmoZQ#lExgG`0487$4%sy5Fh%-F{T!r!ggFmeFd$m zhR~{Lf|CsX4bF5%rK=Y3H)w!!zOI|xO?@)%CziW*TB7aIq3^8~R}eJCX&=ue)r7Aw zUt}2miNvhk`-nqiF_snRV$ZXkWDzlSJuh=q~iKmmxiH&5Tv;5rn E1s&;3M*si- delta 1030 zcmZ|NJxmlq6bJBkd@6n*AmCT@#fTsA7Wa-1lPgRhmY{?LO*9eb-0|EyoWY&FBTz_V zL$omjd$F-FT3lkQF&Y|aY;1_Jur;wTSef{L%LWVMv1D=7Ka2RqU zQ47%`UB#bcn79FV!~5_!dpcpdg2S^y&`_kT|P1=}(1MN|oV3Kw}G z56T0L!c8Q11$H1ljkgkYVqqFeMiD#!m!MQ+72-#4()qP?{wu^8^c(uHaR<=_I0$9l zL3!YLD2c7YEPMq|zzq@cDYKKPAD)C|I0X%S3mKkk+j0W-Vtfx`iI(6YxD1m@L3wMk zM=Bu6pjb(8kTgkD8e-EybhS%HXnVIvuBc!VKn4;(np6adCQZH-`4;58%eNtAm5dQz z-f2>9yk^>iPIa##lUW?Ex|nApTMGltD&`rjFky}6s?$+FUD9(rtDKv&Q9u*vAIE`Z zV`ILn;#+sJ97pr4N-8w{G^w4ALsQzmiErB|Ijg{Z?w{rMV0+!khWbe3>&(!wm&, 2013 @@ -9,57 +9,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bs_BA\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Upravljanje korisnicima" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova lozinka" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Potvrdite lozinku" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +73,20 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupe" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Korisnici" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +121,155 @@ msgstr "Izmjeni postojeće korisnike" msgid "View existing users" msgstr "Pregledaj postojeće korisnike" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Korisnik \"%s\" uspješno kreiran." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Mora biti obebjeđen bar jedan korisnik." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user i staff user brisanja nisu dozvoljena, koristite administratorski interface za takve slučajeve" +msgstr "" +"Super user i staff user brisanja nisu dozvoljena, koristite administratorski " +"interface za takve slučajeve" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Korisnik \"%s\" uspješno obrisan." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Greška brisanja korisnika \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Lozinke se ne podudaraju, pokušajte ponovo." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Podnijeti" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user i staff user reset lozinke nije dozvoljen, koristite administratorski interface za takve slučajeve" +msgstr "" +"Super user i staff user reset lozinke nije dozvoljen, koristite " +"administratorski interface za takve slučajeve" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Uspješno resetovana lozinka za korisnika: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Greška resetovanja lozinke za korisnika \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetovanje lozinke za korisnika: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetovanje lozinke za korisnike: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo index fc052d0b9fb65fb3c27c23bc6411d8262fd12cd3..39672dd9ef91a92986bfa716f63a27b1187f6b0c 100644 GIT binary patch delta 551 zcmY+=yGjF55P;#yWn5L^#KlUBg>1-;6kb5EFy;kPEhMDVV2mMEKwG=TC$JJM zga{%w25Uup00SymT8M?9;D3@8abWg4bBZ}Ldl9`4w;m(@BO#(>j65f2$-IXTagAZ@ z;21u*^$Si?f8Ye_UXgK}N7XBXi@1SltfP*nxPX^f6luv5hY}Y{K9M;*cD=z->St7q z-%&LV`b7?TG=^%R6Rq!+>n%=m-*x>&wOBOJH;xwdCa&_nv^c2AI%wh@*6<7WusYD+ z@DD!4*!t(+kyfh-BbisG(R|SoB}; zzC_3ob?a!}H@#497*)GgYi#e7+WWpUPbg!?Q)VJ-SgBmfa+b9jb(1s`mSLrHiHuXx hntI;es?_aDIcJn?r>hm)>wz_oUTE(A^-2a0JU^a2KokG~ delta 894 zcmaLUF=!J}7{KwD*u=C}t!*__M4whcC0FiJ6CvOr#6i$ni&LG>+%uj{?#jJON}!OT zh=V!>aT4c(qR_z(X6h`62u?b>iHnny|943oeem-8-n)12zVFMYsrNJ8@6%(?1tZTq z!TiEJ#eACLhmlJQF@@uJ1dk8b1w6+33LeEfIExQ)2D^9xdsxOkntOlaB+l*=;ta>c zX@Zk%RM8x$;d$J`yZ9PC%#976H-|pM!|cC7^Wi?44}V6J{0}q<>+HZsLto$=``d|K zA@&GN<==+>L5FpIzYtgPI?m%0G?~9e8$Tcwh@W^Cr*cAASVE08Y~xon9ajKDB02~S`bTWL$148Z-kL2mWP3s zUMPbwmQ6RVJt)XH>PWZl`oV%&>20RxvK4tw55kN#@y>4gU8+>J9LFjyO1oGoUAF8? zwmq?Y%UV%wU;ANTRoz%sWYKoYmc3{d9a(fLPO, 2013 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Brugerstyring" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nyt password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Bekræft password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,153 @@ msgstr "Rediger eksisterende brugere" msgid "View existing users" msgstr "Se eksisterende brugere" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Bruger \"%s\" oprettet." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Der skal angives mindst én bruger." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Det er ikke tilladt at slette superbruger og personalebruger. Anvend administrator brugerfladen i disse tilfælde." +msgstr "" +"Det er ikke tilladt at slette superbruger og personalebruger. Anvend " +"administrator brugerfladen i disse tilfælde." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Bruger \"%s\" slettet." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fejl ved sletning af bruger \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "De to password stemmer ikke overens, prøv igen." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Det er ikke tilladt at nulstille Superbruger og personale brugeradgangskode. Anvend administrator brugerflade istedet." +msgstr "" +"Det er ikke tilladt at nulstille Superbruger og personale brugeradgangskode. " +"Anvend administrator brugerflade istedet." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Password er blevet nulstillet for bruger: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Fejl ved nulstilling af password for bruger \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Nulstiller password for bruger: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Nulstiller password for brugerne: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo index 9976a65f11768ba36a8e0ee073227597a8ae372f..2f4440da3a39ca8670db49f2f99202e6fe9be806 100644 GIT binary patch delta 1218 zcmY+@-%FEG7{Kwfn$u0qv|qN$-ZX70Z)|HTSr!#~6J=_4Wf1S&X-u|vws+HuqFn?* zbeBZZO{H0Cm8w#i5$bn z?DCl0C%*EsTv=hjwH@Wb9+VX)P$oEw{8W;Q1jxGmYbZx?6C3cJ+h0UU=n=|%FEN0h zQ0D!PWx26NLjw4@%bBPSBncJA0UX3pETIH`g)CluLt7UfjY3AelN;% zr%;Y?0%ZYHjqJayc$R?}meIy1u3el%C;dCvg-a+eenxrk7fR-9C;@zIBRgCDkULOH ze~oHlhT9fop-poBlDQOFnM}G~B(MbKyQ*d@yw;;zU z3)@L$bN?$Lx5pnw`3Bt%39J3o9;##_SxPxjL+wG?;$FAkjl1T%y(^VOUC3jM=s9D? za-6w*A*Igi;y;~IGM6b<{`j7H%16v_+>8zwk$55=F~hNNI52w79M`iMCzH3$A*-kp zMl>AZxtJM^8PP+DaHKy>37oN+Af{j-_eIvT09b>eX dNl~pgjLX_7W_4QI>SWTnla{at#@)mM%s+o1xH~o%)`BK2HpXmOYIlZ{bI^D;GH~wH+}w5 zYX1Vt-`8-TF{|bVi+&8hq`VF9X5ZW1v>%0-OaaP14ex^Ip%N*<9=Hs-%o?{*xDKb_ zb+{Y;1{L^ssPlioKH{5hta3aEJK%|Q|1eYqvv3H`!#(g#cprQRDuK`8Ap8>Q+|O_X z%Grxx6#8%t>iMmdU7Zw3d~=Ki$(RCEA~R4GJ`X=-96|cLzpI(~K*~|5b0=XRd>ZQg zm!T?-p+^qPPvblHM%u;1YX-q|JAx1806?DsE*u(%J4R10%i=g zsAQmt?QcQdQNk^euVbwZRJ9tdij)ka8qI^KI;QV$yYj3ysn9KxLzU1DR2i!}iP}vu z<`6oBY77$cG)GY-t>0Ks!(5!xQeZ7*y=>6!u+8`sS+N9P?dh6GB z-Wopb$}Vv>DLGqPE?RHF3&NZ^=VFJ$)*I*QhuaVCQUYds*&b`X z@oW2Lre`WUKAxR8Ve=D(hfdZ%=@@u)Dx06gXeY)Clc$d7k*>3(lRY1KVO;i-Dy2N; zqVS@9WL}ujz2rrHw&F#v=X_W1>GbNCJ74HM>xBz7Z^0F;@8(XQ+4!MzN5+P=WW`0q zx8=rWTr9bet^^L3%_ke*?q1KVo{4Rx7IOPZo$pF&@Q{kcOfmR zx!9(?Nt#V+Y(@#8;v}e4I2i`TQeqohC#)7r@?G)DcF9F?O)0(9>T>F- o8YOn67B#ktuhH2RoW0W6ivCH5&bC7T-#PzZ^{MlhyFbkQ1vwQ6&Hw-a diff --git a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po index 382fcb8474..798507971d 100644 --- a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po @@ -1,10 +1,11 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Berny , 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # tetjarediske , 2012 @@ -13,57 +14,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-11 21:48+0000\n" -"Last-Translator: Berny \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-24 23:01+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Benutzerverwaltung" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Alle Gruppen." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Alle Benutzer" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Mitglieder" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Kompletter Name" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "E-Mail" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Aktiv" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Verwendbares Passwort" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Neues Passwort" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Passwort bestätigen" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Erstellen" @@ -75,21 +77,21 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Gruppen" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Erstellen" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Benutzer" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Passwort" +msgid "Set password" +msgstr "Passwort festlegen" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +125,155 @@ msgstr "Benutzer bearbeiten" msgid "View existing users" msgstr "Benutzer anzeigen" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Gruppe %s bearbeiten" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Gruppe %s löschen?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Verfügbare Nutzer" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Gruppenmitglieder" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Mitglieder von Gruppe %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Benutzer %s bearbeiten" - -#: views.py:133 -msgid "Available groups" -msgstr "Verfügbare Gruppen" - -#: views.py:134 -msgid "Groups joined" -msgstr "Gruppen vereinigt" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Gruppen von Benutzer %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Benutzer \"%s\" erfolgreich angelegt" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Es muss mindestens ein Benutzer angegeben werden" +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die Administratoren-Oberfläche dafür." +msgstr "" +"Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die " +"Administratoren-Oberfläche dafür." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Benutzer \"%s\" erfolgreich gelöscht" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fehler beim Löschen des Benutzers \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Benutzer %s löschen?" +msgid "Edit user: %s" +msgstr "Benutzer %s bearbeiten" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Verfügbare Gruppen" + +#: views.py:205 +msgid "Groups joined" +msgstr "Gruppen vereinigt" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Die Benutzer %s löschen?" +msgid "Groups of user: %s" +msgstr "Gruppen von Benutzer %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Passwörter stimmen nicht überein, bitte noch einmal versuchen" +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Absenden" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die Administratoren-Oberfläche dafür." +msgstr "" +"Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die " +"Administratoren-Oberfläche dafür." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Passwort erfolgreich zurückgesetzt für Benutzer %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Fehler beim Zurücksetzen des Passworts für den Benutzer \"%(user)s\": %(error)s" +msgstr "" +"Fehler beim Zurücksetzen des Passworts für den Benutzer \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Passwort zurücksetzen für Benutzer %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Passwort zurücksetzen für die Benutzer %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo index 934b7744aa25321530ca3c13081879325339cda7..2d23361bc8aed5e1726f017bdcc6bb7e913e8394 100644 GIT binary patch delta 516 zcmZY5KTE?<6o=u{m{_%m*7#>?v1GDC!4{H=gSuP%0xk-1u2`gFM>idc_yOuzT-wD! zP@GlJy@-lyha#?hPZ9_5z{zuO$i4S>^Xi^vTLag;5Nd(W(S15k*HS#FJIvxe&f`lm z|HNhH-?)UfA+m@b>RweW;tmFQf;M(>6>o4)q$TeRLSAf6h^$~I@d4+Uf1qwWLfv@E z6glV69BQzx6$iUToj;=ndqWNOgSy_CjMsap!2%38U-lVjvP;xtS4c8>L=9F<$HC4L zuTg_Np>8}t4K_k@#UW8ELvz09&#-e$x(Q8_$kXaYy2p}4eg(LcpG;?lGF uwrv?hd-t$eI67!Fn)TzbH%y1A_Lo_6s--o*R9P>S{SCj|+p;|4|A%8_#y3p> delta 765 zcmci9&npCB9LMoz*JAx<{c0s1TMF&Uk5Ec3u7up2CNr^OM?15-DJ40$_;J`A{0pLJ zFD`rV9|)x!9Gw&gCnxXk%=i~P^~~#;XXbgnpLyn}`6;&l7K@xKS|`1m{!H(sABVWm zqG6?)u?AbPE4WW$2lq4Bjw{%Po7jr`IEY1@#4^gh-&l`r6-p&|P4zM8VPX#Dg*6<& zLtMoxG%*_SpKk}AU=#D#D22-?g&*;Z@b4(W^HqNEBb56Kl;D@xPJMOHKsIMhG)!p>Ma=UCZcwO|$Wj^Q{3J8P=NVBl!e)*0K?+lITgk<@N> zR~zd_Iy0=6i+kaC)wJ$+{9&ad4~XQE|LiUUwJe13#g`Z A0{{R3 diff --git a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po index 5e341ed74d..1e664c1955 100644 --- a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2012-12-12 06:07+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,52 +18,52 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "User management" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 #, fuzzy msgid "Members" msgstr "members" -#: apps.py:60 +#: apps.py:71 #, fuzzy msgid "Full name" msgstr "full name" -#: apps.py:63 +#: apps.py:74 #, fuzzy msgid "Email" msgstr "email" -#: apps.py:66 +#: apps.py:77 #, fuzzy msgid "Active" msgstr "active" -#: apps.py:72 +#: apps.py:83 #, fuzzy msgid "Has usable password?" msgstr "has usable password?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "New password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirm password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 #, fuzzy msgid "Create new group" msgstr "Create new groups" @@ -77,24 +77,24 @@ msgstr "delete" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 #, fuzzy msgid "Groups" msgstr "groups" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 #, fuzzy msgid "Create new user" msgstr "Create new users" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 #, fuzzy msgid "Users" msgstr "users" #: links.py:62 links.py:66 #, fuzzy -msgid "Reset password" +msgid "Set password" msgstr "reset password" #: permissions.py:10 @@ -129,60 +129,69 @@ msgstr "Edit existing users" msgid "View existing users" msgstr "View existing users" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, fuzzy, python-format msgid "Edit group: %s" msgstr "edit group: %s" -#: views.py:66 +#: views.py:64 #, fuzzy, python-format #| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Delete existing groups" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 #, fuzzy msgid "Members of groups" msgstr "members of group: %s" -#: views.py:94 +#: views.py:92 #, fuzzy, python-format msgid "Members of group: %s" msgstr "members of group: %s" -#: views.py:127 -#, fuzzy, python-format -msgid "Edit user: %s" -msgstr "edit user: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -#, fuzzy -msgid "Groups joined" -msgstr "groups" - -#: views.py:143 -#, fuzzy, python-format -msgid "Groups of user: %s" -msgstr "groups of user: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "User \"%s\" created successfully." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +#, fuzzy +#| msgid "Delete existing users" +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "Delete existing users" +msgstr[1] "Delete existing users" + +#: views.py:156 +#, fuzzy, python-format +#| msgid "Delete existing users" +msgid "Delete user: %s" +msgstr "Delete existing users" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." @@ -190,33 +199,63 @@ msgstr "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "User \"%s\" deleted successfully." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Error deleting user \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, fuzzy, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Delete existing users" +msgid "Edit user: %s" +msgstr "edit user: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +#, fuzzy +msgid "Groups joined" +msgstr "groups" + +#: views.py:214 #, fuzzy, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Delete existing users" +msgid "Groups of user: %s" +msgstr "groups of user: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +#, fuzzy +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "reset password" +msgstr[1] "reset password" + +#: views.py:274 +#, fuzzy, python-format +#| msgid "Reseting password for user: %s" +msgid "Change password for user: %s" +msgstr "Reseting password for user: %s" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." @@ -224,25 +263,29 @@ msgstr "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Successfull password reset for user: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Error reseting password for user \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Reseting password for user: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Reseting password for users: %s" +#, fuzzy +#~| msgid "Delete existing users" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo index b61d51bd26d0bdb41bf0058af87f095b77123b91..854c8d4bd5896236e8ec3a707b46e2560f5bf653 100644 GIT binary patch literal 4642 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 P4A;ILTJB1}+4;o3q?roG diff --git a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po index 8ebc0a5b00..9b060048cb 100644 --- a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po @@ -1,69 +1,70 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 # Roberto Rosario, 2012,2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-09 01:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:39+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Administración de usuarios" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos los grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos los usuarios." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Miembros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nombre completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Correo electrónico" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Activo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "¿Tiene contraseña utilizable?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nueva contraseña" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmar contraseña" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Crear nuevo grupo" @@ -75,21 +76,21 @@ msgstr "Borrar" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Crear nuevo usuario" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Usuarios" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Restablecer contraseña" +msgid "Set password" +msgstr "Asignar contraseña" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,156 @@ msgstr "Editar usuarios existentes" msgid "View existing users" msgstr "Ver usuarios existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" +"Lista separada por comas de llaves primarias de grupos a ser asignados a " +"este usuario." + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "Lista de llaves primarias de grupos a los que agregar el usuario." + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "¿Borrar el grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Usuarios disponibles" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Miembros de grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Miembros del grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar usuario: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponibles." - -#: views.py:134 -msgid "Groups joined" -msgstr "Grupos participados" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos de usuario: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Usuario \"%s\" creado con éxito." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Debe indicar al menos un usuario." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "Solicitud de eliminación de usuario realizada a %(count)d usuario " -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "Solicitud de eliminación de usuario realizada a %(count)d usuarios" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "Borrar usuario" +msgstr[1] "Borrar usuarios" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "Borrar usuario: %s" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "No se permite eliminar el super usuario y usuario de personal. Use la interfaz de administración para estos casos." +msgstr "" +"No se permite eliminar el super usuario y usuario de personal. Use la " +"interfaz de administración para estos casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Usuario \"%s\" eliminado con éxito." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Error eliminando el usuario \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "¿Borrar el usuario: %s?" +msgid "Edit user: %s" +msgstr "Editar usuario: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponibles." + +#: views.py:205 +msgid "Groups joined" +msgstr "Grupos participados" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "¿Borrar los usuarios: %s?" +msgid "Groups of user: %s" +msgstr "Grupos de usuario: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Las contraseñas no coinciden. Vuelva a intentarlo." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "Solicitud de cambio de contraseña realizada a %(count)d usuario" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "Solicitud de cambio de contraseña realizada a %(count)d usuarios" + +#: views.py:262 +msgid "Submit" +msgstr "Enviar" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "Cambiar contraseña de usuario" +msgstr[1] "Cambiar contraseñas de usuarios" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "Cambiar contraseñas para el usuario: %s" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "No se permite cambiar la contraseña del super usuario y del usuario de personal. Use la interfaz de administración para estos casos." +msgstr "" +"No se permite cambiar la contraseña del super usuario y del usuario de " +"personal. Use la interfaz de administración para estos casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Contraseña restablecida para el usuario: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Error restaurando la contraseña para el usuario \"%(user)s\": %(error)s " +msgstr "" +"Error restaurando la contraseña para el usuario \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Restaurando contraseña del usuario: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Restaurando la contraseña de los usuarios: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo index 27ae4a936c899f36a1633ec142bf18ebe8d36500..5b5b996ceb3c8f9eb76c633529ed3785ec5cfae1 100644 GIT binary patch delta 891 zcmXxiKWI}?6vy$CwlPVQ{;{oAn;Ks&+6qRSN771ATnY{r2me7$JESxgL9JLzz$J*m zLEM6(Ac}}~k%~O((jklBAWnj$gVn)FP$!q-;P?0Xdg;BN+{^7d=bn4tC;#-@p{MvssCx zaR9UE5Z^BFLz$Lw2&;GiUt=GBMg{ndNsLp5EDqrroI)l1235g2>Oh}x1b?9dr&`T+ z<9^h4Phf>^7a5LY36J3mJc-}Y#o@TwVJx5$xQDv3S2&0(xDVHm!uV@SNbf~W)ze#0 z71-jx2hL)AUgzJ;S|w3){Bd*8skfR=p!@C(7F00>)rr)U7+30-Tywo&o{oPdnyVsv z=t`U$@mrtLp*psU9`>f2pM<(km&(rd;=)3C{>H4GU7Wdk`KI?U{4UfsmLAEa-J?z> zm(OKtlaZuWvS~NtWJdGuSnYP?R$`)fZEmqRSIRq=inWbM!JCQJn`*1^{@7CEZNqCU LtyR54iASOTS|VFb delta 1245 zcmX}qTS!zv7{Ku{Z+Xko(#+eKX$kJKyIu-0A0h~$i!2dcUOc$R3)!yjSrvnj!b^li zu|z!xAwgb97Fi1-A_Jkv>ZQ)A^weX4y#zrI{lDYdz?|QlIdkTl`DXqWua%B{D@c2! zC`YMf)Qc%fHR1Fw9+b{hr83aKz1W*{6!-Cd5A$&*+5ZA%{97!-H9UYDn1;V_KmNu- zrN&eay?f}W#5{CkI<{gRp2BAA$1Hq?5?~1na0O+;515IY$@lMA$@?G7#S$hxjI}87 z+OdN8>M{)(ID*IUFZSjazic+03G3jtw|FlHgLxsdAZiieyJFl}sX;<2NPuRnjj- zvLr?3=AQj8tk)@=jB_-(s%!g9Bt3GwWp%O;DUy+5r?s7KX=P$-Kxgjf}2g0G@zJRHXi0(HHIzmBH4_Ri|teJ@JCD2N-|n>jisDsx+U%SO4_TG zre>Gd>+&^dkFTZaxXaV%@nm;gaQV&QKC3Sjbe%RLW{dWDyv;68gUjdDK5vWH7k!#> zGg_N@HTSF$>=`n87}9OT$1+!UHQMv`+{UyW)Ao`bv*!|b661PfdVN8!FW7VTGM|^V z(|Dek()LQ?t{rnn+p^2r*B27wi3#a^ZO_xa?EGfOnPXBXCYdvCFKRo+CqmfEGIB04 kVJ{L$hVZ`(a%L-!hO=r@*=}?&OXm{O8R2X?ko_d(A8HEU_W%F@ diff --git a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po index 3a3687b028..92316670c8 100644 --- a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Mehdi Amani , 2014 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "مدیریت کاربران" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "عضو" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "نام کامل" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "پست الکترونیکی" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "فعال" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "دارای کلمه عبور قابل قبول؟" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "کلمه عبور جدید" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "تائید کلمه عبور" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "گروه جدید" @@ -71,21 +72,21 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "گروه ها" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "کاربر جدید" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "کاربران" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "کلمه عبور جدید" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -119,114 +120,147 @@ msgstr "ویرایش کاربران موجود" msgid "View existing users" msgstr "دیدن کاربران موجود" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "ویرایش گروه : %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr " اعضای گروه : %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "ویرایش کاربر : %s" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "گروه های کاربر : %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "کاربر \"%s\" با موفقیت ساخته شد." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "باید حداقل یک کاربر ارئه شود." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "برای حذف از صفحه admin استفاده کنید." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "کاربر \"%s\" با موفقیت حذف شد." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "خطا در حذف کاربر \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" +msgstr "ویرایش کاربر : %s" + +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:205 +msgid "Groups joined" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "کلمه عبور یکسان نیست دوباره امتحان کنید." +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "گروه های کاربر : %s" -#: views.py:309 +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "ارسال" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "از صفحه admin برای این موارد استفاده کنید." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "ریست موفق کلمه عبور برای کاربر : %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "خطا در زمان ریست کلمه عبور کاربر: \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "ریست کلمه عبور کاربر: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "ریست کلمه عبور کابران : %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo index eb2734cea808011efe5b6598f9477120bd79ba8c..3f51979102e724914c477e45fc5f59feabb3761a 100644 GIT binary patch delta 1138 zcmYk*Pe>F|9Ki9nx~uN4nQ8w_v$3?)9N1k}t?gvwDgU8$T9C$elnr%aX4WMFJropl zDA>G3L=+_y6ianU5DGgK6hssqLOOJapn~jL-{0&6J@(D#&6~IHz2EQ6TyI%yTKH5K zTvU`!Y7=!jpwuCJTE>NPw_K?TT*8g`0BdjsYw@+;zvkcn@C^i&+QjoZl>fD&j8CG> z*NX6hCLXeGmL#G3mrunKZo@ENQL@KS$#r`M!b6C=-oyVC{GwCGz_yN3x0%!CRCFej*w5vLTU6 z=`7)GK=a#zykjzlY($E@OI33I|4Ivu-BjKqFG}f`#ihu(c2FgqA*y^FB*lwPj(~l5 z8Ij|X2>&np{2M+D?|qV665s{U)WR1(?@1+k_s1xa0mE_iW41BtOdGCcr?gRP!n9or9mCFAg|6^e^?)%ul{2Q8 wWYR9ohttI`;j@9_&FG6j^N^LBGmV@!W4T(!^tNZJF)KG?x~^>&=WDdGzpJ%^{Qv*} delta 1632 zcmZA0UuYaf9Ki9pG?%28#Qd>ZYil~u#wKmK<^IjYOczP=eszcr!KfliATuZ#K8qi79By)dAkzwHH&Qw^hO%x3 z@46Pdb&0&KTd4y$jPk%4lz9h-@l_-S^#R_8*YN@T z4)@~Ui90EetQ*18n8TMaM3$(ZkmS{GDBsSF9_qiF&MhWJu%CmG1qGB0PheaL9B1sJ zROnqij@MBF`V))T!FfD}C-D^4@pb$fui+WKV0q6C9L3&#>Mx}$5Dqb@S(FW5M9FXs zIf3})8l_3b(qz4qn<{R#L3)R_My+Jhj3r5F@^UHtLtK)ee1GxRpOrz$?Et_A*zTQ=GW zb;USL_+IPDoO;Hr>Y8Kisvnfq*`#B2+1H*Q>Z%hiE|2RlxTu{a$Mte*&RD~Sn@`L& z2GV;vBmfn6(^mS;@6%tTdJEZ!iR|PNou4dDJ<_<^xp%gZ%|D!-JgO(AiW8HE^R!Hf zaI*7(1nm?wy}EK0^97${Ftgg z=SS4Qte7?JdS&e^`SAExGxwriZO6W%`CcYc;Ok5kIO6*(pL)oP@qbd2K9|XqM ze6MW0xQOF=#YB?Snhw7C#8~TGG(k@7pEIuKhOR^0l7f+~wsxY@8=0xiqHknIcioml LoMm&PTetlWk*fx9 diff --git a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po index b463e91843..db29146015 100644 --- a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Christophe CHAUVET , 2014 @@ -13,57 +13,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-28 15:12+0000\n" -"Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestion des utilisateurs" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Tous les groupes." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Tous les utilisateurs." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membres" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nom complet" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Courriel" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Actif" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Possède un mot de passe utilisable ?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nouveau mot de passe" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmer le mot de passe" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Créer un nouveau groupe" @@ -75,21 +76,21 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Groupes" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Créer un nouvel utilisateur" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilisateurs" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Reinitialiser le mot de passe" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,157 @@ msgstr "Modifier des utilisateurs existants" msgid "View existing users" msgstr "Afficher les utilisateurs existants" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modification du groupe : %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Supprimer le groupe : %s ?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utilisateurs disponibles" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membres des groupes" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membres du groupe : %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modifier l'utilisateur : %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Groupes disponibles" - -#: views.py:134 -msgid "Groups joined" -msgstr "Groupes rejoints" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Membre des groupes : %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilisateur \"%s\" créé avec succès." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Vous devez indiquer au moins un utilisateur." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "La suppression des comptes super utilisateur et staff n'est pas autorisée ici, veuillez le faire via l'interface d'administration." +msgstr "" +"La suppression des comptes super utilisateur et staff n'est pas autorisée " +"ici, veuillez le faire via l'interface d'administration." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilisateur \"%s\" supprimé avec succès." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" -msgstr "Erreur lors de la suppression de l'utilisateur \"%(user)s\" : %(error)s" +msgstr "" +"Erreur lors de la suppression de l'utilisateur \"%(user)s\" : %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Supprimer l'utilisateur : %s ?" +msgid "Edit user: %s" +msgstr "Modifier l'utilisateur : %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Groupes disponibles" + +#: views.py:205 +msgid "Groups joined" +msgstr "Groupes rejoints" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Supprimer les utilisateurs : %s ?" +msgid "Groups of user: %s" +msgstr "Membre des groupes : %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Les mots de passe ne correspondent pas, veuillez réessayer." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Soumettre" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "La réinitialisation des mots de passe pour les comptes super utilisateur et staff n'est pas autorisée ici, veuillez le faire via l'interface d'administration." +msgstr "" +"La réinitialisation des mots de passe pour les comptes super utilisateur et " +"staff n'est pas autorisée ici, veuillez le faire via l'interface " +"d'administration." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Mot de passe ré-initialisé avec succès pour l'utilisateur : %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Erreur lors de la ré-initialisation du mot de passe pour l'utilisateur \"%(user)s\" : %(error)s" +msgstr "" +"Erreur lors de la ré-initialisation du mot de passe pour l'utilisateur " +"\"%(user)s\" : %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Ré-initialisation du mot de passe pour l'utilisateur : %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Ré-initialisation du mot de passe pour les utilisateurs : %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo index 7826a7171e4e3d1572f52b7d89b1b0be0a733b33..831fd2b26ef84e57e4322e4585dc9f8a809ab67b 100644 GIT binary patch delta 84 zcmX@fe3E%WtEsuJfvK*Mg@U1}m8qewfr)_uSAf56P-`3H9S6vdFiEz=|I_x(#fWb(Ua#g>Hq-b`xr<7 delta 84 zcmX@fe3E%WtEri;p`oskv4Vk-m8rR|fr)_uSAf56P-B%3Cb~w33WjD@M&=W5)bjWw=B1Y=rl(pd PWTs3GVT_)E2(2FAKZh6+Z8R)$6sZ`4jsVvOSPNz6+x QO-xU9PG5Y;&*BB?ves*Sundf-`;6I#3v0O0Zm%__9OrR8-oJX0%|<3pd!9x9%w;b1cn#}t9(C|zti~lQ!?)OpE7*fUCIff?bcA&Si$+`qBn5`74c21!iT60USJ2l!UTT9Q5@vqcD(QT8kOmHWQi%OC><0+C1Bw! z)r}!b%=1bT;(YUx8f8B*Bxn4g(krb(H*nOe zi=irW2-~qQMEx&tGs(m({zMDUQ~y@Hg*s>nb?`e>pdV2i|3E709^Q;$wZq+ZbgvcZj(11wa4Z}S4j#9Ml7&<*l}X!&oqRHGMZ*!+#q4Or ziuA;zy}QG-V84^g+rwEWof~)ZnQYt|%8Vql`3&ZqY$`Kn2ZpQqo%Gn0GsY&V{M@-f gqWC$`?kgS)o$=KVOl1nrzo`1sg_KjAtbXSE10)uG2LJ#7 delta 1608 zcmZvbO=w(I6vyw_q)C%Dv9W%%(e!E?^U=&WlW2<5&<0aMu^%C%8{PDE<~n)s=DqQ~ zHwkVG3RPMuLIaaBRO5NxyyH`0Y5BDfYo6kSMhSp*k?zyHijr-+BS^E>z4uXFzQ zzDox_AKUzSq~}9}6={#tKFS%hB!35g*kq3}JK+=@hDA687vY2OY!*MC^&1)AhI<*m znvGx2;$J}R_YHi+m`(FN&cg(L%lJ3kM}N4t6F&?InKD%T1bhgtLM5^W_rMLv&s^kh z3ce5L;g@h1{1fWnzo6#-14lUD3=-AGW3Ug-W&LAN6)eMp@B-Wo-+@oT51aHFG7vq$vDtYk(_U)aY)9Lp%Phys_-1V!FBkMJ&Vi#)(oaLp zI|fJKS*V0BWK1)@oADad{x=|7ny=yJD9*Pyy4&C3es~u?28RZXIRGc17Q6s8{t8qA z4l055jF+Jb`4}$1>+lTx6-x3V@~M#HQ0Kk48~q=}IY&T`uMSbiT!wlRSD`BU6iVW+ zpd|khj>A8oDjH&U^$)=b_%eJNz5(BZ*WeXsS#05F@G$&g2>q4GT>{FihmI;5ggW>j zSTsmra+VA576}3 zRFzECQcU|=^q7>ajQrabDQPLGVr2Rfbd}q71V>+!OjnrKXD(@FPtqjY6Y5}-v_rI_ zI@oaQlO1=)PrAUR&ZcY5HWL?@?Rav+{3n=fUFs?1&Yx~3scpp3x?gqHOKsph0#Vpm zSukhZhHZFBvJu5qvz$4JtwuJCQd{@Z%G!)g<2S8W^Zc-2R$SuPaC^l{Yj5xVol3y8 z-QGn0)_1+Pa(m|UrBZ%&&K76O&mC=D=^I_1&ljK1&pvBQrSe?qND&)2MLPM_*b9@u zOCw4-?ZuVIE_wAvz)^Ogu707C^$YdNVy*7^L7@`WkGFp6TWu}$zsfFQt?AWV*>1J^ zr*efQFRZvA@M33!iDv4;lp%?9-#{(!ZF|Vyy0z=A+~!HQ?%UU+IP_WN1$7rjwi$M& zID~3O>t46;Q(YgWLR*RA*iRZ!SamZt_NBPDtyWd3beFC;zut(F)U)?R?a_vdyU9w= R|DC2;-OS5q{nFs=+`q, 2016 @@ -11,57 +11,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-09-24 11:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestione utenti" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Tutti i gruppi" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Tutti gli utenti" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membri " -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Attivo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "La password è utilizzabile?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nuova password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Conferma password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Crea nuovo gruppo" @@ -73,21 +74,21 @@ msgstr "Cancella" msgid "Edit" msgstr "Modifica" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Gruppi" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Crea nuovo utente" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utenti" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Reset della password" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -121,114 +122,155 @@ msgstr "Modifica utenti " msgid "View existing users" msgstr "Visualizza utenti" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modifica gruppo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Cancellare il gruppo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utenti disponibili" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membri dei gruppi" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membri del gruppo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modifica utente: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Gruppi disponibili " - -#: views.py:134 -msgid "Groups joined" -msgstr "Gruppi aggiunti" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Gruppi per l'utente: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utente \"%s\" creato con successo." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Devi fornire almeno un utente." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Al super utente e utente non è consentito la cancellazione del personale, utilizzare l'interfaccia di amministrazione per questi casi." +msgstr "" +"Al super utente e utente non è consentito la cancellazione del personale, " +"utilizzare l'interfaccia di amministrazione per questi casi." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utente \"%s\" cancellato con successo." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Errore nella cancellazione dell'utente \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Cancellare l'utente: %s?" +msgid "Edit user: %s" +msgstr "Modifica utente: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Gruppi disponibili " + +#: views.py:205 +msgid "Groups joined" +msgstr "Gruppi aggiunti" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Cancellare gli utenti: %s?" +msgid "Groups of user: %s" +msgstr "Gruppi per l'utente: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "La password non corrisponde, riprova." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Invia" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Al super utente e utente non è consentito di reimpostare la password personale, utilizzare l'interfaccia di amministrazione per questi casi." +msgstr "" +"Al super utente e utente non è consentito di reimpostare la password " +"personale, utilizzare l'interfaccia di amministrazione per questi casi." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Password reimpostata per l'utente: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Errore per il reimpostamento della password per l'utente \"%(user)s\": %(error)s" +msgstr "" +"Errore per il reimpostamento della password per l'utente \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Reimposta la password per l'utente:%s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Reimposta la password per gli utenti:%s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo index 46da19310826bd004513570c0975565d11625c93..47673fa76d10d57cf4e276cb054bd0d807a2ad62 100644 GIT binary patch delta 1136 zcmY+@O-vI(7{>9bmXEdq0)7D^i-H2$q^$*{9MnWF+8_a=2V!u62AW`Nc3T@yBp!@j z!~{KPVmuf>IG7k4^`eQ1-ZbGN2Q@Loo5q6&yF#f4Iy>{uJG(d9mYU~2 zHTbU^N)Ojou34WkgZO+6H_C&x##G`W*5M zz|*LCU94h#bII$tii-FyuES@j30`9tzQHm4fm1llpKbWWa~ZYMpU4nXQB__jgxY|G zx5;iC8Did56Bz58k5rVJFQ|d5NNP+i+fcg`)gHjjIE+m=gUxsW`I%eXTJSz@!&kTk zKO<9`UtZfEERSo&IW0UuMJYLgihLXoU=;~=%8X4Havk&KpJTHX59gp4ty~nY8%}kit z&7dGbAz~>~aP=VMRFqoKi%}2arL=kw!Hb@RQuHE0(Nm$I=5nDTYF zmHBtl`47_kXHe^X4ev8%*?dQ^jl?f0Z^AytJ?+i>UP#Impz=rIy>JGqkTTo?6Ufi3 z@HYg{!Nc%#xC#CSwebz8=l_Pi>~FfsYT@0m1CFKRBTyYo!+tmiH^VpJ!|*&*0iVL% z@G{hM*Wn=4VlRRrScEH3^Xn{=C|>Wite0SaYXH@)8qzVy25?FLD6R%|{~EVHt3hh0*63D} z--YY4sXLj}psB_=>N2T&84Wc$(uLKL>AuK@a5dDj0|fe-WNJLC&s=9OdkB|2yEMQg z_B|f{4W`=oo&lyW{=n6s$Go2CBNvbSG5)A zkqCq4n>jP(61(WdaS}#FGo1#pErvD-t9HSw&X~7Y>ad$YWiTl#`u_ zydbW4)sR-6T5=WtbYM?XYAvynTgZHL}|hEE4le_;feZB9rN|6&KG(ny`WU{ zO0Hmo%1cv|YZp6bG6$b^QR1I2y2#Rc$<0MI|4d7)JI}?1wHur2ndMWq=(~XS{lH&f zTYKfwl}o|xHLM?4^j`{H5gwpZ3TcP!18~7+z#$R=nmy2##$1&$9 yOSy27=~|LAROAIJHt}}dX(7)Gq`C|0m%IB0|Fgrb3F-->+eJ1{;zIW)nSTM+A`kHZ diff --git a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po index acdee61588..ca5d5efa22 100644 --- a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Evelijn Saaltink , 2016 @@ -10,57 +10,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-10-28 08:58+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gebruikersbeheer" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Alle groepen." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Alle gebruikers." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Leden" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Volledige naam" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Actief" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Heeft bruikbaar wachtwoord?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nieuw wachtwoord" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Bevestig wachtwoord" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr " Maak nieuwe groep aan" @@ -72,21 +73,21 @@ msgstr "Verwijder" msgid "Edit" msgstr "Bewerken" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Groepen" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Maak nieuwe gebruiker aan" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Gebruikers" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Verander wachtwoord" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -120,114 +121,155 @@ msgstr "Bewerk bestaande gebruikers" msgid "View existing users" msgstr "Bekijk bestaande gebruikers" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Bewerk groep: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Verwijder de groep: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Beschikbare gebruikers" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Leden van de groepen" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Leden van de groep: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Bewerk gebruiker: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Beschikbare groepen" - -#: views.py:134 -msgid "Groups joined" -msgstr "Lid van groepen" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Groepen van gebruiker: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Gebuiker \"%s\" is succesvol aangemaakt." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "U dient minimaal één gebruiker in te voeren." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super gebruiker en medewerker verwijderen is niet toegestaan, gebruik de admin gebruiker voor deze zaken." +msgstr "" +"Super gebruiker en medewerker verwijderen is niet toegestaan, gebruik de " +"admin gebruiker voor deze zaken." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Gebruiker \"%s\" succesvol verwijderd." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fout tijdens het verwijderen van gebruiker \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Verwijder de gebruiker: %s?" +msgid "Edit user: %s" +msgstr "Bewerk gebruiker: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Beschikbare groepen" + +#: views.py:205 +msgid "Groups joined" +msgstr "Lid van groepen" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Verwijder de gebruikers: %s?" +msgid "Groups of user: %s" +msgstr "Groepen van gebruiker: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Wachtwoord is niet het zelfde, probeer het opnieuw." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Verstuur" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super gebruiker en medewerker wachtwoord aanpassen is niet toegestaan, gebruik de admin gebruiker voor deze zaken." +msgstr "" +"Super gebruiker en medewerker wachtwoord aanpassen is niet toegestaan, " +"gebruik de admin gebruiker voor deze zaken." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Succesvol wachtwoord aangepast voor gebruiker: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Fout tijdens het veranderen van het wachtwoord voor gebruiker \"%(user)s\": %(error)s" +msgstr "" +"Fout tijdens het veranderen van het wachtwoord voor gebruiker \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Wachtwoord aanpassen voor gebruiker: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Wachtwoord aanpassen voor gebruikers: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo index 358f2966ca962f525fa7555aeac60f6675048cb7..0bc19ec6f2ce3261c76981a5f77a283bf49b2563 100644 GIT binary patch delta 1281 zcmY+@Pe>F|9Ki9nrq-^S<^QyDEZ5v(YG!h^R#zc{E|#H12QQ86V(XtB+1XVBVId+R zIs}W0>Oh6b%;Df5OnD3sqb%gP5QC3pEvK#{N8Wgn^|su)t3EM zSH7%>5XWJTm`|yGd{M?9@pz9?m6*p`e1`k+B_6=HrT&f5`S+54@F3%5<;D9NP_FMp z$rr{ZrLt;(Mk5_#B@@U`W%+BsyI7BTl!;fd2G_6xKcW=BfxWnmel!`BiTbe)FQDYR zj(c&+JI^YWq9K(oVKwGaZd}1`T*YzxgfX-jY{y3>-=M6_XXFy~6J?^`D210XTRW@S zgfek2)yYZ>Vk7gb5gL*pjx34FpcM1~CDBuqL5UvlPz39NxW9- zUq^Z3FR0@d&SNdh?Bcy@_Wv}EZ91f~5F0C%UPjr91Rlb9l<|ki`{`XHDn2UQM_$9iqzpfsT9X9{1;uN zGd=)s`Q?-cSI0OyIb>_)g_H=&Cnq7wR-BL%LY}rY*I53maI&J+SAQkGpv~E?yWpf^ zYAiD`n@AV7Dqs7?`*b6$Tjw-090{Ac(PJ2at0Veod_LhOoTPryPRApfWtd#oqg$qC z_C~C}Qw9+jw%xRTEoCR&89VKyBHE}k5l^KZbnR5a$<_PEs)z05WX7H($=pmX?jO&s z`U6gHdDmZZjk|l(L3*`_Bh=2PDLQ zlOY%g6pFZVG0CF15r04zE`(865ur_Yf(zYMq;#Pu3idD1&-cxX5b-ege$G4h-gD27 zJ6{fL9o_i(P|KD<#u!H!n+aoHgx&j@ki#v;9Dx0>2U_?Lbl}5qI=0Wn-&bO;z(-iW z7O!u{_D`YweFYygX2Wcw^kMiR=5Mf<@4w^k-d1B!%?T*`7guUD!S=&G#tGZwiD)J0G3TI$9%)w)D1?u8W_$2%UYTqq5 z0`J4OVHZwwFb}ojG}|H@q!EW7SX~aegvO} z+fco~2OozIAk{P-lxYg~z?b29sLE|IY5ilUfNw%2@NGBs=dAf2gEG4d<@fkb@-lTf{zhib(t9Dz4r65fKV@Gls`Jbg;RyHJ65a;p+aL9Q^b_E7(RluH=2VFglo zbCRKwNpwJ>1KLX!{}lzJ$F?hKmoimVB+oGP_!NXPmnhNENMlm}m7$`KdIO(gC|ilz zLNZam^w`u_2?<33tM3xENup{Tj3sH|i9Kziz1 z`+pyr@rqu>vy}zURzt6xwL{^w`HwMdthLz0mGjlGVoT*7268^V#wANeAhiC7k5Nvg?OMw-S)b zjO!P?qP=$);!|=T9dm82xMv$Fu(5Hk>&L`DZ^R|9 diff --git a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po index b8edad641e..045bbb9a3f 100644 --- a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Annunnaky , 2015 @@ -11,57 +11,60 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-08-04 09:31+0000\n" -"Last-Translator: Daniel Winiarski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Zarządzanie użytkownikami" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Wszystkie grupy." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Wszyscy użytkownicy." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Członkowie" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Pełna nazwa" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Aktywny" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Posiada hasło?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nowe hasło" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Potwierdź hasło" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Utwórz nową grupę" @@ -73,21 +76,21 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupy" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Tworzenie nowego użytkownika" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Użytkownicy" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Zresetować hasło" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -121,114 +124,157 @@ msgstr "Edycja istniejących użytkowników" msgid "View existing users" msgstr "Zobacz istniejących użytkowników" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Edycja grupy: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Usunąć grupę: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Dostępni użytkownicy" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Członkowie grup" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Członkowie grupy: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Edytuj użytkownika: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Dostępne grupy" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupy użytkownika: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Użytkownik \"%s\" został utworzony pomyślnie." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Musi podać co najmniej jednego użytkownika." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user oraz staff user usuwanie nie jest możliwa , należy użyć interfejsu administratora w takich przypadkach." +msgstr "" +"Super user oraz staff user usuwanie nie jest możliwa , należy użyć " +"interfejsu administratora w takich przypadkach." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Użytkownik \"%s\" został usunięta." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Błąd podczas usuwania użytkownika \" %(user)s \": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Usunąć użytkownika: %s?" +msgid "Edit user: %s" +msgstr "Edytuj użytkownika: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Dostępne grupy" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Usunąć użytkowników: %s?" +msgid "Groups of user: %s" +msgstr "Grupy użytkownika: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Hasła nie pasują, spróbuj ponownie." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Wykonaj" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user oraz staff user reset nie jest możliwa , należy użyć interfejsu administratora w takich przypadkach." +msgstr "" +"Super user oraz staff user reset nie jest możliwa , należy użyć interfejsu " +"administratora w takich przypadkach." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Pomyślne resetowania hasła użytkownika:%s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Błąd podczas resetowania hasło użytkownika \" %(user)s \": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetowanie hasła użytkownika:%s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetowanie hasła dla użytkowników:%s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo index f67d8e88354d606a8a91ae5e2ef3cb03475fe0c6..44563829793119360a38ff94f42e32df625e0a15 100644 GIT binary patch delta 1016 zcmYk)OGs2v9LMqhSr zg7jLph)8JDfKbpP+O~@}QZ1@YSgRh3R(*eW?xH{UoX>rndmjIDo^;>os(fmX-ZkO? zWe4SK#4L>q>!^tHb!H9dVJnW}2Ast^J zAUFEqI3C0y%;Oat!S}cevow zGrlc^4IZLqyo{vAUg1`Jhg|lZY8(DW2isV#+9i>(>=>$j4tHV!wMFx&cK1;OKf^wJ zjg=$Z{NYBaJ=_#_gh5BB)D=)GETU33hg^1#N)vm81GtRW@e9u5NVC} zpK<=k&c#}4loqW}vAafan3QgXX0LE4+C!a#y%dEqpaZH*?V~7j%BHqJi?XGUb*t6S z(fUY7&Yy86yi#eVI5}d&Qx`6cm8)|NE0J`+n@GE<0VkQxrju@>FOg^(I^~}6r^iZT z#c}tjSN5|`Dv_jJpPNcL$xJrYzf_D}i=Xty3sYW!&lBaPwOGD7+}Inbt~BKstvKyD TC4YR>3&!%x{$%w{{A=VNuFPr{ delta 1493 zcmZwGPizcP9Ki9nv|Vlet)kV^R}|F_yIV>&5vjCJMbpFuJxsb!JF+{o*_o{ntOG70 zBt>r$5fKL*8h;KF1UGT(rHQ|h)Il7?!GXm0w>xc0yzJZ0oA=(l`MuwpxmbUDRpDJt z*;PfcsEyRK5v6wG*E#%AKFn3B0zcv+{DKSdCoaZlS;@N4R$M}V5@mjG*nb#hoeVC= z0GBCMP!~!KbpvY|cobg0MteaI9wj1qVr8}I^>=wgxijdK1Hz;u!Gkp*No@&U*>woqpm*;yM^b|U9mPnBKD zQAyg@QRSg>WYa~CK?0I2NRh1a9+zGif>L}<#bSj@v{ED+@{&n*q{wk`%*Cw8&Nooy zsN_A+)C%f!kqkCd*NhI#oowkgX%iS73>%&IO)jZh{9WpwPJcXJRvjtq&HI7Q=DZOn zWwagWw6W>%+|r$!)jo4fXKmj<=H*hVFKqZa9|8PJ^F~3n+Zzwua@cm9rq>b@%`lwBilNyc-%^K=vX4TZMzlQ8jDr+?YH{P zh~qn+YjxX!N$Nx_-f6`;tVCQV;>mboG#NcL`Z9X3y4QAx^7ar@vg3{O+9QdylW|-- zr#+nyoV0VoPI+O9dS-_FS!2c@@2WfyIofSTjCS0VGsw+ZllFARxE?bzvnG=, 2015 @@ -12,57 +12,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestão de utilizadores" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos os grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos os utilziadores." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Correio eletrónico" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Ativo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova senha" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Contrassenha" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Criar novo grupo" @@ -74,21 +75,21 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Criar novo utilziador" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilizadores" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Repor senha" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -122,114 +123,153 @@ msgstr "Editar utilizadores existentes" msgid "View existing users" msgstr "Ver utilizadores existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Eliminar o grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membros de grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membros do grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar utilizador: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponíveis" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos do utilizador: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilizador \"%s\" criado com sucesso." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Deve indicar pelo menos um utilizador." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Não é permitida a eliminação de administradores ou membros da equipa, utilize a interface de administrador para estes casos." +msgstr "" +"Não é permitida a eliminação de administradores ou membros da equipa, " +"utilize a interface de administrador para estes casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilizador \"%s\" eliminado com sucesso." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Erro ao eliminar o utilizador \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Eliminar o utilizador: %s?" +msgid "Edit user: %s" +msgstr "Editar utilizador: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponíveis" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Eliminar os utilizadores: %s?" +msgid "Groups of user: %s" +msgstr "Grupos do utilizador: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "As senhas não coincidem, tente novamente." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Submeter" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Não é permitido redefinir a senha de administradores ou de membros da equipa, utilize a interface de administrador para estes casos." +msgstr "" +"Não é permitido redefinir a senha de administradores ou de membros da " +"equipa, utilize a interface de administrador para estes casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Reposição de senha bem sucedida para o utilizador: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Erro ao redefinir a senha para o utilizador \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "A redefinir a senha para o utilizador: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "A redefinir a senha para os utilizadores: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo index 6b391e650886a6a76494ee2cb25e8c1ebdb11590..736a79890963426848b1bb5ac1ca7a9c4ce7520e 100644 GIT binary patch delta 1128 zcmYk*Jxmi}9LMpe%3E8pQWO;wPXz?Dv26-SU6jb65+v2d5TXY(*aTYW6^MzE!9fQT zOwiTMD4R(m4r<~+bil+I;~)dU$%KgkW8$EGf7dhdN$)=Qy!3gV|Npsr+IXjaZY^B) z$WYq34seb8j5&?3w{fF9+ipw+E@B9u<4$~wyYQpezV6jGJ$+@y)X*PB{jUi%K7pFA z7we3fGkrYlp<%@HCh{}$+;-zbti?st!f&t|KVUhoVjHewCkANr<5|=~7g6I=7{=?U zc^#}|eRI!ic!1jR6WoC>Q4=g>zHsCLu(*kvY(!?#Of!%l#&tNZ3qEfiz^)I6~vVz*cnpfXKZKN_-iadlG*MxML zF4X)zn85Qv@;}AHZ5nRjCLYEK@_!WPQ4ti8&6@Y91wWx8_>N@MjkXb0+Do_@w7h4b z|1sP>d)4(WRq6cy6)k*(i}%QlLhVYIihB%L&!w}|$DxR{IlTkQj*dv_*GB&@$Gi$3 zh8w-A#OVgue1Zq}Gf^w0rGz<%d%0S@dJ{G*G?#4@ljW_x+Wz#cHEBD}Y%V`)E>90n zWD3PU6-&Osu1K^a5Q}zMDFl41 delta 1606 zcmZ9ML17{_OA(xge-wXs#(YC6_NleD{T64TOEY-(E(X=;h}pd#jVcal8VeQ$m5 zC9xm`m5L%Ny7VA;(OP=(QK))gOzA^(B97(b42}hJh0IoW7fkln1>~}8P33);p5&v@5c?#m*5uW z-}Un!dH<(S`+W^>HD=9xOJ^I7Up)VTTN&qjJN`WomnlQ}55ZgDDX2h};3l{V`I)mk z#^4)pKl}`CfWJc>{1?>vf8h}4n?bzVco_D7kpTJ@G z71X+);V9H*&ww#lg=eAWuXzsilO*SxaXJKJ%20vKKxOzOyi7SlKfimRBl#%Q{6WuI zh?FLPD$xs2rFjhw!S|rne+;Gcmyj6D_i$}HovUJT1Zw?b8_{18J?kAQRAjG0De;!~pNAui zFF|57Kf!z9uTTNx*^Lzm2 z%5ad~sesu>vox9fGR`(qPXTpJS&erGP|2vYw|Sp})HzZ|CDZ+DA6U@98)}&%jk24Y zXu535N+wlE#_XW!GAVc&@tQp}U09V;GRyQOsDxeHOGjUmOn0Q9&s?`xCTZ@W-KhaK zN|Q|bZ;<7i7uH=HIqGUIb2eLYb~$xP*^Z=#%ni=8^?FY+H$S_aX10;UD`C~yAhR_W z;E1Enn?-ZNt=dMArmJyMH79*1wbj^0ac1j5R$1C-v*e5o7K1PqzAyDig7e*E3f%iL1JWFbWg@-kcvt gNZj5DF_YlH4UwXA=e7SYvkJ&3)KU7;!OwI50T@>R&Hw-a diff --git a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po index 77fb0ea810..a67937985f 100644 --- a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Aline Freitas , 2016 @@ -13,57 +13,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-10 19:25+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gerenciar usuários" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos os grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos os usuários." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome Completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "E-mail" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Ativo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "tem senha usável?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova senha" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmar senha" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Criar novo Grupo" @@ -75,21 +76,21 @@ msgstr "excluir" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Criar novo Usuário" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Usuários" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "redefinir senha" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,153 @@ msgstr "Editar usuários existentes" msgid "View existing users" msgstr "Ver os usuários existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo:%s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Apagar o grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Usuários disponíveis" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membros dos grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "membros do grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar usuário:%s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponíveis" - -#: views.py:134 -msgid "Groups joined" -msgstr "Grupos ingressados" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos de usuário:%s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Usuário \"%s\" criado com sucesso." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Deve fornecer pelo menos um usuário." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Excluir super usuário e usuário pessoal não é permitido, use a interface de administração para esses casos." +msgstr "" +"Excluir super usuário e usuário pessoal não é permitido, use a interface de " +"administração para esses casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Usuário \"%s\" removido com sucesso." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Erro ao excluir usuário \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Apagar o usuário: %s?" +msgid "Edit user: %s" +msgstr "Editar usuário:%s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponíveis" + +#: views.py:205 +msgid "Groups joined" +msgstr "Grupos ingressados" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Apagar os usuários: %s?" +msgid "Groups of user: %s" +msgstr "Grupos de usuário:%s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Senhas não coincidem, tente novamente." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Enviar" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Redefinir senha de super usuário e usuário pessoal não é permitido, use a interface de administração para esses casos." +msgstr "" +"Redefinir senha de super usuário e usuário pessoal não é permitido, use a " +"interface de administração para esses casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Redefinição de senha do usuário bem-sucedida: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Erro de redefinição de senha para o usuário \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Redefinindo senha para o usuário: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Redefinindo senha para os usuários: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo index ea975af9f4ca71121100c466296e188fdd8111ff..02bcf127d614644179be44848a720549ed5ef3a0 100644 GIT binary patch delta 991 zcmZY7J!q3b9LMpCP1825RvWdgR(*UaSR{~yylAFKi$+lstHnYGNl6+4Z6bMTi%ZZ9 zDuRPSrHg~2i(^0(UDP^sa1=zusV;&bI;e~I{XKa$kLT`l&ppp`cmMxAUq_n5_0I$D zJBBh!9idLRjEUg<1{zAD!x#@9#ePiUCY;92n0LmPo%`#!h4B^V{t4>)m$)6@;5Pi& zwr;-DaWmkd*^0gBLkqP~7&qcLcH&ta!wVS2E7*h2Pz$}r0bIi_{Dhi!9sBSP>OBvW z9W-?&r!&Jq6tj36_uwzbLEcv6F=WUbM@@Jdwb5DpK-LzW=c(>?W~NZj=NvENAosUW z8+@#B);G_c2k%fj{(?G+Z@3%1gs0Svp(0Jt?8K93;T-DuHPmE8AR*6|Sco#a;=38GS+q#42~ zJb*?c5YhySCI~x}6r|Jw9oiewBYMPHa)|w6XPv4o`l65Il zsVtSsS#z#7yHKdMe4eMSNX#FI_(O-SU?d(1`UBxWz?)9_Cv%I1N}*KrPh_gOxD^Tn zc`xh_1+8E-9*Q;pcCGZE$`tdpOrFQ((#6SC^KSP{%hhwt)yjHLxQ5c1a%q0GVHHcY U)rL7=F0f+m?ZZNAx$lSTAF;Y=sQ>@~ delta 1389 zcmZwGOKeP07{Ku}RV`JD*1Ou{QMB6X)H5R<5s!^$iFih?nPYmB>AjQtAezX8ZiE#R zLPVmmAyh~c8x{>BY}k-kcx`O35Rr(D_uo++BGW?CBaVdkc;ToKX8?h4iqU>W~ zBOb+SRZ!|8joEZuN7?8pHsEWNi9c`w*0Jh-T!k6Dj57W^wt-zFL#vTT)K-)YccBDg z;~TPjA|Bt(+m2^{b%2IU=!rdvQ@Fo?62U;+KNR=BLe@}UQI6~f$_r1ZDy6ssrGFDL zq%t@I9n^RRT!aHCNAwOC z;un-}VM?`9^RO8uliRTqk4yef(YQ^=SzN@^8Xur6@D}AwM{zDpQH?kiTX8OKKr$K? ziBL*QiRdGn8Mg&_QR0d+E%&k>@kiI;i=>h7D2i4(|@MKUFS4*6!}cqAeM zjm}B59J3YC2US*HkGI?X=>m5zlMZ zo16)Z4!VsFedC=k|5ex$`hm`S?om5qv=!)_vFLD}(u{Vs)g04#%lD7DUPf(?8@|rC z+HnKjV+HB%Rvmc9wUxDOr(Ja!->~4{C!$;1$qx7EBd!;1p3+Ue>S~bb{~h;b!eI5t z`-!p3+LFn(&c(W;GqrSi@nyvfdODW0C70`DGPO8a{8@3ic&&0@&1TEVhE~?3wC5h` z+BW#Ba#Lc`vrB>TvgX+pTZe(2vwN+;^#)gr-jOKm^337THrjvEr;mi5WA~a~qthm* z^C9yc9r7D~rk(ITH^*GZ4WIOt?ntP1LY;O!HJIG4cBZ@S qp2L=B$V0S-, 2013 @@ -10,57 +10,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-17 11:31+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Management utilizatori" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Toate grupurile." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Toți utilizatorii." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membri" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Numele întreg" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Activ" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Parolă nouă" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmați parola" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -72,21 +74,21 @@ msgstr "Șterge" msgid "Edit" msgstr "Editează" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupuri" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilizatorii" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Schimbare parolă" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -120,114 +122,155 @@ msgstr "Editați utilizatorii existenți" msgid "View existing users" msgstr "Vizualizați utilizatorii existenți" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modificați grupul: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Ștergeți grupul: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utilizatori disponibili" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membrii grupului: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modificați utilizatorul: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupuri disponibile" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupurile utilizatorului: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilizator \"%s\" creat cu succes." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Trebuie să furnizeze cel puțin un utilizator." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super-utilizator și personalul ștergerea utilizator nu este permisă, utilizați interfata de administrare pentru aceste cazuri." +msgstr "" +"Super-utilizator și personalul ștergerea utilizator nu este permisă, " +"utilizați interfata de administrare pentru aceste cazuri." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilizatorul \"%s\" a fost șters cu succes." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Eroare la ștergerea utilizator \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Ștergeți utilizatorul: %s?" +msgid "Edit user: %s" +msgstr "Modificați utilizatorul: %s" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" +msgstr "Grupuri disponibile" + +#: views.py:205 +msgid "Groups joined" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Parolele nu corespund, încercați din nou." +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "Grupurile utilizatorului: %s" -#: views.py:309 +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Trimiteţi" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super utilizator și parola de utilizator personalul resetarea nu este permisă, utilizați interfata de administrare pentru aceste cazuri." +msgstr "" +"Super utilizator și parola de utilizator personalul resetarea nu este " +"permisă, utilizați interfata de administrare pentru aceste cazuri." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Resetarea parolei cu succes pentru utilizator:% s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Eroare resetarea parola pentru utilizatorul %(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetarea parola pentru utilizator:% s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetarea parolei pentru utilizatori:% s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo index f378e611ee79395ca049db0307109f2d9807f50f..fb76306b9f4d0b7af35d9965ef41566b3dcce8f2 100644 GIT binary patch delta 1131 zcmY+@%WD%s9Ki8O?879ruc)=HkF^i`av=%ngNR_YJsE0gdy9yx4JA^$noU~-AyO|M z1PiHufr$22Oj|{&6cIsubaSW&5$#zJEa=h4_qSOO{^;g2Guh6}?>CcoZL3Y$&$T6Y z717DFpJ&pe)G=K1@h@gSd#Y@H57fj@8@hxzgluDEWZWcm|%MU|Ep7Yd*xpkWBiKfKm-O zjwdjS!?=#wE*dqY+lR+dc0PlncpcB8jgo;*9cik5Y{Vh#z)Ps(0!oQrU>$Da0sQ9n z1MHGBSIsEv#VV=)dm0u4AMhmglMU5#Q^Y|G<5k>;_fRrlL&hvD2O=~8*;Xj_lcaDFB-N;v0?QZ^}}Ts(;up2l2j$=7_WwA~XNO3rFm49l7| z)8lG%`oiT@CjX~w)syJeL*06$PYZX)y2E-X8VdP`&*&q`nUs|>r}P0MlZ(YxF>S=WkW6Pxw2XAh%msX76>(!~V%nHslJs=$ soG+1o<=gP)w<{iab6=_&g3s;c!kqocUMbwLm+dEoxx($dUH!}Z7l5>fTL1t6 delta 1581 zcmZA0Uu+ab9KiAEai!<=+QNxI1#v_wE$yv$1&W-S)<{fDDmGAJqJ*$=oA#3P?s9vz zAu$$enn(&ZaUs5F#Hg>PaBXd4TI9h8jhNXN690sd_}2K~18Kqo3E$t|mIo%Cer9HO zXMexn&MoY|wRhr9GI~YP()6A5FB_D4UB(;uN9&9#wGq3p4b#|)1Gov_4%bhI^K$5U z+|2dQ!|UIL>vJgk{eoMSnoz$pc#4I8L+|4j=53Aj^*zXv%A&0ImMQSMft>T1SxX<7STBN7Z#U8wj7T(0C@qZk^X6iSD zgV>E<;Y;`{N+J<DKT0*u^w{Qpk)k^*4TdlE>Ld^+F;!)g&Ha>%A@eTYU zT)%^FGG7a?4{#DCkyH38dME+;_y@-Mj<@kolz?Y>iTF>F`ezu#2yZ)PQ8qe`Qjt%Q zA4E_MjnX7?X_84hovJ@-68yeLv-)|GibyijI_Pp3U!-&T<^0!Axn#fI_!>dk`Rt0% z9~`#5;l(XTm4nYA-=6q_Mgi3xx*S;f8FL1MCe@Y1)|+G<4JQ;wrQ~NWr&ro@bU8Ru za%r7(IZ$bt(AvE3H>`FXaSBe=(bZ8$kGW1It2^9&_1L0YyAZV+PQNwgR&}{j`Y@k! zv|ZH&$7Z2atUqa~qt3W4+paras^rvAIB<2Yq>H7h{=lxD8ST;4%2{oX*!iNRjybNw zhU-rp^ENlOZGtYp`oQOmC2-f_v>_T_TVA!QqvBrFO@!&${f&{boO9x zcbXO-B%IW6#V)!9yILZZLcUP4%62h-#{0Wz*n1`RZeq|bj*QtOPF7dOYFA<=((AcCVa>Zt7R&@eA9cX5K8-PBs4!>Aq}Mcw~WvWo@qc)AFqLr_2h2 znP5e8$DCO-%WSzla?$eQtvhqG{<+}6MQxVNy!OvCyKZjqeq!)H^Cx>WvlVkAxbK?( ziCOX|xzWt~7v%nP-1(!W%s0G~op?ToS{@3wCWY79wnqG!^-N^y-Am}01RoUiaO;D} ELzhc0p#T5? diff --git a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po index 2ef9664596..fa8c639721 100644 --- a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # lilo.panic, 2016 @@ -9,57 +9,60 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-07-14 10:52+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ru\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n" +"%100>=11 && n%100<=14)? 2 : 3);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Управление пользователями" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Все группы" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Все пользователи." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Участники" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Полное имя" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Активен" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Есть действующий пароль?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Новый пароль" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Подтвердите пароль" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Создать новую группу" @@ -71,21 +74,21 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Группы" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Создать нового пользователя" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Пользователи" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Сбросить пароль" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -119,114 +122,157 @@ msgstr "Редактирование существующих пользоват msgid "View existing users" msgstr "Просмотр существующих пользователей" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Редактировать группу: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Удалить группу: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Доступные пользователи" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Участники групп" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Член групп: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Редактировать пользователя: %s." - -#: views.py:133 -msgid "Available groups" -msgstr "Доступные группы" - -#: views.py:134 -msgid "Groups joined" -msgstr "Участник групп" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Группы пользователя: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Пользователь \"%s\" создан." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Должен быть хотя бы один пользователь." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Удаление суперпользователя и персонала не допускается, используйте интерфейс администратора для этих случаев." +msgstr "" +"Удаление суперпользователя и персонала не допускается, используйте " +"интерфейс администратора для этих случаев." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Пользователь \"%s\" удален." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Ошибка при удалении пользователя \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Удалить пользователя: %s?" +msgid "Edit user: %s" +msgstr "Редактировать пользователя: %s." -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Доступные группы" + +#: views.py:205 +msgid "Groups joined" +msgstr "Участник групп" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Удалить пользователей: %s?" +msgid "Groups of user: %s" +msgstr "Группы пользователя: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Пароли не совпадают, попробуйте еще раз." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Подтвердить" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Сброс паролей суперпользователя и персонала не допускается, используйте интерфейс администратора для этих случаев." +msgstr "" +"Сброс паролей суперпользователя и персонала не допускается, используйте " +"интерфейс администратора для этих случаев." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Пароль пользователя %s сброшен." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Ошибка сброса пароля для пользователя \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Сброс пароля пользователя: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Сброс пароля для пользователей: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo index ea0561d947cd5a9635a273775fcac12d59b57e80..70f42d42be979a8557993bfcc327a7963aba9cc1 100644 GIT binary patch delta 87 zcmcb{a*bueE>m+|15;fi3k5?{D^o*V0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14E!X p6I~-i1w%6{BlC&xyZC()^U_Nb(}A+ZIq|`slPegbCqHH^1^`sN8ms^S delta 87 zcmcb{a*bueE>kmILqlC7V+8{vD^qh_0}}%St^j}CpwzO=;>`R!U6;g?R4WA|14FPn nLvsZK3oBFOiSN56cQQut`y}S2mnNnIRTSsM2YXI_#8?6VRS+7t diff --git a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po index 34ae367601..e5ac988b44 100644 --- a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po @@ -1,64 +1,66 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 08:53+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: sl_SI\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -70,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Skupine" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Uporabniki" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -118,114 +120,153 @@ msgstr "" msgid "View existing users" msgstr "" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +msgid "Groups of user: %s" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo index 9ea5073f9f2958948010f01a9c371cd56cab1120..fbf6dc4fe2ae1eb916676eff764bfb19dc82a30c 100644 GIT binary patch delta 610 zcmXxg%P#{#9Ki8uwM8FV^%jp!TnNkVYKtC`^x~CDBtjxh+SJCQqFTrP0gjCe2QCgI z5=n1dxru{F+(d=AIk*b(omIbN=Ci+@+5P=y?i=0$g{PonUl2`<4#qX3ld*1NBAzjT zWvs`~O75@=(M;Zi^4kG);5as73>$D6ow$X4n8yenqgRN6c;um%7q7U4zA7P-Xks_s zRs29dc^y?`fi9EA5nid-+2CoJ+B;UFQEm9qWby#WDMjcP6!~Y$dYU-OP5fbW?R<3y-K; zST#l!Jsb_|sut2T_uQ-+Pvy<5nb}k)6FaG>VrV-1LaL!FdL(L$6wjP{{;9-fI+sYZ ooHth%W{M%#Qt8OmVhc`}FVA_57r&lN8vppbR-}jc*dxG~B zWiNF<^(%FV`ZBNy^v{}!*}2AX(|)7U^&nyz7p{tuK3$fdiST4|{2~t1pTsE6;bDA@J-Ci?;h!iO9oW(^ ziHGQ4LJ8y+nw+mb(1_uQtx6rm8z|550C!*oW#cy}uOexeak&)9@UsVgktdSEmi`_R zfRwHV{+9$Pw(`pZ*NkkeUSnd4i5Eqgn77qmLsQw6SM0%prTIKD;-a3e*Phr>wR(?}bwOg~*FXCZ P!l3)VS-1MVqZIfJN#MSV diff --git a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po index 3957372185..57193dbedb 100644 --- a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Trung Phan Minh , 2013 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"Language: vi_VN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Quản lý người dùng" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Mật khẩu mới" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,151 @@ msgstr "Sửa người dùng" msgid "View existing users" msgstr "Xem người dùng" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Người dùng \"%s\" được tạo thành công." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Cần cung cấp ít nhất một user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user and staff user deleting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user deleting is not allowed, use the admin interface " +"for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Người dùng \"%s\" đã xóa thành công." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Lỗi xóa người dùng \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Mật khẩu không khớp, thử lại." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user and staff user password reseting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user password reseting is not allowed, use the admin " +"interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Reset mật khẩu thành công: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Lỗi reset mật khẩu \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Đang reset mật khẩu: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Đang reset mật khẩu: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo index 0a232bc2c5c3c219a98f922e96ea3a9588786b5d..30d0c122d92dc7b1e3a58a942977e550938754eb 100644 GIT binary patch delta 634 zcmXZZ%PT~26u|Lw$2`4e%y^VXb9X2sGZ{36g%ahFu(Du8n8M_dvLK0-q6WoEQI=@R z!bb5gDA`zf>|`k=zUR8X?r%Q#ocY~*e)s$ygXe+u=b-aI7-h^#<^wa#+%foJcpV}E z^kET}+i@M161QRr4q-8-Fof&q!VK2p5jNpHy73$HStdr#f1(g;_@e|zuni~h7Kaf2PVVvzdMYbVC6gh(27;U?DOp6xCA zh(BzSae8$pdq=GaxCnZ`&gYDSw9vF6O3Ys=r0oSRxsPE97v m)#=fWzD%ckBzxt~H3Dykm#-Jw?L=W=#tA2{E)r9QV= zrU+#->K4@Rs4mpJga=BffyfC5;97Xbj19N}aT>0N_h37G2G_y2&@_z4-g#-K3H#E58SFHn$W=sZ7$P4Z;V?X3^2ca7tGrbC15I=>S_@Wtq zgxe4o;6~WAs(#8{uoLlKcnJH`aWn?t4CEvIY1)ESc|!sD$YjU~bwf_D7xFFfoHeL? z4LBsSqb?V|GA_u0I#6vKpscP#eJoCnuxG7oGUbfWCOtbbUmNhbd$>bP?7>Of$p< z#W*{(TNv?+LWwBRn41PwT{WVy$jT&fPK(#p3JRD0-)l#B<-N`Wvh9t}rJjK7^~yfK z@c4o~dt^_y$72f}l?T;iRF7&gxmPjNpzwLT0omi1eO}@72ED$C-FVra>Bh~%tGku4Y;pcpA$PfudsLo$Sh~JIrQ7qxxzX~> z6{=InWs2i3s_D#9e!McbP#n!v=B6;C^mvx4W0~^HC-sRgy*z!*ocVYEQhxfMS6N$g Gr}PJ+Ps#QG diff --git a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po index 1a7f90fae0..abe8d14c45 100644 --- a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Translators: # Ford Guo , 2014 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "用户管理" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "电子邮件" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "新密码" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "确认密码" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "用户组" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "用户" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,147 @@ msgstr "编辑现有用户" msgid "View existing users" msgstr "查看现有用户" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "创建用户\"%s\"成功" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "必须提供至少一个用户" +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "不允许删除超级和管理用户,请使用管理接口来操作。" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "删除用户\"%s\"成功" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "删除用户: \"%(user)s\": %(error)s出错。" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "密码不匹配,请再试一次" +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "提交" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "不允许重置超级和管理用户的密码,请使用管理接口来操作。" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "重置用户:%s密码成功" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "重置用户\"%(user)s\"密码出错:%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "重置用户%s的密码" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "重置用户:%s的密码" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/tests/test_api.py b/mayan/apps/user_management/tests/test_api.py index d5cb0284f9..7aec08c631 100644 --- a/mayan/apps/user_management/tests/test_api.py +++ b/mayan/apps/user_management/tests/test_api.py @@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase from ..tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME @@ -16,12 +16,10 @@ from .literals import ( ) -class UserManagementUserAPITestCase(APITestCase): - """ - Test the user API endpoints - """ - +class UserManagementUserAPITestCase(BaseAPITestCase): def setUp(self): + super(UserManagementUserAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -33,6 +31,7 @@ class UserManagementUserAPITestCase(APITestCase): def tearDown(self): get_user_model().objects.all().delete() + super(UserManagementUserAPITestCase, self).tearDown() def test_user_create(self): response = self.client.post( @@ -249,12 +248,9 @@ class UserManagementUserAPITestCase(APITestCase): self.assertEqual(group.user_set.first(), user) -class UserManagementGroupAPITestCase(APITestCase): - """ - Test the groups API endpoints - """ - +class UserManagementGroupAPITestCase(BaseAPITestCase): def setUp(self): + super(UserManagementGroupAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -266,6 +262,7 @@ class UserManagementGroupAPITestCase(APITestCase): def tearDown(self): get_user_model().objects.all().delete() + super(UserManagementGroupAPITestCase, self).tearDown() def test_group_create(self): response = self.client.post( diff --git a/mayan/celery.py b/mayan/celery.py index 4c3995bc8b..ca8fc9cdad 100644 --- a/mayan/celery.py +++ b/mayan/celery.py @@ -2,12 +2,13 @@ from __future__ import absolute_import, unicode_literals import os -from celery import Celery from django.conf import settings +from .runtime import celery_class + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mayan.settings.production') -app = Celery('mayan') +app = celery_class('mayan') app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) diff --git a/mayan/conf.py b/mayan/conf.py new file mode 100644 index 0000000000..5ddcfc8185 --- /dev/null +++ b/mayan/conf.py @@ -0,0 +1,18 @@ +""" +This module should be called settings.py but is named conf.py to avoid a +class with the mayan/settings/* module +""" + +from __future__ import unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from smart_settings import Namespace + +namespace = Namespace(name='mayan', label=_('Mayan')) + +setting_celery_class = namespace.add_setting( + help_text=_('The class used to instanciate the main Celery app.'), + global_name='MAYAN_CELERY_CLASS', + default='celery.Celery' +) diff --git a/mayan/runtime.py b/mayan/runtime.py new file mode 100644 index 0000000000..16a382b63e --- /dev/null +++ b/mayan/runtime.py @@ -0,0 +1,5 @@ +from django.utils.module_loading import import_string + +from .conf import setting_celery_class + +celery_class = import_string(setting_celery_class.value) diff --git a/mayan/settings/base.py b/mayan/settings/base.py index d51aa6db70..485f19b51d 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -79,6 +79,7 @@ INSTALLED_APPS = ( 'smart_settings', 'user_management', # Mayan EDMS + 'cabinets', 'checkouts', 'document_comments', 'document_indexing', @@ -86,7 +87,9 @@ INSTALLED_APPS = ( 'document_states', 'documents', 'events', - 'folders', + # Disable the folders app by default + # Will be removed in the next version + # 'folders', 'linking', 'mailer', 'metadata', @@ -234,6 +237,8 @@ STATICFILES_FINDERS = ( 'compressor.finders.CompressorFinder', ) +TEST_RUNNER = 'common.tests.runner.MayanTestRunner' + # --------- Django compressor ------------- COMPRESS_CSS_FILTERS = ( 'compressor.filters.css_default.CssAbsoluteFilter', @@ -272,7 +277,6 @@ CELERY_ROUTES = {} CELERY_TASK_SERIALIZER = 'json' CELERY_TIMEZONE = 'UTC' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' -TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner' # ------------ CORS ------------ CORS_ORIGIN_ALLOW_ALL = True # ------ Django REST Swagger ----- diff --git a/mayan/settings/production.py b/mayan/settings/production.py index fa8a4c4ae6..908b6704e3 100644 --- a/mayan/settings/production.py +++ b/mayan/settings/production.py @@ -7,10 +7,12 @@ from . import * # NOQA ALLOWED_HOSTS = ['*'] TEMPLATES[0]['OPTIONS']['loaders'] = ( - 'django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - ) + ( + 'django.template.loaders.cached.Loader', ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + ) + ), ) CELERY_ALWAYS_EAGER = False diff --git a/mayan/settings/testing/base.py b/mayan/settings/testing/base.py index 663ff4fb9b..47b8dce5c9 100644 --- a/mayan/settings/testing/base.py +++ b/mayan/settings/testing/base.py @@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals from .. import * # NOQA -DEBUG = True INSTALLED_APPS += ('test_without_migrations',) TEMPLATES[0]['OPTIONS']['loaders'] = ( 'django.template.loaders.filesystem.Loader', diff --git a/mayan/settings/testing/db_mysql.py b/mayan/settings/testing/db_mysql.py new file mode 100644 index 0000000000..c4f7801168 --- /dev/null +++ b/mayan/settings/testing/db_mysql.py @@ -0,0 +1,13 @@ +from __future__ import unicode_literals + +from .base import * # NOQA + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'mayan_edms', + 'USER': 'root', + 'HOST': '127.0.0.1', + 'PORT': '3306', + } +} diff --git a/mayan/settings/testing/docker.py b/mayan/settings/testing/docker.py new file mode 100644 index 0000000000..7bfeca8048 --- /dev/null +++ b/mayan/settings/testing/docker.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import + +from ..production import * # NOQA + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'postgres', + 'USER': 'postgres', + 'HOST': 'localhost', + 'PORT': '5432', + } +} + +BROKER_URL = 'redis://127.0.0.1:6379/0' +CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' diff --git a/requirements/base.txt b/requirements/base.txt index 6c356cd62c..5b7ff5beee 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,15 +6,16 @@ cssmin==0.2.0 django-activity-stream==0.6.3 django-autoadmin==1.1.1 -django-celery==3.1.17 +django-celery==3.2.1 django-colorful==1.2 django-compressor==2.1 django-cors-headers==1.2.2 django-downloadview==1.9 django-formtools==2.0 django-pure-pagination==0.3.0 +django-mathfilters==0.4.0 django-model-utils==2.6.1 -django-mptt==0.8.7 +django-mptt>=0.8.7 django-qsstats-magic==0.7.2 django-rest-swagger==0.3.10 django-stronghold==0.2.8 @@ -30,7 +31,7 @@ pycountry==1.20 pyocr==0.4.5 python-dateutil==2.5.3 python-gnupg==0.3.9 -python-magic==0.4.12 +python-magic==0.4.13 pytz==2016.7 -sh==1.12.9 +sh==1.12.11 diff --git a/requirements/build.txt b/requirements/build.txt new file mode 100644 index 0000000000..f1edda5463 --- /dev/null +++ b/requirements/build.txt @@ -0,0 +1,4 @@ +# requirements/build.txt +twine==1.9.1 + +wheel==0.29.0 diff --git a/requirements/common.txt b/requirements/common.txt index c44993f923..95b179e0bf 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -1,2 +1,2 @@ -r base.txt -Django==1.10.5 +Django==1.10.7 diff --git a/requirements/development.txt b/requirements/development.txt index 5ccc8383f0..40266f5b6f 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -1,5 +1,4 @@ # requirements/development.txt --r common.txt Werkzeug==0.11.15 django-debug-toolbar==1.6 @@ -14,6 +13,5 @@ safety==0.5.1 transifex-client==0.12.2 -wheel==0.29.0 - +-r build.txt -r testing-base.txt diff --git a/requirements/documentation.txt b/requirements/documentation.txt index 39a179f93c..ad15512f47 100644 --- a/requirements/documentation.txt +++ b/requirements/documentation.txt @@ -1,4 +1,4 @@ -Sphinx==1.5.1 +Sphinx==1.5.3 sphinx-autobuild==0.6.0 sphinxcontrib-blockdiag==1.5.5 diff --git a/setup.py b/setup.py index 7572512447..d16d380c8c 100644 --- a/setup.py +++ b/setup.py @@ -56,43 +56,44 @@ def find_packages(directory): return packages install_requires = """ -Django==1.9.11 -Pillow==3.1.2 -PyYAML==3.11 -celery==3.1.19 +Pillow==4.0.0 +PyYAML==3.12 +celery==3.1.24 cssmin==0.2.0 -django-activity-stream==0.6.0 +Django==1.10.7 +django-activity-stream==0.6.3 django-autoadmin==1.1.1 -django-celery==3.1.17 -django-colorful==1.1.0 -django-compressor==2.0 -django-cors-headers==1.1.0 +django-celery==3.2.1 +django-colorful==1.2 +django-compressor==2.1 +django-cors-headers==1.2.2 django-downloadview==1.9 -django-filetransfers==0.1.0 -django-formtools==1.0 +django-formtools==2.0 django-pure-pagination==0.3.0 -django-model-utils==2.4 -django-mptt==0.8.0 +django-mathfilters==0.4.0 +django-model-utils==2.6.1 +django-mptt>=0.8.7 django-qsstats-magic==0.7.2 -django-rest-swagger==0.3.4 -django-stronghold==0.2.7 -django-suit==0.2.16 +django-rest-swagger==0.3.10 +django-stronghold==0.2.8 +django-suit==0.2.23 django-widget-tweaks==1.4.1 djangorestframework==3.3.2 djangorestframework-recursive==0.1.1 -fusepy==2.0.2 +fusepy==2.0.4 pdfminer==20140328 -pycountry==1.19 -pytesseract==0.1.6 -python-dateutil==2.4.2 +pycountry==1.20 +pyocr==0.4.5 +python-dateutil==2.5.3 python-gnupg==0.3.9 -python-magic==0.4.10 -pytz==2015.4 -sh==1.11 +python-magic==0.4.13 +pytz==2016.7 +sh==1.12.11 """.split() with open('README.rst') as f: readme = f.read() + with open('HISTORY.rst') as f: history = f.read() diff --git a/tox.ini b/tox.ini index a64387cd66..25f3cdf28e 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ basepython = py35: python3.5 commands= - coverage run {envdir}/bin/django-admin.py runtests --settings=mayan.settings.testing --nomigrations + coverage run {envdir}/bin/django-admin.py test --mayan-apps --settings=mayan.settings.testing --nomigrations deps = -rrequirements/testing-no-django.txt