diff --git a/README.md b/README.md index 7062458798..886594c7fd 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,21 @@ Phraseanet 4.0 - Digital Asset Management application ===================================================== -[![Build Status](https://secure.travis-ci.org/alchemy-fr/Phraseanet.png?branch=master)](http://travis-ci.org/alchemy-fr/Phraseanet) -#Features : + + +[![CircleCI](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master.svg?style=shield)](https://circleci.com/gh/alchemy-fr/Phraseanet/tree/master) +# Features : - Metadata Management (include Thesaurus and DublinCore Mapping) - RestFull APIS (See Developer Documentation https://docs.phraseanet.com/Devel) - Bridge to Youtube/Dailymotion/Flickr -#Documentation : +# Documentation : https://docs.phraseanet.com/ -#Installation : +# Installation : You **must** not download the source from GitHub, but download a packaged version here : @@ -21,12 +23,15 @@ https://www.phraseanet.com/download/ And follow the install steps described at https://docs.phraseanet.com/Admin/ -#Development : +# Development : For development purpose Phraseanet is shipped with ready to use development environments using vagrant. See https://docs.phraseanet.com/Devel/ -#License : +# License : Phraseanet is licensed under GPL-v3 license. + + +[![Build Status](https://secure.travis-ci.org/alchemy-fr/Phraseanet.png?branch=master)](http://travis-ci.org/alchemy-fr/Phraseanet) diff --git a/lib/Alchemy/Phrasea/Controller/Prod/BasketController.php b/lib/Alchemy/Phrasea/Controller/Prod/BasketController.php index 191cc6082a..6435d80b7d 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/BasketController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/BasketController.php @@ -48,13 +48,21 @@ class BasketController extends Controller ]); } + /** + * @return EntityManagerInterface + */ + private function getEntityManager() + { + return $this->app['orm.em']; + } + public function createBasket(Request $request) { $basket = new Basket(); $basket->setName($request->request->get('name', '')); $basket->setUser($this->getAuthenticatedUser()); - $basket->setDescription($request->request->get('desc')); + $basket->setDescription($request->request->get('description')); $records = RecordsRequest::fromRequest($this->app, $request, true); @@ -77,6 +85,14 @@ class BasketController extends Controller return $this->app->redirectPath('prod_baskets_basket', ['basket' => $basket->getId()]); } + /** + * @return BasketManipulator + */ + private function getBasketManipulator() + { + return $this->app['manipulator.basket']; + } + public function deleteBasket(Request $request, Basket $basket) { $this->getBasketManipulator()->removeBasket($basket); @@ -255,20 +271,4 @@ class BasketController extends Controller { return $this->render('prod/Baskets/Create.html.twig'); } - - /** - * @return EntityManagerInterface - */ - private function getEntityManager() - { - return $this->app['orm.em']; - } - - /** - * @return BasketManipulator - */ - private function getBasketManipulator() - { - return $this->app['manipulator.basket']; - } } diff --git a/lib/Alchemy/Phrasea/Controller/Thesaurus/ThesaurusXmlHttpController.php b/lib/Alchemy/Phrasea/Controller/Thesaurus/ThesaurusXmlHttpController.php index 2e970e51d8..b5a2ff441e 100644 --- a/lib/Alchemy/Phrasea/Controller/Thesaurus/ThesaurusXmlHttpController.php +++ b/lib/Alchemy/Phrasea/Controller/Thesaurus/ThesaurusXmlHttpController.php @@ -950,6 +950,14 @@ class ThesaurusXmlHttpController extends Controller return [$term, $context]; } + /** + * @return \unicode + */ + private function getUnicode() + { + return $this->app['unicode']; + } + private function getBranchesHTML($bid, DOMElement $srcnode, &$html, $depth) { $tid = $srcnode->getAttribute('id'); @@ -1088,6 +1096,42 @@ class ThesaurusXmlHttpController extends Controller return json_encode($ret, JSON_PRETTY_PRINT); } + private function getBrancheJson($bid, DOMElement $srcnode, &$ret, $depth) + { + $tid = $srcnode->getAttribute('id'); + $nts = 0; + $allsy = array(); + for ($n = $srcnode->firstChild; $n; $n = $n->nextSibling) { + if ($n->nodeName == 'sy') { + $t = $n->getAttribute('v'); + $allsy[] = array( + 'id' => $n->getAttribute('id'), + 't' => $t, + 'lng' => $n->getAttribute('lng'), + 'bold' => (bool)$n->getAttribute('bold'), + ); + } elseif ($n->nodeName == 'te') { + $nts++; + } + } + + $nret = array( + 'id' => $tid, + 'nts' => $nts, + 'synonyms' => $allsy, + 'children' => array(), + ); + + for ($n = $srcnode->firstChild; $n; $n = $n->nextSibling) { + if ($n->nodeName == 'te') { + if ($n->getAttribute('open')) { + $nret['children'][] = $this->getBrancheJson($bid, $n, $ret['children'], $depth + 1); + } + } + } + + return $nret; + } public function openBranchesXml(Request $request) { @@ -1160,43 +1204,6 @@ class ThesaurusXmlHttpController extends Controller return new Response($zhtml, 200, array('Content-Type' => 'text/xml')); } - private function getBrancheJson($bid, DOMElement $srcnode, &$ret, $depth) - { - $tid = $srcnode->getAttribute('id'); - $nts = 0; - $allsy = array(); - for ($n = $srcnode->firstChild; $n; $n = $n->nextSibling) { - if ($n->nodeName == 'sy') { - $t = $n->getAttribute('v'); - $allsy[] = array( - 'id' => $n->getAttribute('id'), - 't' => $t, - 'lng' => $n->getAttribute('lng'), - 'bold' => (bool)$n->getAttribute('bold'), - ); - } elseif ($n->nodeName == 'te') { - $nts++; - } - } - - $nret = array( - 'id' => $tid, - 'nts' => $nts, - 'synonyms' => $allsy, - 'children' => array(), - ); - - for ($n = $srcnode->firstChild; $n; $n = $n->nextSibling) { - if ($n->nodeName == 'te') { - if ($n->getAttribute('open')) { - $nret['children'][] = $this->getBrancheJson($bid, $n, $ret['children'], $depth + 1); - } - } - } - - return $nret; - } - private function getBrancheXML($bid, DOMElement $srcnode, &$html, $depth) { $tid = $srcnode->getAttribute('id'); @@ -1428,21 +1435,26 @@ class ThesaurusXmlHttpController extends Controller $html = ''; $sbid = (int) $request->get('sbid'); + $type = $request->get('typ'); try { $databox = $this->findDataboxById($sbid); + if ($type === "CT") { + $dom = $databox->get_dom_cterms(); + $html = "" . '
  • {{ baseId|bas_labels(app) }} - {{ "Activer" | trans }}> + {{ "Activer" | trans }}>
  • {% endfor %} @@ -375,6 +375,10 @@ } else if(submitLink.hasClass('reload-tree')) { AdminApp.LeftView.reloadTree('bases:bases', true); } + //display message + if (typeof datas.msg !== "undefined") { + alert(datas.msg); + } } else { alert(datas.msg); } diff --git a/templates/web/admin/editusers_timelimit.html.twig b/templates/web/admin/editusers_timelimit.html.twig index b57f04556e..12009c600d 100644 --- a/templates/web/admin/editusers_timelimit.html.twig +++ b/templates/web/admin/editusers_timelimit.html.twig @@ -37,41 +37,45 @@ diff --git a/templates/web/admin/editusers_timelimit_sbas.html.twig b/templates/web/admin/editusers_timelimit_sbas.html.twig index dc53730c44..8c795acba1 100644 --- a/templates/web/admin/editusers_timelimit_sbas.html.twig +++ b/templates/web/admin/editusers_timelimit_sbas.html.twig @@ -33,45 +33,48 @@ diff --git a/templates/web/admin/users.html.twig b/templates/web/admin/users.html.twig index 3c424a14e1..2f10642b9c 100644 --- a/templates/web/admin/users.html.twig +++ b/templates/web/admin/users.html.twig @@ -54,6 +54,9 @@ + + +
    {{ 'Apply a template' | trans }} @@ -77,45 +80,45 @@ - - - - - - - - @@ -207,8 +210,6 @@ {% set n_par_page = 50 %} - - @@ -268,11 +269,11 @@ var sort = $('input', $this).val(); if ((sort == $('#users_page_form input[name="srt"]').val()) - && ($('#users_page_form input[name="ord"]').val() == 'asc')) { - var ord = 'desc'; + && ($('#users_page_form input[name="ord"]').val() == 'ASC')) { + var ord = 'DESC'; } else { - var ord = 'asc'; + var ord = 'ASC'; } $('#users_page_form input[name="srt"]').val(sort); @@ -434,7 +435,7 @@ }); $('#users tbody tr, #users tbody td').on('dblclick', function (evt) { - $('#users_page_form .user_modifier').trigger('click'); + $('.user_modifier').trigger('click'); }); $('#users tbody tr, #users tbody td').on('click', function (evt) { @@ -543,7 +544,7 @@ return false; }); - $('#users_page_form .user_modifier').on('click', function () { + $('.user_modifier').on('click', function () { var users = p4.users.sel.join(';'); if (users === '') { return false; @@ -564,7 +565,7 @@ return false; }); - $('#users_page_form .user_deleter').on('click', function () { + $('.user_deleter').on('click', function () { var users = p4.users.sel.join(';'); if (users === '') { return false; @@ -649,6 +650,26 @@ }); } }); + + $("#users_page_form .input-mini").keydown(function (e) { + if (e.which == 13) { + //prevent form from being submitted + e.preventDefault(); + } + }); + $("#users_page_form .input-mini").keyup(function (e) { + if (e.which == 13) { + e.preventDefault(); + var form = $('#users_page_form'); + var current_page = parseInt($('.input-mini').val()); + var perPage = parseInt($('select[name="per_page"]', form).val()); + current_page = isNaN(current_page) || current_page < 1 + || current_page > {{ pages|floor }} ? 1 : current_page; + var offset_start = (current_page-1) * perPage; + $('input[name="offset_start"]', form).val(offset_start); + $('#users_page_form').trigger('submit'); + } + }); }); function exportlist() diff --git a/templates/web/common/index_bootstrap.html.twig b/templates/web/common/index_bootstrap.html.twig index 5a70b3351d..0b933db901 100644 --- a/templates/web/common/index_bootstrap.html.twig +++ b/templates/web/common/index_bootstrap.html.twig @@ -20,6 +20,10 @@ + + {% block rss %}{% endblock %} {% block javascript %}{% endblock %} diff --git a/templates/web/common/menubar.html.twig b/templates/web/common/menubar.html.twig index 2c63f600a1..24fdc6b267 100644 --- a/templates/web/common/menubar.html.twig +++ b/templates/web/common/menubar.html.twig @@ -134,7 +134,7 @@ {% endif %}
  • - + {{ 'phraseanet:: aide' | trans }} diff --git a/templates/web/developers/applications.html.twig b/templates/web/developers/applications.html.twig index 1152c1589d..63da01ba29 100644 --- a/templates/web/developers/applications.html.twig +++ b/templates/web/developers/applications.html.twig @@ -54,7 +54,7 @@
    diff --git a/templates/web/prod/index.html.twig b/templates/web/prod/index.html.twig index ca81ae2ab4..6e8d7118d6 100644 --- a/templates/web/prod/index.html.twig +++ b/templates/web/prod/index.html.twig @@ -143,6 +143,8 @@ $(document).ready(function(){ prodApp.appEvents.emit('workzone.doRemoveWarning', "{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), "warning_on_delete_story") %}true{% else %}false{% endif %}"); + prodApp.appEvents.emit('search.setFilterFacet', "{% if app['settings'].getUserSetting(app.getAuthenticatedUser(), "facet") %}{{ app['settings'].getUserSetting(app.getAuthenticatedUser(), "facet") }}{% else %}false{% endif %}") + }); @@ -662,34 +664,50 @@
    +
    +

    {{ 'index::advance_search: facet' | trans }}

    + {% set facetFilter = app['settings'].getUserSetting(app.getAuthenticatedUser(), 'facet') %} + +
    -
    -
    -
    -
    - -   - -   - -
    +
    +
    +
    + +   + +   +
    +
    +
    -
    +
    +
    + + +
    -
    +
    -
    -
    +
    +
    @@ -767,4 +785,14 @@ + {% endblock %} diff --git a/templates/web/prod/preview/basket_train.html.twig b/templates/web/prod/preview/basket_train.html.twig index d5b2ef8c04..14715074dd 100644 --- a/templates/web/prod/preview/basket_train.html.twig +++ b/templates/web/prod/preview/basket_train.html.twig @@ -47,14 +47,20 @@
    -
    -
    - -
    - {{ 'preview:: demarrer le diaporama' | trans }} - {{ 'preview:: arreter le diaporama' | trans }} -
    -
    -
    - {% include 'prod/preview/tools.html.twig' %} -
    +
    +
    +
    + +
    + {{ 'preview:: demarrer le diaporama' | trans }} + {{ 'preview:: arreter le diaporama' | trans }} +
    +
    +
    + {% include 'prod/preview/tools.html.twig' %} +
    +
    diff --git a/templates/web/prod/preview/caption.html.twig b/templates/web/prod/preview/caption.html.twig index dd35fc3148..4f4b08063a 100644 --- a/templates/web/prod/preview/caption.html.twig +++ b/templates/web/prod/preview/caption.html.twig @@ -6,19 +6,19 @@ {% if can_edit %} {% endif %} -
    +
    {% for flag in record_flags(record) %} {% endfor %} -
    +
    - {% if record.is_from_reg() %} +{% if record.is_from_reg() %} {{macro.caption(record, can_see_business)}} - {% else %} +{% else %} {{macro.caption(record, can_see_business)}} - {% endif %} +{% endif %} \ No newline at end of file diff --git a/templates/web/prod/preview/feed_train.html.twig b/templates/web/prod/preview/feed_train.html.twig index bcbfa1bc79..867de472d0 100644 --- a/templates/web/prod/preview/feed_train.html.twig +++ b/templates/web/prod/preview/feed_train.html.twig @@ -45,14 +45,20 @@
    -
    -
    - -
    - {{ 'preview:: demarrer le diaporama' | trans }} - {{ 'preview:: arreter le diaporama' | trans }} -
    -
    -
    - {% include 'prod/preview/tools.html.twig' %} -
    +
    +
    +
    + +
    + {{ 'preview:: demarrer le diaporama' | trans }} + {{ 'preview:: arreter le diaporama' | trans }} +
    +
    +
    + {% include 'prod/preview/tools.html.twig' %} +
    +
    diff --git a/templates/web/prod/preview/popularity.html.twig b/templates/web/prod/preview/popularity.html.twig index be0569d4d2..ae11f332b5 100644 --- a/templates/web/prod/preview/popularity.html.twig +++ b/templates/web/prod/preview/popularity.html.twig @@ -1,19 +1,203 @@ - - {% if record.get_view_popularity() %} -
    +
    {{ 'preview::statistiques de visualisation pour le lien' | trans }} -
    - - {% endif %} - - {% if record.get_refferer_popularity() %} -
    - - {% endif %} - - {% if record.get_download_popularity() %} -
    +
    +
    +
    {{ 'preview::statistiques de telechargement' | trans }} -
    - - {% endif %} +
    +
    +
    +
    +
    + + \ No newline at end of file diff --git a/templates/web/prod/preview/reg_train.html.twig b/templates/web/prod/preview/reg_train.html.twig index c6a5c7fa9c..743e3ca8c4 100644 --- a/templates/web/prod/preview/reg_train.html.twig +++ b/templates/web/prod/preview/reg_train.html.twig @@ -80,15 +80,21 @@ {% endfor %} -
    -
    -
    - -
    - {{ 'preview:: demarrer le diaporama' | trans }} - {{ 'preview:: arreter le diaporama' | trans }} -
    -
    -
    +
    +
    +
    +
    + +
    + {{ 'preview:: demarrer le diaporama' | trans }} + {{ 'preview:: arreter le diaporama' | trans }} +
    +
    +
    {% include 'prod/preview/tools.html.twig' %} -
    +
    +
    diff --git a/templates/web/prod/preview/result_train.html.twig b/templates/web/prod/preview/result_train.html.twig index f6ac58bb79..4c4beb41d6 100644 --- a/templates/web/prod/preview/result_train.html.twig +++ b/templates/web/prod/preview/result_train.html.twig @@ -41,12 +41,19 @@
    -
    -
    - -
    - {{ 'preview:: demarrer le diaporama' | trans }} - {{ 'preview:: arreter le diaporama' | trans }} +
    +
    +
    + +
    + {{ 'preview:: demarrer le diaporama' | trans }} + {{ 'preview:: arreter le diaporama' | trans }} +
    -
    -
    +
    +
    + diff --git a/templates/web/prod/preview/result_train_options.html.twig b/templates/web/prod/preview/result_train_options.html.twig index 0d497b8260..be233ff88a 100644 --- a/templates/web/prod/preview/result_train_options.html.twig +++ b/templates/web/prod/preview/result_train_options.html.twig @@ -1,12 +1,16 @@ -
    -
    - - {{ 'preview:: demarrer le diaporama' | trans }} - {{ 'preview:: arreter le diaporama' | trans }} -
    -
    -
    -
    - {% include 'prod/preview/tools.html.twig' %} -
    +
    +
    + + {{ 'preview:: demarrer le diaporama' | trans }} + {{ 'preview:: arreter le diaporama' | trans }} +
    +
    +
    +
    + {% include 'prod/preview/tools.html.twig' %} +
    \ No newline at end of file diff --git a/templates/web/prod/preview/tools.html.twig b/templates/web/prod/preview/tools.html.twig index 9c9e067509..51612aa60e 100644 --- a/templates/web/prod/preview/tools.html.twig +++ b/templates/web/prod/preview/tools.html.twig @@ -16,12 +16,12 @@ {% endif %} -
  • + {{ 'admin::compte-utilisateur id utilisateur' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur identifiant' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'First/Last Name' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur societe' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur email' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur pays' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur dernier modele applique' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} + + {{ 'admin::compte-utilisateur date de creation' | trans }} - {{ parm.ord == 'asc' ? '▼' : '▲' }} - + {{ parm.ord == 'ASC' ? '▼' : '▲' }} +

    - + {{ 'Prerequisite and Configuration' | trans }}

    diff --git a/templates/web/thesaurus/load-thesaurus.html.twig b/templates/web/thesaurus/load-thesaurus.html.twig index 75cb2e7132..5270cd44d0 100644 --- a/templates/web/thesaurus/load-thesaurus.html.twig +++ b/templates/web/thesaurus/load-thesaurus.html.twig @@ -9,7 +9,7 @@ parent.currentBaseId = {{ bid }}; parent.currentBaseName = "{{ name | e('js') }}"; parent.document.title = "{{ 'phraseanet:: thesaurus' | trans | e('js') }}"; - parent.document.getElementById("baseName").innerHTML = "{{ 'phraseanet:: thesaurus' | e('js') }}"; + parent.document.getElementById("baseName").innerHTML = "{{ 'phraseanet:: thesaurus' | trans | e('js') }}"; parent.thesaurusChanged = false; parent.document.getElementById("T0").innerHTML='
    ' +