From 93aa9be0fa25d45170c9e72e4c10e5fb9664ff18 Mon Sep 17 00:00:00 2001 From: Nicolas Le Goff Date: Thu, 21 Mar 2013 16:06:06 +0100 Subject: [PATCH] Fix sub views substitution --- lib/Alchemy/Phrasea/Controller/Prod/Tools.php | 4 +- .../web/prod/actions/Tools/index.html.twig | 122 +++++++++--------- .../Phrasea/Controller/Prod/ToolsTest.php | 59 +++++++++ 3 files changed, 124 insertions(+), 61 deletions(-) create mode 100644 tests/Alchemy/Phrasea/Controller/Prod/ToolsTest.php diff --git a/lib/Alchemy/Phrasea/Controller/Prod/Tools.php b/lib/Alchemy/Phrasea/Controller/Prod/Tools.php index 66cd544cbd..c0f5ef05ae 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/Tools.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/Tools.php @@ -205,13 +205,13 @@ class Tools implements ControllerProviderInterface , $request->get('record_id') ); - $media = $app['Core']['mediavorus']->guess($file); + $media = $app['Core']['mediavorus']->guess(new \SplFileInfo($tmpFile)); $record->substitute_subdef('thumbnail', $media); $success = true; } catch (\Exception $e) { - $errorMessage = $e->getMessage(); + $errorMessage = _('An error occured'); } } else { $errorMessage = _('file is not valid'); diff --git a/templates/web/prod/actions/Tools/index.html.twig b/templates/web/prod/actions/Tools/index.html.twig index 2016ac3617..6d4c8964b2 100644 --- a/templates/web/prod/actions/Tools/index.html.twig +++ b/templates/web/prod/actions/Tools/index.html.twig @@ -57,7 +57,7 @@ {% endif %} - {% if selectionLength == 1 and registry.get('GV_seeOngChgDoc') %} + {% if selectionLength == 1 and (registry.get('GV_seeOngChgDoc') or registry.get('GV_seeNewThumb')) %}
  • {% trans "substitution" %} @@ -73,7 +73,7 @@ {% endif %} - {# subef section #} + {# subdef section #}
    @@ -269,70 +269,74 @@ {% endif %} {# hd sub section #} - {% if selectionLength == 1 %} + {% if selectionLength == 1 and (registry.get('GV_seeOngChgDoc') or registry.get('GV_seeNewThumb')) %} {% for record in selection %}
    - {% if registry.get('GV_seeOngChgDoc') %} -
    - + {% if "unknown" == record.get_type() %} + {% trans "Substitution is not possible for this kind of record" %} + {% else %} + {% if registry.get('GV_seeOngChgDoc') %} +
    + -
    -  {% trans "substitution HD" %}  -
    - - -
    - - - - -
    -
    -
    -
    - - +
    +  {% trans "substitution HD" %}  +
    + + +
    + + + + +
    +
    +
    +
    + + +
    + +
    - -
    -
    - {% endif %} + {% endif %} - {% if registry.get('GV_seeNewThumb') %} -
    -
    -
    -  {% trans "substitution SD" %}  -
    - - - - -
    -
    -
    -
    - - + {% if registry.get('GV_seeNewThumb') %} +
    + +
    +  {% trans "substitution SD" %}  +
    + + + + +
    +
    +
    +
    + + +
    + +
    - -
    -
    - {% endif %} + {% endif %} + {% endif %}
    {% endfor %} {% endif %} diff --git a/tests/Alchemy/Phrasea/Controller/Prod/ToolsTest.php b/tests/Alchemy/Phrasea/Controller/Prod/ToolsTest.php new file mode 100644 index 0000000000..62e15dd5a2 --- /dev/null +++ b/tests/Alchemy/Phrasea/Controller/Prod/ToolsTest.php @@ -0,0 +1,59 @@ +client = $this->createClient(); + $this->tmpFile = sys_get_temp_dir() . '/' . time() . mt_rand(1000, 9999) . '.jpg'; + copy(__DIR__ . '/../../../../testfiles/cestlafete.jpg', $this->tmpFile); + } + + public function tearDown() + { + if (file_exists($this->tmpFile)) { + unlink($this->tmpFile); + } + parent::tearDown(); + } + + public function createApplication() + { + $app = require __DIR__ . '/../../../../../lib/Alchemy/Phrasea/Application/Prod.php'; + + $app['debug'] = true; + unset($app['exception_handler']); + + return $app; + } + + public function testRouteChangeThumb() + { + $record = static::$records['record_1']; + + $this->client->request('POST', '/tools/chgthumb/', array( + 'sbas_id' => $record->get_sbas_id(), + 'record_id' => $record->get_record_id(), + ), array( + 'newThumb' => new UploadedFile( + $this->tmpFile, 'KIKOO.JPG', 'image/jpg', 2000 + ) + )); + + $response = $this->client->getResponse(); + + $content = $response->getContent(); + + $this->assertEquals(200, $response->getStatusCode()); + $this->assertFalse(strpos(_('An error occured'), $content)); + $this->assertFalse(strpos(_('file is not valid'), $content)); + } +}