diff --git a/.bowerrc b/.bowerrc index bb6d6aafdb..28ccb8a9e0 100644 --- a/.bowerrc +++ b/.bowerrc @@ -1,4 +1,3 @@ { - "directory" : "www/bower_components", - "timeout": 1200000 + "directory": "www/bower_components" } diff --git a/lib/Alchemy/Phrasea/Controller/Admin/SubdefsController.php b/lib/Alchemy/Phrasea/Controller/Admin/SubdefsController.php index cdee52835e..d9f0e778ce 100644 --- a/lib/Alchemy/Phrasea/Controller/Admin/SubdefsController.php +++ b/lib/Alchemy/Phrasea/Controller/Admin/SubdefsController.php @@ -33,9 +33,9 @@ class SubdefsController extends Controller $subviews_mapping = $this->getSubviewsMapping(); return $this->render('admin/subdefs.html.twig', [ - 'databox' => $databox, - 'subdefs' => $databox->get_subdef_structure(), - 'config' => $config, + 'databox' => $databox, + 'subdefs' => $databox->get_subdef_structure(), + 'config' => $config, 'subviews_mapping' => $subviews_mapping ]); } @@ -53,7 +53,7 @@ class SubdefsController extends Controller $databox = $this->findDataboxById((int) $sbas_id); - $add_subdef = ['class' => null, 'name' => null, 'group' => null, 'mediaType' => null, 'presets' => null]; + $add_subdef = ['class' => null, 'name' => null, 'group' => null, 'mediaType' => null, 'presets' => null]; foreach ($add_subdef as $k => $v) { if (!isset($toadd_subdef[$k]) || trim($toadd_subdef[$k]) === '') { unset($add_subdef[$k]); @@ -68,7 +68,8 @@ class SubdefsController extends Controller $name = $delete_subef[1]; $subdefs = $databox->get_subdef_structure(); $subdefs->delete_subdef($group, $name); - } elseif (count($add_subdef) === 5) { + } + elseif (count($add_subdef) === 5) { $subdefs = $databox->get_subdef_structure(); $group = $add_subdef['group']; @@ -87,7 +88,7 @@ class SubdefsController extends Controller $config = $this->getConfiguration(); //On applique directement les valeurs du preset à la sous def - switch($mediatype) { + switch ($mediatype) { case Subdef::TYPE_IMAGE : $options["path"] = ""; $options["meta"] = true; @@ -98,7 +99,7 @@ class SubdefsController extends Controller $options[Image::OPTION_FLATTEN] = $config["image"]["definitions"][$preset][Image::OPTION_FLATTEN]; $options[Image::OPTION_QUALITY] = $config["image"]["definitions"][$preset][Image::OPTION_QUALITY]; $options[Image::OPTION_ICODEC] = $config["image"]["definitions"][$preset][Image::OPTION_ICODEC]; - foreach($config["image"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { + foreach ($config["image"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { $options[Subdef::OPTION_DEVICE][] = $devices; } break; @@ -114,7 +115,7 @@ class SubdefsController extends Controller $options[Video::OPTION_FRAMERATE] = $config["video"]["definitions"][$preset][Video::OPTION_FRAMERATE]; $options[Video::OPTION_VCODEC] = $config["video"]["definitions"][$preset][Video::OPTION_VCODEC]; $options[Video::OPTION_ACODEC] = $config["video"]["definitions"][$preset][Video::OPTION_ACODEC]; - foreach($config["video"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { + foreach ($config["video"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { $options[Subdef::OPTION_DEVICE][] = $devices; } break; @@ -122,7 +123,7 @@ class SubdefsController extends Controller $options["path"] = ""; $options["meta"] = true; $options["mediatype"] = $mediatype; - foreach($config["document"]["definitions"][$preset]["devices"] as $devices) { + foreach ($config["document"]["definitions"][$preset]["devices"] as $devices) { $options["devices"][] = $devices; } break; @@ -132,7 +133,7 @@ class SubdefsController extends Controller $options["mediatype"] = $mediatype; $options[Gif::OPTION_SIZE] = $config["gif"]["definitions"][$preset][Gif::OPTION_SIZE]; $options[Gif::OPTION_DELAY] = $config["gif"]["definitions"][$preset][Gif::OPTION_DELAY]; - foreach($config["gif"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { + foreach ($config["gif"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { $options[Subdef::OPTION_DEVICE][] = $devices; } break; @@ -143,7 +144,7 @@ class SubdefsController extends Controller $options[Audio::OPTION_AUDIOBITRATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOBITRATE]; $options[Audio::OPTION_AUDIOSAMPLERATE] = $config["audio"]["definitions"][$preset][Audio::OPTION_AUDIOSAMPLERATE]; $options[Audio::OPTION_ACODEC] = $config["audio"]["definitions"][$preset][Audio::OPTION_ACODEC]; - foreach($config["audio"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { + foreach ($config["audio"]["definitions"][$preset][Subdef::OPTION_DEVICE] as $devices) { $options[Subdef::OPTION_DEVICE][] = $devices; } break; @@ -206,13 +207,13 @@ class SubdefsController extends Controller */ protected function getSubviewsMapping() { - $mapping = array( - Type::TYPE_IMAGE => array(Subdef::TYPE_IMAGE), - Type::TYPE_VIDEO => array(Subdef::TYPE_IMAGE, Subdef::TYPE_VIDEO, Subdef::TYPE_ANIMATION), - Type::TYPE_AUDIO => array(Subdef::TYPE_IMAGE, Subdef::TYPE_AUDIO), - Type::TYPE_DOCUMENT => array(Subdef::TYPE_IMAGE, Subdef::TYPE_FLEXPAPER), - Type::TYPE_FLASH => array(Subdef::TYPE_IMAGE) - ); + $mapping = [ + Type::TYPE_IMAGE => [Subdef::TYPE_IMAGE], + Type::TYPE_VIDEO => [Subdef::TYPE_IMAGE, Subdef::TYPE_VIDEO, Subdef::TYPE_ANIMATION], + Type::TYPE_AUDIO => [Subdef::TYPE_IMAGE, Subdef::TYPE_AUDIO], + Type::TYPE_DOCUMENT => [Subdef::TYPE_IMAGE, Subdef::TYPE_FLEXPAPER], + Type::TYPE_FLASH => [Subdef::TYPE_IMAGE] + ]; return $mapping; } @@ -222,135 +223,135 @@ class SubdefsController extends Controller */ protected function getConfiguration() { - $config = array( - Subdef::TYPE_IMAGE => array( - "definitions" => array( - "JPG" => null, - "160px JPG" => array( + $config = [ + Subdef::TYPE_IMAGE => [ + "definitions" => [ + "JPG" => null, + "160px JPG" => [ Image::OPTION_SIZE => "160", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "jpeg", - Subdef::OPTION_DEVICE => ["all"] - ), - "320 px JPG (thumbnail Phraseanet)" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "320 px JPG (thumbnail Phraseanet)" => [ Image::OPTION_SIZE => "320", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "jpeg", - Subdef::OPTION_DEVICE => ["all"] - ), - "640px JPG" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "640px JPG" => [ Image::OPTION_SIZE => "640", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "jpeg", - Subdef::OPTION_DEVICE => ["all"] - ), - "1280px JPG (preview Phraseanet)" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "1280px JPG (preview Phraseanet)" => [ Image::OPTION_SIZE => "1280", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "jpeg", - Subdef::OPTION_DEVICE => ["all"] - ), - "2560px JPG" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "2560px JPG" => [ Image::OPTION_SIZE => "2560", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "jpeg", - Subdef::OPTION_DEVICE => ["all"] - ), - "PNG" => null, - "160px PNG 8 bits" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "PNG" => null, + "160px PNG 8 bits" => [ Image::OPTION_SIZE => "160", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "png", - Subdef::OPTION_DEVICE => ["all"] - ), - "320px PNG 8 bits" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "320px PNG 8 bits" => [ Image::OPTION_SIZE => "320", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "png", - Subdef::OPTION_DEVICE => ["all"] - ), - "640px PNG 8 bits" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "640px PNG 8 bits" => [ Image::OPTION_SIZE => "640", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "png", - Subdef::OPTION_DEVICE => ["all"] - ), - "1280px PNG 8 bits" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "1280px PNG 8 bits" => [ Image::OPTION_SIZE => "1280", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "png", - Subdef::OPTION_DEVICE => ["all"] - ), - "2560px PNG 8 bits" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "2560px PNG 8 bits" => [ Image::OPTION_SIZE => "2560", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "png", - Subdef::OPTION_DEVICE => ["all"] - ), - "TIFF" => null, - "1280 TIFF" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "TIFF" => null, + "1280 TIFF" => [ Image::OPTION_SIZE => "1280", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "tiff", - Subdef::OPTION_DEVICE => ["all"] - ), - "2560px TIFF" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "2560px TIFF" => [ Image::OPTION_SIZE => "2560", Image::OPTION_RESOLUTION => "75", Image::OPTION_STRIP => "yes", Image::OPTION_FLATTEN => "yes", Image::OPTION_QUALITY => "75", Image::OPTION_ICODEC => "tiff", - Subdef::OPTION_DEVICE => ["all"] - ), - ), - "form" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + ], + "form" => [ Image::OPTION_SIZE => "slide", Image::OPTION_RESOLUTION => "slide", Image::OPTION_STRIP => "radio", Image::OPTION_FLATTEN => "radio", Image::OPTION_QUALITY => "slide", Image::OPTION_ICODEC => "select", - Subdef::OPTION_DEVICE => "checkbox", - ), - ), - Subdef::TYPE_VIDEO => array( - "definitions" => array( - "video codec H264" => null, - "144P H264 128 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => "checkbox", + ], + ], + Subdef::TYPE_VIDEO => [ + "definitions" => [ + "video codec H264" => null, + "144P H264 128 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "128", @@ -359,9 +360,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libx264", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "240P H264 256 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "240P H264 256 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "256", @@ -370,9 +371,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libx264", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "360P H264 576 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "360P H264 576 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "576", @@ -381,9 +382,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libtheora", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "480P H264 750 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "480P H264 750 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "750", @@ -392,9 +393,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libx264", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "720P H264 1492 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "720P H264 1492 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "1492", @@ -403,9 +404,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libx264", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "1080P H264 2420 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "1080P H264 2420 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "2420", @@ -414,10 +415,10 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libx264", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "video codec libvpx" => null, - "144P webm 128 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "video codec libvpx" => null, + "144P webm 128 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "128", @@ -426,9 +427,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "240P webm 256 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "240P webm 256 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "256", @@ -437,9 +438,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "360P webm 576 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "360P webm 576 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "576", @@ -448,9 +449,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "480P webm 750 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "480P webm 750 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "750", @@ -459,9 +460,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "720P webm 1492 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "720P webm 1492 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "1492", @@ -470,9 +471,9 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - "1080P webm 2420 kbps ACC 128kbps" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + "1080P webm 2420 kbps ACC 128kbps" => [ Video::OPTION_AUDIOBITRATE => "128", Video::OPTION_AUDIOSAMPLERATE => "44100", Video::OPTION_BITRATE => "2420", @@ -481,10 +482,10 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "25", Video::OPTION_VCODEC => "libvpx", Video::OPTION_ACODEC => "libfaac", - Subdef::OPTION_DEVICE => ["all"] - ), - ), - "form" => array( + Subdef::OPTION_DEVICE => ["all"] + ], + ], + "form" => [ Video::OPTION_AUDIOBITRATE => "slide", Video::OPTION_AUDIOSAMPLERATE => "select", Video::OPTION_BITRATE => "slide", @@ -493,67 +494,67 @@ class SubdefsController extends Controller Video::OPTION_FRAMERATE => "slide", Video::OPTION_VCODEC => "select", Video::OPTION_ACODEC => "select", - Subdef::OPTION_DEVICE => "checkbox", - ), - ), - Subdef::TYPE_ANIMATION => array( - "definitions" => array( - "256 px fast 200 ms" => array( - Gif::OPTION_SIZE => "256", - Gif::OPTION_DELAY => "200", - Subdef::OPTION_DEVICE => ["all"] - ), - "256 px very fast 120 ms" => array( - Gif::OPTION_SIZE => "256", - Gif::OPTION_DELAY => "120", - Subdef::OPTION_DEVICE => ["all"] - ), - "320 px fast 200 ms" => array( - Gif::OPTION_SIZE => "320", - Gif::OPTION_DELAY => "200", - Subdef::OPTION_DEVICE => ["all"] - ), - ), - "form" => array( - Gif::OPTION_SIZE => "slide", - Gif::OPTION_DELAY => "slide", - Subdef::OPTION_DEVICE => "checkbox", - ), - ), - Subdef::TYPE_AUDIO => array( - "definitions" => array( - "Low AAC 96 kbit/s" => array( - Audio::OPTION_AUDIOBITRATE => "100", - Audio::OPTION_AUDIOSAMPLERATE => "8000", - Audio::OPTION_ACODEC => "libmp3lame", - Subdef::OPTION_DEVICE => ["all"] - ), - "Normal AAC 128 kbit/s" => array( - Audio::OPTION_AUDIOBITRATE => "180", - Audio::OPTION_AUDIOSAMPLERATE => "44100", - Audio::OPTION_ACODEC => "libmp3lame", - Subdef::OPTION_DEVICE => ["all"] - ), - "High AAC 320 kbit/s" => array( - Audio::OPTION_AUDIOBITRATE => "230", - Audio::OPTION_AUDIOSAMPLERATE => "50000", - Audio::OPTION_ACODEC => "libmp3lame", - Subdef::OPTION_DEVICE => ["all"] - ), - ), - "form" => array( - Audio::OPTION_AUDIOBITRATE => "slide", - Audio::OPTION_AUDIOSAMPLERATE => "select", - Audio::OPTION_ACODEC => "select", - Subdef::OPTION_DEVICE => "checkbox", - ), - ), - Subdef::TYPE_FLEXPAPER => array( - "definitions" => array( - ), - "form" => array(), - ), - ); + Subdef::OPTION_DEVICE => "checkbox", + ], + ], + Subdef::TYPE_ANIMATION => [ + "definitions" => [ + "256 px fast 200 ms" => [ + Gif::OPTION_SIZE => "256", + Gif::OPTION_DELAY => "200", + Subdef::OPTION_DEVICE => ["all"] + ], + "256 px very fast 120 ms" => [ + Gif::OPTION_SIZE => "256", + Gif::OPTION_DELAY => "120", + Subdef::OPTION_DEVICE => ["all"] + ], + "320 px fast 200 ms" => [ + Gif::OPTION_SIZE => "320", + Gif::OPTION_DELAY => "200", + Subdef::OPTION_DEVICE => ["all"] + ], + ], + "form" => [ + Gif::OPTION_SIZE => "slide", + Gif::OPTION_DELAY => "slide", + Subdef::OPTION_DEVICE => "checkbox", + ], + ], + Subdef::TYPE_AUDIO => [ + "definitions" => [ + "Low AAC 96 kbit/s" => [ + Audio::OPTION_AUDIOBITRATE => "100", + Audio::OPTION_AUDIOSAMPLERATE => "8000", + Audio::OPTION_ACODEC => "libmp3lame", + Subdef::OPTION_DEVICE => ["all"] + ], + "Normal AAC 128 kbit/s" => [ + Audio::OPTION_AUDIOBITRATE => "180", + Audio::OPTION_AUDIOSAMPLERATE => "44100", + Audio::OPTION_ACODEC => "libmp3lame", + Subdef::OPTION_DEVICE => ["all"] + ], + "High AAC 320 kbit/s" => [ + Audio::OPTION_AUDIOBITRATE => "230", + Audio::OPTION_AUDIOSAMPLERATE => "50000", + Audio::OPTION_ACODEC => "libmp3lame", + Subdef::OPTION_DEVICE => ["all"] + ], + ], + "form" => [ + Audio::OPTION_AUDIOBITRATE => "slide", + Audio::OPTION_AUDIOSAMPLERATE => "select", + Audio::OPTION_ACODEC => "select", + Subdef::OPTION_DEVICE => "checkbox", + ], + ], + Subdef::TYPE_FLEXPAPER => [ + "definitions" => [ + ], + "form" => [], + ], + ]; return $config; } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php b/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php index d89fc9ae32..0c540b4c4d 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/MoveCollectionController.php @@ -41,7 +41,7 @@ class MoveCollectionController extends Controller $settings = $this->app['settings']; $userOrderSetting = $settings->getUserSetting($this->app->getAuthenticatedUser(), 'order_collection_by'); // a temporary array to sort the collections - $aName = array(); + $aName = []; list($ukey, $uorder) = ["order", SORT_ASC]; // default ORDER_BY_ADMIN switch ($userOrderSetting) { case $settings::ORDER_ALPHA_ASC : @@ -52,9 +52,10 @@ class MoveCollectionController extends Controller break; } foreach ($collections as $key => $row) { - if($ukey == "order") { + if ($ukey == "order") { $aName[$key] = $row->get_ord(); - }else { + } + else { $aName[$key] = $row->get_name(); } } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php b/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php index 04b0f00612..8aa6323348 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ShareController.php @@ -31,7 +31,7 @@ class ShareController extends Controller $databoxSubdefs = $record->getDatabox()->get_subdef_structure()->getSubdefGroup($record->getType()); $acl = $this->getAclForUser(); $subdefList = []; - $defaultKey = null; + $defaultKey = null; foreach ($subdefs as $subdef) { $subdefName = $subdef->get_name(); if ($subdefName == 'document') { @@ -55,7 +55,7 @@ class ShareController extends Controller $defaultKey = $value; // will set a default option if neither preview,thumbnail or document is present - if ( ($previewLink = $preview->get_permalink()) !== null ) { + if (($previewLink = $preview->get_permalink()) !== null) { $permalinkUrl = $previewLink->get_url()->__toString(); $permaviewUrl = $previewLink->get_page(); $previewWidth = $preview->get_width(); @@ -74,7 +74,7 @@ class ShareController extends Controller } // candidates as best default selected option - foreach(["preview", "thumbnail", "document"] as $k) { + foreach (["preview", "thumbnail", "document"] as $k) { if (array_key_exists($k, $subdefList)) { $defaultKey = $k; break; @@ -84,8 +84,8 @@ class ShareController extends Controller // the twig MUST handle that $outputVars = [ 'isAvailable' => !empty($subdefList), - 'subdefList' => $subdefList, - 'defaultKey' => $defaultKey + 'subdefList' => $subdefList, + 'defaultKey' => $defaultKey ]; return $this->renderResponse('prod/Share/record.html.twig', $outputVars); diff --git a/lib/Alchemy/Phrasea/Controller/Prod/UploadController.php b/lib/Alchemy/Phrasea/Controller/Prod/UploadController.php index 85bd81def4..a42ba5145c 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/UploadController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/UploadController.php @@ -247,7 +247,7 @@ class UploadController extends Controller $sbasId = $databox->get_sbas_id(); foreach ($acl->get_granted_base([\ACL::CANADDRECORD], [$sbasId]) as $collection) { $databox = $collection->get_databox(); - if ( ! isset($collections[$sbasId])) { + if (!isset($collections[$sbasId])) { $collections[$databox->get_sbas_id()] = [ 'databox' => $databox, 'databox_collections' => [] diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Share.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Share.php index d2f1901814..dddcb6e61d 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Share.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Share.php @@ -48,13 +48,13 @@ class Share implements ControllerProviderInterface, ServiceProviderInterface $controllers->get('/record/{base_id}/{record_id}/', 'controller.prod.share:shareRecord') ->before(function (Request $request) use ($app, $firewall) { $socialTools = $app['conf']->get(['registry', 'actions', 'social-tools']); - if($socialTools === "all") { + if ($socialTools === "all") { return; } - elseif($socialTools === "none") { + elseif ($socialTools === "none") { $app->abort(403, 'social tools disabled'); } - elseif($socialTools === "publishers") { + elseif ($socialTools === "publishers") { $firewall->requireRightOnSbas( \phrasea::sbasFromBas($app, $request->attributes->get('base_id')), \ACL::BAS_CHUPUB diff --git a/lib/Alchemy/Phrasea/Core/Configuration/StructureTemplate.php b/lib/Alchemy/Phrasea/Core/Configuration/StructureTemplate.php index 727cdd0bce..075fbf89e1 100644 --- a/lib/Alchemy/Phrasea/Core/Configuration/StructureTemplate.php +++ b/lib/Alchemy/Phrasea/Core/Configuration/StructureTemplate.php @@ -7,9 +7,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ + namespace Alchemy\Phrasea\Core\Configuration; use Alchemy\Phrasea\Application; + /** * Class StructureTemplate * @package Alchemy\Phrasea\Core\Configuration @@ -23,6 +25,7 @@ class StructureTemplate { $this->app = $app; } + /** * @return $this * @throws \Exception @@ -30,59 +33,72 @@ class StructureTemplate public function getAvailable() { $templateList = new \DirectoryIterator($this->app['root.path'] . '/lib/conf.d/data_templates'); - if(empty($templateList)) throw new \Exception('No available structure template'); + if (empty($templateList)) { + throw new \Exception('No available structure template'); + } $templates = []; $abbreviationLength = 2; - foreach ($templateList as $template) - { - if($template->isDot() + foreach ($templateList as $template) { + if ($template->isDot() || !$template->isFile() - || $template->getExtension() !== self::TEMPLATE_EXTENSION) continue; - $name = $template->getFilename(); - $abbreviation = strtolower(substr($name,0,$abbreviationLength)); - if(array_key_exists($abbreviation,$templates) ){ - $abbreviation = strtolower(substr($name,0,++$abbreviationLength)); + || $template->getExtension() !== self::TEMPLATE_EXTENSION + ) { + continue; } - $templates[$abbreviation] = $template->getBasename('.'.self::TEMPLATE_EXTENSION); + $name = $template->getFilename(); + $abbreviation = strtolower(substr($name, 0, $abbreviationLength)); + if (array_key_exists($abbreviation, $templates)) { + $abbreviation = strtolower(substr($name, 0, ++$abbreviationLength)); + } + $templates[$abbreviation] = $template->getBasename('.' . self::TEMPLATE_EXTENSION); } $this->templates = $templates; + return $this; } + /** * @return string */ public function __toString() { - if(!$this->templates){ + if (!$this->templates) { return ''; } $templateToString = ''; $cpt = 1; $templateLength = count($this->templates); - foreach ($this->templates as $key => $value){ + foreach ($this->templates as $key => $value) { if (($templateLength - 1) == $cpt) { $separator = ' and '; - }elseif(end($this->templates) == $value){ - $separator = ''; - }else{ + } + elseif (end($this->templates) == $value) { + $separator = ''; + } + else { $separator = ', '; } - $templateToString .= $key.' ('.$value.')'. $separator; + $templateToString .= $key . ' (' . $value . ')' . $separator; $cpt++; } + return $templateToString; } + /** * @param $template * @return mixed * @throws \Exception */ - public function getTemplateName($template = 'en'){ - if(!array_key_exists($template,$this->templates)){ - throw new \Exception('Not found template : '.$template); + public function getTemplateName($template = 'en') + { + if (!array_key_exists($template, $this->templates)) { + throw new \Exception('Not found template : ' . $template); } + return $this->templates[$template]; } + /** * @return mixed */ diff --git a/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPreset.php b/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPreset.php index 7a954badc7..5e16a08fde 100644 --- a/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPreset.php +++ b/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPreset.php @@ -16,6 +16,7 @@ class SubdefPreset * @var array */ private $definitions; + /** * @param string $mediaType * @param array $definitions @@ -23,12 +24,13 @@ class SubdefPreset public function __construct($mediaType, array $definitions) { foreach ($definitions as $definition) { - if (! $definition instanceof Subdef) { + if (!$definition instanceof Subdef) { } } - $this->mediaType = (string) $mediaType; + $this->mediaType = (string)$mediaType; $this->definitions = $definitions; } + /** * @return string */ @@ -36,6 +38,7 @@ class SubdefPreset { return $this->label; } + /** * @return array */ diff --git a/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPresetProvider.php b/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPresetProvider.php index 2f6c989ad8..f7b90d283f 100644 --- a/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPresetProvider.php +++ b/lib/Alchemy/Phrasea/Databox/Subdef/SubdefPresetProvider.php @@ -5,15 +5,17 @@ namespace Alchemy\Phrasea\Databox\Subdef; class SubdefPresetProvider { private $presets = []; + /** * @param string $type Type of media for which to get presets * @return SubdefPreset[] */ public function getPresets($type) { - if (! isset($this->presets[$type])) { + if (!isset($this->presets[$type])) { throw new \InvalidArgumentException('Invalid type'); } + return $this->presets[$type]; } } \ No newline at end of file diff --git a/lib/Alchemy/Phrasea/Helper/Prod.php b/lib/Alchemy/Phrasea/Helper/Prod.php index 54470f60ee..3e2a97b179 100644 --- a/lib/Alchemy/Phrasea/Helper/Prod.php +++ b/lib/Alchemy/Phrasea/Helper/Prod.php @@ -46,9 +46,9 @@ class Prod extends Helper $selected = $saveSettings ? ((isset($searchSet['bases']) && isset($searchSet['bases'][$sbasId])) ? (in_array($coll->get_base_id(), $searchSet['bases'][$sbasId])) : true) : true; $bases[$sbasId]['collections'][] = array( 'selected' => $selected, - 'base_id' => $coll->get_base_id(), - 'name' => $coll->get_name(), - 'order' => $coll->get_ord() + 'base_id' => $coll->get_base_id(), + 'name' => $coll->get_name(), + 'order' => $coll->get_ord() ); } @@ -57,7 +57,7 @@ class Prod extends Helper $userOrderSetting = $settings->getUserSetting($this->app->getAuthenticatedUser(), 'order_collection_by'); // a temporary array to sort the collections - $aName = array(); + $aName = []; list($ukey, $uorder) = ["order", SORT_ASC]; // default ORDER_BY_ADMIN switch ($userOrderSetting) { case $settings::ORDER_ALPHA_ASC : diff --git a/lib/classes/databox/subdef.php b/lib/classes/databox/subdef.php index 188e1ccc22..a0f4228b5c 100644 --- a/lib/classes/databox/subdef.php +++ b/lib/classes/databox/subdef.php @@ -39,12 +39,12 @@ class databox_subdef protected $downloadable; protected $translator; protected static $mediaTypeToSubdefTypes = [ - SubdefType::TYPE_AUDIO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_AUDIO], + SubdefType::TYPE_AUDIO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_AUDIO], SubdefType::TYPE_DOCUMENT => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_FLEXPAPER], - SubdefType::TYPE_FLASH => [SubdefSpecs::TYPE_IMAGE], - SubdefType::TYPE_IMAGE => [SubdefSpecs::TYPE_IMAGE], - SubdefType::TYPE_VIDEO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_VIDEO, SubdefSpecs::TYPE_ANIMATION], - SubdefType::TYPE_UNKNOWN => [SubdefSpecs::TYPE_IMAGE], + SubdefType::TYPE_FLASH => [SubdefSpecs::TYPE_IMAGE], + SubdefType::TYPE_IMAGE => [SubdefSpecs::TYPE_IMAGE], + SubdefType::TYPE_VIDEO => [SubdefSpecs::TYPE_IMAGE, SubdefSpecs::TYPE_VIDEO, SubdefSpecs::TYPE_ANIMATION], + SubdefType::TYPE_UNKNOWN => [SubdefSpecs::TYPE_IMAGE], ]; const CLASS_THUMBNAIL = 'thumbnail'; const CLASS_PREVIEW = 'preview'; @@ -303,7 +303,7 @@ class databox_subdef return $this->downloadable; } - /** + /** * @return bool */ public function isOrderable() diff --git a/resources/ansible/roles/app/templates/configuration.tpl b/resources/ansible/roles/app/templates/configuration.tpl index bf39dd9a68..905c19b731 100644 --- a/resources/ansible/roles/app/templates/configuration.tpl +++ b/resources/ansible/roles/app/templates/configuration.tpl @@ -12,7 +12,7 @@ main: port: 3306 user: '{{ mariadb.user }}' password: '{{ mariadb.password }}' - dbname: '{{ mariadb.appbox_db }}' +dbname: '{{ mariadb.appbox_db }}' driver: pdo_mysql charset: UTF8 database-test: diff --git a/resources/www/admin/styles/main.scss b/resources/www/admin/styles/main.scss index 8e9235c66d..d238fee86b 100644 --- a/resources/www/admin/styles/main.scss +++ b/resources/www/admin/styles/main.scss @@ -350,6 +350,7 @@ div.switch_right.unchecked { right: 40px; z-index: 1; } + h2.subdefName { display: inline-block; margin-right: 1.5rem; @@ -364,7 +365,7 @@ h2.subdefName { vertical-align: top; } -.langTab h3{ +.langTab h3 { font-weight: 700; font-size: 13px; margin: 4px 0; @@ -372,13 +373,14 @@ h2.subdefName { text-align: center; } -.toggle{ +.toggle { display: block; margin: 15px 0; color: #08c; cursor: pointer; } -.subdefTab input, .langTab input{ + +.subdefTab input, .langTab input { margin: 0; } @@ -387,6 +389,7 @@ label[for="elasticsearch_settings_highlight"] { margin-left: 0.5rem; margin-bottom: 1rem; } + input[id="elasticsearch_settings_highlight"] { float: left; } @@ -394,6 +397,7 @@ input[id="elasticsearch_settings_highlight"] { #downbutton { margin: 1rem 0; } + #upbutton { width: 100%; text-align: left; @@ -521,7 +525,7 @@ span.simplecolorpicker.picker { } @media screen and (max-width: 1150px) { - .langTab{ + .langTab { display: block; } } diff --git a/templates/web/admin/subdefs.html.twig b/templates/web/admin/subdefs.html.twig index d103d7022c..6971846d5e 100644 --- a/templates/web/admin/subdefs.html.twig +++ b/templates/web/admin/subdefs.html.twig @@ -16,16 +16,16 @@ #} {% elseif option.getType() == constant('\\Alchemy\\Phrasea\\Media\\Subdef\\OptionType\\OptionType::TYPE_ENUM') %} - + {{ 'Choisir' | trans }} {% for pot_value in option.getAvailableValues() %} - {{ pot_value }} + {{ pot_value }} {% endfor %} {% elseif option.getType() == constant('\\Alchemy\\Phrasea\\Media\\Subdef\\OptionType\\OptionType::TYPE_BOOLEAN') %} - {{ 'yes' | trans }} - {{ 'no' | trans }} + {{ 'yes' | trans }} + {{ 'no' | trans }} {% elseif option.getType() == constant('\\Alchemy\\Phrasea\\Media\\Subdef\\OptionType\\OptionType::TYPE_MULTI') %} {% for pot_value, selected in option.Value(true) %} - {{ pot_value }} + {{ pot_value }} {% endfor %} {% endif %} {% if option.type == constant('\\Alchemy\\Phrasea\\Media\\Subdef\\OptionType\\OptionType::TYPE_RANGE') %} - + {% endif %} @@ -542,8 +574,8 @@ {% endfor %} diff --git a/templates/web/common/menubar.html.twig b/templates/web/common/menubar.html.twig index e33d3dc015..d11781ffa1 100644 --- a/templates/web/common/menubar.html.twig +++ b/templates/web/common/menubar.html.twig @@ -138,7 +138,8 @@ {{ 'phraseanet:: aide' | trans }} - + diff --git a/templates/web/prod/Baskets/Reorder.html.twig b/templates/web/prod/Baskets/Reorder.html.twig index 375062b2f2..e10d2e961f 100644 --- a/templates/web/prod/Baskets/Reorder.html.twig +++ b/templates/web/prod/Baskets/Reorder.html.twig @@ -31,8 +31,10 @@ - - + + {% endfor %} diff --git a/templates/web/prod/Share/record.html.twig b/templates/web/prod/Share/record.html.twig index 477f0fe192..3873e093a3 100644 --- a/templates/web/prod/Share/record.html.twig +++ b/templates/web/prod/Share/record.html.twig @@ -1,7 +1,7 @@ {% if not isAvailable %} {{ 'No permalink available.' | trans }} {% else %} - {% if subdefList is not empty %} + {% if subdefList is not empty %} {% set defKey = defaultKey %} @@ -17,14 +17,18 @@ - - + + {% trans %}Send to Twitter{% endtrans %} - - + + {% trans %}Send to Facebook{% endtrans %} @@ -32,19 +36,23 @@ {% trans %}Resource URL{% endtrans %} - - {{ 'previewLinkLabel' | trans }} + {{ 'previewLinkLabel' | trans }} {{ 'copyClipboardLabel' | trans }} {% trans %}Detailed view URL{% endtrans %} - + - {{ 'previewLinkLabel' | trans }} + {{ 'previewLinkLabel' | trans }} {{ 'copyClipboardLabel' | trans }} @@ -53,11 +61,14 @@ {% trans %}Embed code{% endtrans %} {% spaceless %} - + {% endspaceless %} - {{ 'previewLinkLabel' | trans }} + {{ 'previewLinkLabel' | trans }} {{ 'copyClipboardLabel' | trans }} @@ -67,31 +78,35 @@
{{ 'No permalink available.' | trans }}
- - + + {% trans %}Send to Twitter{% endtrans %}
- - + + {% trans %}Send to Facebook{% endtrans %}
- {{ 'previewLinkLabel' | trans }} + {{ 'previewLinkLabel' | trans }} {{ 'copyClipboardLabel' | trans }}