diff --git a/.gitattributes b/.gitattributes index 900b91216a92b00f442a33a1803e1a0534e819f4..64f6ef3233c4a30b9221ecc196751be3df5108b8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2533,6 +2533,7 @@ public/admin/images/ico/tester.gif -text public/admin/images/ico/up.gif -text public/admin/images/insert.gif -text public/admin/images/loading.gif -text +public/admin/images/patience.gif -text svneol=unset#unset public/admin/images/picto/abonnes.gif -text public/admin/images/picto/alert.png -text public/admin/images/picto/artevod_16.png -text svneol=unset#image/png diff --git a/application/modules/admin/controllers/UploadController.php b/application/modules/admin/controllers/UploadController.php index f0ba5f65039a86dcb23c043f8495000e4f5f0b99..6db76c96e686a89b72d863c59b1c1c377a5937bd 100644 --- a/application/modules/admin/controllers/UploadController.php +++ b/application/modules/admin/controllers/UploadController.php @@ -19,6 +19,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class Admin_UploadController extends Zend_Controller_Action { + public function preDispatch(){ + Zend_Layout::startMvc(array()); + } + public function multipleAction() { $this->view->headScript() ->appendFile(JQUERY) @@ -71,7 +75,7 @@ $(document).ready(function () { public function vignetteNoticeAction() { - $this->_helper->getHelper('viewRenderer')->setLayoutScript('empty.phtml'); + $this->_helper->getHelper('viewRenderer')->setLayoutScript('subModal.phtml'); $form = new ZendAfi_Form_VignetteNotice(); diff --git a/application/modules/admin/views/scripts/upload/vignette-notice.phtml b/application/modules/admin/views/scripts/upload/vignette-notice.phtml index 5bbc86c61b0a631352afafcd8f08af293e674e35..63d55fd41420e8b49f7fb42f5b731c2e460995db 100644 --- a/application/modules/admin/views/scripts/upload/vignette-notice.phtml +++ b/application/modules/admin/views/scripts/upload/vignette-notice.phtml @@ -1,5 +1,19 @@ +<h1 style="text-align: center; margin-bottom: 10px"><?php echo $this->_('Modifier la vignette'); ?></h1> + +<div class="formTable" style="margin: 0 auto"> + <?php if ($this->error) echo '<div class="error">'.$this->_('Erreur: ').$this->error.'</div>'; -echo $this->form; -?> \ No newline at end of file +echo $this->renderForm($this->form); +?> + +<img class="patience" style="display:none; margin: 0 auto" src="<?php echo URL_ADMIN_IMG ?>patience.gif" border="0" alt="'.$this->_('Chargement en cours').'" /> +</div> + + +<script> +$('input[type=submit]').click(function() { + $('img.patience').css('display', 'block'); + }); +</script> \ No newline at end of file diff --git a/application/modules/admin/views/scripts/upload/vignette-uploaded.phtml b/application/modules/admin/views/scripts/upload/vignette-uploaded.phtml index 2616a4005452792f0b52eb57c169e592e4adb0b9..e5c395785d8ebfc118bc2ce487eee4bd81a9fa8f 100644 --- a/application/modules/admin/views/scripts/upload/vignette-uploaded.phtml +++ b/application/modules/admin/views/scripts/upload/vignette-uploaded.phtml @@ -1,4 +1,4 @@ -<p> +<p style="text-align: center"> <?php echo $this->_('La vignette a bien été transférée'); ?> diff --git a/application/modules/opac/views/scripts/recherche/viewnotice.phtml b/application/modules/opac/views/scripts/recherche/viewnotice.phtml index d6fd8c312fef84d96c0dbfd02720f99826b950d9..36d9eb0d3c8c12d82e8dd5fc29a3b820e0eafbb7 100644 --- a/application/modules/opac/views/scripts/recherche/viewnotice.phtml +++ b/application/modules/opac/views/scripts/recherche/viewnotice.phtml @@ -45,16 +45,23 @@ $notice_html=new Class_NoticeHtml($this->notice); <div style="width:120px; height: 0px; float:right; "> <?php - if($this->url_img["image"]) - { + if($this->url_img["image"]) { printf('<a id="vignette" href="%s" title="%s">', $this->url_img["image"], $this->notice["titre_principal"]); printf('<img src="%s" width="100" border="0" alt="%s" />', $this->url_img["vignette"], $this->_('Vignette')); echo '</a>'; echo '<script type="text/javascript">$("a[id=\'vignette\']").slimbox({}, null, null)</script>'; } else - printf('<img src="%s" width="100" border="0" alt="%s" /> ', $this->url_img["vignette"], $this->_('Vignette')); - ?> + echo printf('<img src="%s" width="100" border="0" alt="%s" /> ', $this->url_img["vignette"], $this->_('Vignette')); + + if (Class_Users::isCurrentUserCanAccesBackend()) + echo sprintf('<a href="#" onclick="showPopWin(\'%s\', 700, 200); return false;">%s</a>', + $this->url(['module' => 'admin', + 'controller' => 'upload', + 'action' => 'vignette-notice', + ]), + $this->_('Modifier la vignette')); + ?> <div id="reseaux-sociaux"></div> <?php diff --git a/library/Class/Users.php b/library/Class/Users.php index fe08e9a194974b37580242188021e673a76b830a..481c480172fffb429e0eb4a906dbeef3a650b4d2 100644 --- a/library/Class/Users.php +++ b/library/Class/Users.php @@ -969,9 +969,7 @@ class Class_Users extends Storm_Model_Abstract { * return Class_Users */ public function beAbonneSIGB() { - return $this - ->setRoleLevel(ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB) - ->setRole(ZendAfi_Acl_AdminControllerRoles::getNomRole(ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB)); + return $this->changeRoleTo(ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB); } @@ -979,8 +977,24 @@ class Class_Users extends Storm_Model_Abstract { * return Class_Users */ public function beInvite() { + return $this->changeRoleTo(ZendAfi_Acl_AdminControllerRoles::INVITE); + } + + + /** + * return Class_Users + */ + public function beAdminPortail() { + return $this->changeRoleTo(ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL); + } + + + /** + * return Class_Users + */ + public function changeRoleTo($role) { return $this - ->setRoleLevel(ZendAfi_Acl_AdminControllerRoles::INVITE) - ->setRole(ZendAfi_Acl_AdminControllerRoles::getNomRole(ZendAfi_Acl_AdminControllerRoles::INVITE)); + ->setRoleLevel($role) + ->setRole(ZendAfi_Acl_AdminControllerRoles::getNomRole($role)); } } \ No newline at end of file diff --git a/library/ZendAfi/Form/VignetteNotice.php b/library/ZendAfi/Form/VignetteNotice.php index 93ce371e8c567c990407458ce5eb20cd976ea2a8..f3e456a2ab3d94b017c15155aec10a3f985c66e7 100644 --- a/library/ZendAfi/Form/VignetteNotice.php +++ b/library/ZendAfi/Form/VignetteNotice.php @@ -28,6 +28,8 @@ class ZendAfi_Form_VignetteNotice extends ZendAfi_Form { ->addElement('url', 'url_vignette', ['label' => $this->_('URL de la vignette'), + 'size' => 80, + 'required' => true, 'placeholder' => 'ex: http://upload.wikimedia.org/wikipedia/en/2/2c/Harry_Potter_and_the_Philosopher%27s_Stone.jpg', 'validators' => ['url', 'vignetteUrl']]) ->addElement('submit', diff --git a/public/admin/images/patience.gif b/public/admin/images/patience.gif new file mode 100644 index 0000000000000000000000000000000000000000..085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb Binary files /dev/null and b/public/admin/images/patience.gif differ diff --git a/tests/application/modules/admin/controllers/UploadControllerTest.php b/tests/application/modules/admin/controllers/UploadControllerTest.php index b43c3ba1f7bcb8986c3a5031ca944cc5a5dc5de6..eba87c193784c71eb09c1b072e1964ba4bc163ae 100644 --- a/tests/application/modules/admin/controllers/UploadControllerTest.php +++ b/tests/application/modules/admin/controllers/UploadControllerTest.php @@ -340,7 +340,8 @@ class UploadControllerVignetteNoticeActionInvalidPostTest extends UploadControll return [ ['http://upload.wikimedia.org/potter.bmp'], ['http://upload.wikimedia.org/potter'], - ['zor k'] + ['zor k'], + [''] ]; } diff --git a/tests/application/modules/opac/controllers/RechercheControllerTest.php b/tests/application/modules/opac/controllers/RechercheControllerTest.php index 6642e416ab0afff51249e3a3de8a74a0503e5be5..f7e76607c27e6d4669b07abc7c78e52e647d70f9 100644 --- a/tests/application/modules/opac/controllers/RechercheControllerTest.php +++ b/tests/application/modules/opac/controllers/RechercheControllerTest.php @@ -158,6 +158,25 @@ class RechercheControllerViewNoticeClefAlphaWithDoublonsTest extends RechercheCo +class RechercheControllerUploadVignetteTest extends RechercheControllerNoticeTestCase { + /** @test */ + public function linkToUploadVignetteShouldNotBePresentForInvite() { + Class_Users::getIdentity()->beInvite(); + $this->dispatch(sprintf('recherche/viewnotice/id/%d', $this->notice->getId()), true); + $this->assertNotXPathContentContains('//a', 'Modifier la vignette'); + } + + /** @test */ + public function linkToUploadVignetteShouldBePresentForAdmin() { + Class_Users::getIdentity()->beAdminPortail(); + $this->dispatch(sprintf('recherche/viewnotice/id/%d', $this->notice->getId()), true); + $this->assertXPathContentContains('//a', 'Modifier la vignette'); + } +} + + + + class RechercheControllerReservationPickupAjaxActionTest extends AbstractControllerTestCase { public function setUp() { parent::setUp();