diff --git a/CHANGELOG.md b/CHANGELOG.md index f2fc3c4ae1..b0f566100c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,67 @@ - Convert Ftp Export custom adapter to Doctrine entity. - Session management is now part of Phraseanet configuration. -## 3.8.3 (2014-xx-xx) +## 3.8.5 (2014-07-08) + + - BugFix : Fix Flickr connexion throught Bridge Application + - BugFix : Fix broken Report Application + - BugFix : Fix "force authentication" option for push validation + - BugFix : Fix display of "edit" button for a validation accordint to user rights + - BugFix : Fix highlight of record title in detailed view + - BugFix : Fix thumbnail generation for PDF with transparency + - BugFix : Fix reorder of stories & basket when record titles are too long + - BugFix : Fix display of separators for multivalued fields in caption + - Enhancement : Add the possibility to choose a document or a video as a representative image of a story + - Enhancement : Titles are truncated but still visible by hovering them + +## 3.8.4 (2014-06-25) + + - BC Break : Drop sphinx search engine highlight support + - BC Break : Notify user checkbox is now setted to false when publishing a new publication + - BugFix : Fix database mapping in report + - BugFix : Fix homepage feed url + - BugFix : Fix CSV user import + - BugFix : Fix status icon filename + - BugFix : Fix highlight in caption display + - BugFix : Fix bound in caption display + - BugFix : Fix thumbnail display in feed view + - BugFix : Fix thesaurus terms order + - BugFix : Fix metadata filename attibute + - BugFix : Fix https calls to googlechart API + - BugFix : Fix API feed pagination + - BugFix : Fix thumbnail etags generation + - BugFix : Fix therausus search in workzone + - BugFix : Fix context menu in main bar in account view + - BugFix : Fix CSV download for filename with accent + - BugFix : Fix CSV generation from report + - BugFix : Fix old password migration + - BugFix : Fix migration from 3.1 version + - BugFix : Fix status calculation from XML indexation card for stories + - BugFix : Fix homepage issue when a feed is deleted + - BugFix : Fix phraseanet bridge connexion to dailymotion + - BugFix : Fix unoconv and GPAC detection on debian system + - BugFix : Fix oauth developer application form submission + - BugFix : Fix anamorphosis problems for some videos + - Enhancement : Set password fields as password input + - Enhancement : Add extra information in user list popup in Push view + - Enhancement : Force the use of latest IE engine + - Enhancement : Add feed restriction when requesting aggregated feed in API + - Enhancement : Add feed title property in feed entry JSON schema + - Enhancement : Dashboard report is now lazy loaded + - Enhancement : Update flowplayer version + - Enhancement : Improve XsendFile command line tools + - Enhancement : Remove disk IO on media_subdef::get_size function + - Enhancement : User city is now setted through geonames server + - Enhancement : Enhancement of Oauth2 integration + - NewFeature : Add option to restrict Push visualization to Phraseanet users only + - NewFeature : Add API webhook + - NewFeature : Add CORS support for API + - NewFeature : Add /me route in API + - NewFeature : Add h264 pseudo stream configuration + - NewFeature : Add session idle & life time in configuration + - NewFeature : Add possibility to search “unknown” type document through API + +## 3.8.3 (2014-02-24) - BugFix : Fix record type editing. - BugFix : Fix scheduler timeout. diff --git a/bower.json b/bower.json index e38b87722c..68e9ec05d0 100644 --- a/bower.json +++ b/bower.json @@ -6,6 +6,7 @@ "jquery": "~1.8.3", "jquery.ui": "~1.10.0", "jquery-mobile": "~1.3.0", + "underscore": "~1.4.4", "font-awesome": "~3.0.2", "modernizr": "~2.6.2", "normalize-css": "~2.1.0", diff --git a/composer.json b/composer.json index e3a25a51fd..85045aae1b 100644 --- a/composer.json +++ b/composer.json @@ -25,12 +25,16 @@ { "type": "vcs", "url": "https://github.com/nlegoff/Media-Alchemyst" + }, + { + "type": "vcs", + "url": "https://github.com/nlegoff/Imagine" } ], "require": { "php" : ">=5.4", "alchemy/oauth2php" : "1.0.0", - "alchemy/phlickr" : "0.2.7", + "alchemy/phlickr" : "0.2.8", "alchemy/task-manager" : "2.0.x-dev@dev", "alchemy/zippy" : "0.2.x-dev@dev", "cboden/ratchet" : "~0.3", @@ -44,8 +48,8 @@ "alchemy/geonames-api-consumer" : "~0.1.0", "goodby/csv" : "~1.0", "guzzle/guzzle" : "~3.0", + "imagine/imagine" : "dev-flatten-layer as 0.6.1", "igorw/get-in" : "~1.0", - "imagine/imagine" : "0.6.x-dev@dev", "ircmaxell/random-lib" : "~1.0", "jms/serializer" : "~0.10", "jms/translation-bundle" : "~1.1", diff --git a/composer.lock b/composer.lock index eea880c49f..6fb4c4c5ee 100644 --- a/composer.lock +++ b/composer.lock @@ -272,16 +272,16 @@ }, { "name": "alchemy/phlickr", - "version": "0.2.7", + "version": "0.2.8", "source": { "type": "git", "url": "https://github.com/alchemy-fr/Phlickr.git", - "reference": "9f228cabf924bdd5913fdb59514904d0d4c8e40a" + "reference": "26b7764fd45c15062cb1b21c9389aff919e8c2bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alchemy-fr/Phlickr/zipball/9f228cabf924bdd5913fdb59514904d0d4c8e40a", - "reference": "9f228cabf924bdd5913fdb59514904d0d4c8e40a", + "url": "https://api.github.com/repos/alchemy-fr/Phlickr/zipball/26b7764fd45c15062cb1b21c9389aff919e8c2bd", + "reference": "26b7764fd45c15062cb1b21c9389aff919e8c2bd", "shasum": "" }, "type": "library", @@ -291,7 +291,7 @@ } }, "notification-url": "https://packagist.org/downloads/", - "time": "2013-07-01 09:47:54" + "time": "2014-07-07 14:01:51" }, { "name": "alchemy/task-manager", @@ -1569,16 +1569,16 @@ }, { "name": "imagine/imagine", - "version": "dev-develop", + "version": "dev-flatten-layer", "source": { "type": "git", - "url": "https://github.com/avalanche123/Imagine.git", - "reference": "5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2" + "url": "https://github.com/nlegoff/Imagine.git", + "reference": "df2d9d8834d32943082fc52b89c5b11fde279b5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2", - "reference": "5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2", + "url": "https://api.github.com/repos/nlegoff/Imagine/zipball/df2d9d8834d32943082fc52b89c5b11fde279b5a", + "reference": "df2d9d8834d32943082fc52b89c5b11fde279b5a", "shasum": "" }, "require": { @@ -1595,7 +1595,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "0.6-dev" + "dev-develop": "0.7-dev" } }, "autoload": { @@ -1603,7 +1603,6 @@ "Imagine": "lib/" } }, - "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], @@ -1622,7 +1621,10 @@ "image manipulation", "image processing" ], - "time": "2013-12-23 10:54:18" + "support": { + "source": "https://github.com/nlegoff/Imagine/tree/flatten-layer" + }, + "time": "2014-07-07 17:04:15" }, { "name": "ircmaxell/random-lib", @@ -2023,12 +2025,12 @@ "source": { "type": "git", "url": "https://github.com/nlegoff/Media-Alchemyst.git", - "reference": "e812e631b74ebb0c7b3dd5f4e981d84a7b3c4029" + "reference": "be5c7cd4e207c469fb88d88397bd220c4db323d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nlegoff/Media-Alchemyst/zipball/e812e631b74ebb0c7b3dd5f4e981d84a7b3c4029", - "reference": "e812e631b74ebb0c7b3dd5f4e981d84a7b3c4029", + "url": "https://api.github.com/repos/nlegoff/Media-Alchemyst/zipball/be5c7cd4e207c469fb88d88397bd220c4db323d8", + "reference": "be5c7cd4e207c469fb88d88397bd220c4db323d8", "shasum": "" }, "require": { @@ -2090,7 +2092,7 @@ "support": { "source": "https://github.com/nlegoff/Media-Alchemyst/tree/master" }, - "time": "2014-06-10 13:51:13" + "time": "2014-07-07 16:54:32" }, { "name": "mediavorus/mediavorus", @@ -4906,6 +4908,12 @@ } ], "aliases": [ + { + "alias": "0.6.1", + "alias_normalized": "0.6.1.0", + "version": "dev-flatten-layer", + "package": "imagine/imagine" + }, { "alias": "0.4.3", "alias_normalized": "0.4.3.0", diff --git a/lib/Alchemy/Phrasea/Controller/Prod/Edit.php b/lib/Alchemy/Phrasea/Controller/Prod/Edit.php index c0ddc149c7..5f31d96430 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/Edit.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/Edit.php @@ -283,14 +283,14 @@ class Edit implements ControllerProviderInterface $newsubdef_reg = new \record_adapter($app, $reg_record->get_sbas_id(), $request->request->get('newrepresent')); - if ($newsubdef_reg->get_type() !== 'image') { - throw new \Exception('A reg image must come from image data'); - } - foreach ($newsubdef_reg->get_subdefs() as $name => $value) { if (!in_array($name, ['thumbnail', 'preview'])) { continue; } + if ($value->get_type() !== \media_subdef::TYPE_IMAGE) { + continue; + } + $media = $app['mediavorus']->guess($value->get_pathfile()); $app['subdef.substituer']->substitute($reg_record, $name, $media); $app['phraseanet.logger']($reg_record->get_databox())->log( diff --git a/lib/Alchemy/Phrasea/Controller/Prod/Push.php b/lib/Alchemy/Phrasea/Controller/Prod/Push.php index 63feea5f02..5109a0e4df 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/Push.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/Push.php @@ -412,10 +412,15 @@ class Push implements ControllerProviderInterface $app['EM']->flush(); - $url = $app->url('lightbox_validation', [ + $arguments = array( 'basket' => $Basket->getId(), - 'LOG' => $app['manipulator.token']->createBasketValidationToken($Basket, $participant_user), - ]); + ); + + if (!$app['conf']->get(['registry', 'actions', 'force-authentication']) || !$request->get('force_authentication')) { + $arguments['LOG'] = $app['manipulator.token']->createBasketAccessToken($Basket, $participant_user); + } + + $url = $app->url('lightbox_validation', $arguments); $receipt = $request->get('recept') ? $app['authentication']->getUser()->getEmail() : ''; diff --git a/lib/Alchemy/Phrasea/Controller/Prod/Records.php b/lib/Alchemy/Phrasea/Controller/Prod/Records.php index c65949772b..c8237742af 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/Records.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/Records.php @@ -135,7 +135,7 @@ class Records implements ControllerProviderInterface 'record' => $record ]), "pos" => $record->get_number(), - "title" => $record->get_title($query, $searchEngine) + "title" => str_replace(array('[[em]]', '[[/em]]'), array('', ''), $record->get_title($query, $searchEngine)) ]); } diff --git a/lib/Alchemy/Phrasea/Core/Version.php b/lib/Alchemy/Phrasea/Core/Version.php index 4cff4e295f..27c5909982 100644 --- a/lib/Alchemy/Phrasea/Core/Version.php +++ b/lib/Alchemy/Phrasea/Core/Version.php @@ -14,7 +14,7 @@ namespace Alchemy\Phrasea\Core; class Version { protected static $number = '3.9.0-alpha.18'; - protected static $name = 'Epanterias'; + protected static $name = 'Gorgosaurus'; public static function getNumber() { diff --git a/lib/Alchemy/Phrasea/Media/Subdef/Image.php b/lib/Alchemy/Phrasea/Media/Subdef/Image.php index 0960bc8ab4..dd1c2e0bb3 100644 --- a/lib/Alchemy/Phrasea/Media/Subdef/Image.php +++ b/lib/Alchemy/Phrasea/Media/Subdef/Image.php @@ -20,6 +20,7 @@ class Image extends Provider const OPTION_RESOLUTION = 'resolution'; const OPTION_STRIP = 'strip'; const OPTION_QUALITY = 'quality'; + const OPTION_FLATTEN = 'flatten'; protected $options = []; @@ -30,6 +31,7 @@ class Image extends Provider $this->registerOption(new OptionType\Range($this->translator->trans('Dimension'), self::OPTION_SIZE, 20, 3000, 800)); $this->registerOption(new OptionType\Range($this->translator->trans('Resolution'), self::OPTION_RESOLUTION, 50, 300, 72)); $this->registerOption(new OptionType\Boolean($this->translator->trans('Remove ICC Profile'), self::OPTION_STRIP, false)); + $this->registerOption(new OptionType\Boolean($this->translator->trans('Flatten layers'), self::OPTION_FLATTEN, false)); $this->registerOption(new OptionType\Range($this->translator->trans('Quality'), self::OPTION_QUALITY, 0, 100, 75)); } @@ -56,6 +58,7 @@ class Image extends Provider $this->spec->setDimensions($size, $size); $this->spec->setQuality($this->getOption(self::OPTION_QUALITY)->getValue()); $this->spec->setStrip($this->getOption(self::OPTION_STRIP)->getValue()); + $this->spec->setFlatten($this->getOption(self::OPTION_FLATTEN)->getValue()); $this->spec->setResolution($resolution, $resolution); return $this->spec; diff --git a/lib/classes/databox/subdef.php b/lib/classes/databox/subdef.php index bc6fec195d..6ca49c1e9e 100644 --- a/lib/classes/databox/subdef.php +++ b/lib/classes/databox/subdef.php @@ -303,6 +303,9 @@ class databox_subdef if ($sd->dpi) { $image->setOptionValue(Image::OPTION_RESOLUTION, (int) $sd->dpi); } + if ($sd->flatten) { + $image->setOptionValue(Image::OPTION_FLATTEN, p4field::isyes($sd->flatten)); + } return $image; } diff --git a/templates/web/client/answers.html.twig b/templates/web/client/answers.html.twig index d409b449a9..6fec333aee 100644 --- a/templates/web/client/answers.html.twig +++ b/templates/web/client/answers.html.twig @@ -142,8 +142,8 @@ {% else %}