Commit c1c8531f authored by Ghislain Loas's avatar Ghislain Loas

Merge branch 'stable' into hotline-master

Conflicts:
	VERSIONS
	library/startup.php
	tests/library/ZendAfi/MailTest.php
parents d40d3d33 efae7fe7
17/09/2015 - v7.3.11
22/09/2015 - v7.3.12
- ticket #28958 : Le lien pour ouvrir la ressource 1dtouch devrait ouvrir un nouvel onglet
- ticket #29622 : Correction compatibilité explorateur de fichier / hébergement mutualisé sans sous-répertoire
- ticket #26993 : PB Affichage incorrect dans Bokeh des notices de dépouillement
- ticket #29633 : Correction de la validation des emails avant envoi des lettres d'information pour les emails finissant en .ch
- ticket #29472 : L'Identification des usagers de type abonnés SIGB provenant de la base Koha de la BDM aboutit à une page blanche
- ticket #29412 : correction du vignettage des articles dans le résultat de recherche.
- ticket #29371 : Admin Bokeh : lien N° de version pointe vers le fichier stable ou master
- ticket #29345 : Correction d'un blocage possible de l'envoi des lettres d'information lorsqu'une erreur survient à la validation d'un mail
- ticket #29226 : Correction de dédoublonnage Karvi
- ticket #29758 : correction de la boite calendrier en mode responsive
- ticket #29825 : suppression des facettes thesaurus erronnées dans le phase "clean" de l'intégration des notices
17/09/2015 - v7.3.11
- ticket #29441 : newsletter qui ne part pas
- ticket #29689 : Correction d'une erreur à l'intégration des articles de dépouillement dans cosmogramme
- ticket #28958 : Le lien pour ouvrir la ressource 1dtouch devrait ouvrir un nouvel onglet
- ticket #26993 : PB Affichage incorrect dans Bokeh des notices de dépouillement
- ticket #29472 : L'Identification des usagers de type abonnés SIGB provenant de la base Koha de la BDM aboutit à une page blanche
15/09/2015 - v7.3.10
......
- ticket #29412 : correction du vignettage des articles dans le résultat de recherche.
\ No newline at end of file
- ticket #29622 : Correction compatibilité explorateur de fichier / hébergement mutualisé sans sous-répertoire
\ No newline at end of file
- ticket #29633 : Correction de la validation des emails avant envoi des lettres d'information pour les emails finissant en .ch
\ No newline at end of file
......@@ -23,6 +23,7 @@
->loadPrettyPhoto();
$script_loader = Class_ScriptLoader::getInstance();
$script_loader->addJQueryReady('setupAnchorsTarget();');
$head_scripts->renderStyleSheets();
$script_loader->renderStyleSheets();
......
<h2><?php echo $this->traduire('Version');?>&nbsp;:
<a href='http://git.afi-sa.fr/afi/opacce/blob/master/VERSIONS'><?php echo BOKEH_RELEASE_NUMBER ?></a>
</h2>
<?php
echo $this->tag('h2',
$this->_('Version') . ' : ' . $this->tag('a',
BOKEH_RELEASE_NUMBER,
['href' => BOKEH_REMOTE_FILES . 'blob/' . BOKEH_VERSION . '/VERSIONS']));
?>
<h2><?php echo $this->traduire('Paramètres du site');?>&nbsp;:</h2>
......
......@@ -21,12 +21,14 @@
require_once 'NoticeIntegrationTest.php';
/** @see http://forge.afi-sa.fr/issues/17196 */
class NoticeIntegrationDedupWithoutIsbnTest extends NoticeIntegrationTestCase {
public function getProfilDonnees() {
return Class_IntProfilDonnees::forALOES()->setIdProfil(113)
->getRawAttributes();
}
public function setUp() {
parent::setUp();
$this->fixture('Class_Notice', ['id' => 15824768,
......@@ -74,3 +76,59 @@ class NoticeIntegrationDedupWithoutIsbnTest extends NoticeIntegrationTestCase {
$this->assertEquals(2, Class_Notice::count());
}
}
/** @see http://forge.afi-sa.fr/issues/29226 */
class NoticeIntegrationDedupCaliceWithoutIsbnTest extends NoticeIntegrationTestCase {
public function getProfilDonnees() {
return Class_IntProfilDonnees::forKarvi()
->setIdProfil(113)
->getRawAttributes();
}
public function setUp() {
parent::setUp();
$this->fixture('Class_Notice',
['id' => 30,
'type_doc' => 5,
'alpha_titre' => 'ACTUALITE DU VIRTUEL',
'alpha_auteur' => 'FR BNF',
'titres' => 'ACTUALITE AKTUALIT VIRTUEL',
'auteurs' => 'BNF',
'editeur' => '[Centre national d\'art et de culture Georges-Pompidou (Paris)]',
'isbn' => '',
'ean' => null,
'id_commerciale' => '',
'id_bnf' => '',
'clef_alpha' => 'ACTUALITEDUVIRTUEL--FRB--CENTRENATIONALDARTETDECULTUREGEORGESPOMPIDOUPARIS-1997-5',
'clef_oeuvre' => 'ACTUALITEDUVIRTUEL--FRB-',
'clef_chapeau' => '',
'qualite' => 10,
'date_creation' => '2015-05-02 00:00:00',
'date_maj' => '2015-09-13 13:22:53',
'url_vignette' => 'NO',
'url_image' => 'NO']);
VariableCache::getInstance()
->setValeurCache(['filtrer_fulltext' => 1,
'mode_doublon'=> 0,
'tracer_accents_iso' => 0,
'non_exportable'=> 'electre;decitre;gam;zebris',
'controle_codes_barres' => 1,
'unimarc_zone_titre' => '200$a;461$t',
'unicite_code_barres' => 0,
'champs_sup' => '',
'ean_345' => 1]);
$this->loadNotice('unimarc_mulhouse_remanence');
}
/** @test */
public function thereShouldHave2Records() {
$this->assertEquals(2, Class_Notice::count());
}
}
01265nam 2200277 4500001001200000005001700012010001300029100003500042101000800077102000700085200006000092210002900152215001900181219000900200606005700209606005100266676001100317679000900328700003200337801003000369993001900399995020700418995016900625995016800794999002500962DOC0011089020150907174443.0 d29 Euros a20031209 20 m 0101 aFre aFR aRemanences : Mulhouse au travailbLivrefPierre Dolivet aMulhouse (68)cJDMd2003 a224 p.d30 cm cREM: aClasse ouvrireyFranceyMulhouse (Haut-Rhin)379180 aIndustrieyFranceyMulhouse (Haut-Rhin)346860 a338.09 aFcM aDolivetbPierre3833864070 aFRbMD68-Colmarc20130827 aremanences.jpg aMD68-ColmarbMD68-ColmarcPFASTATTd68256-1f00100005888712h30588871jakAL 338.09 DOLm20150421n20170421oPqaraztFC79D1FAlsatiquesFAlsatiquesGBH12249819I20040415J29,00L338.09Q7R20150421 aMD68-ColmarbMD68-Colmarf00100005890635h30589063jakAL 338.09 DOLoPqaraztFC79D1FAlsatiquesFAlsatiquesGBH12249820I20040504J29,00L338.09Q17R20150115 aMD68-ColmarbMD68-Colmarf00100005890643h30589064jakAL 338.09 DOLoPqaraztFC79D1FAlsatiquesFAlsatiquesGBH12249821I20040504J29,00L338.09Q3R20111205 zpatchImportOrpheeBdp
\ No newline at end of file
......@@ -151,7 +151,7 @@ class Class_AdminVarLoader extends Storm_Model_Loader {
'FACETTE_INTERET_LIBELLE' => Class_AdminVar_Meta::newDefault('Libellé de la facette centres d\'intérêt'),
'FACETTE_MATIERE_LIBELLE' => Class_AdminVar_Meta::newDefault('Libellé de la facette matière'),
'FACETTE_TAG_LIBELLE' => Class_AdminVar_Meta::newDefault('Libellé de la facette tag'),
'UNLEASHED_FACETS' => Class_AdminVar_Meta::newMultiInput($this->_('Liste des codes des facettes qui ne sont pas limitées à l\'affichage dans le résultat de recherche<br/>Exemple : T => Type de doc, Y => Annexe, B => Bibliothèque, ... (Voir <a href="http://git.afi-sa.fr/afi/opacce/blob/master/library/Class/Codification.php#L24">la liste complète</a>)')),
'UNLEASHED_FACETS' => Class_AdminVar_Meta::newMultiInput($this->_('Liste des codes des facettes qui ne sont pas limitées à l\'affichage dans le résultat de recherche<br/>Exemple : T => Type de doc, Y => Annexe, B => Bibliothèque, ... (Voir <a href="' . BOKEH_REMOTE_FILES . 'blob/' . BOKEH_VERSION . '/library/Class/Codification.php#L24">la liste complète</a>)')),
'AFFICHER_DISPONIBILITE_SUR_RECHERCHE' => Class_AdminVar_Meta::newOnOff($this->_('Activation de la disponibilite dans le resultat de recherche.')),
'NOM_DOMAINE' => Class_AdminVar_Meta::newDefault($this->_('Nom de domaine principal de l\'OPAC, ex: monopac.macommune.fr')),
'DATE_LAST_FULL_INTEGRATION_USERS' => Class_AdminVar_Meta::newDefault($this->_('Date du dernier import total des abonnés (modifié par cosmogramme)')),
......
......@@ -107,6 +107,7 @@ class Class_CosmoVar extends Storm_Model_Abstract {
protected $_loader_class = 'Class_CosmoVarLoader';
const DOUBLE_SEARCH_ALPHA_KEY = 1;
const DOUBLE_SEARCH_IDS = 0;
/**
* @param string $name
......
......@@ -64,6 +64,9 @@ class Class_Cosmogramme_Integration_PhaseNotice extends Class_Cosmogramme_Integr
$nb1 = Class_NoticeSuccincte::countBy(['id_bib' => $id_int_bib]);
Class_NoticeSuccincte::deleteBy(['id_bib' => $id_int_bib]);
Class_CodifThesaurus::deleteBy(['code' => null,
'rules' => null]);
$del_msg .= '<span class="vert">' . $nb . ' exemplaires supprimés</span><br>';
$del_msg .= '<span class="vert">' . $nb1 . ' notices succinctes supprimées</span><br><br>';
$this->_log->ecrire($del_msg);
......
......@@ -16,7 +16,7 @@
*
* You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
* along with BOKEH; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class ZendAfi_Mail extends Zend_Mail {
......@@ -24,15 +24,22 @@ class ZendAfi_Mail extends Zend_Mail {
parent::__construct($charset);
}
public function addTo($email, $name='') {
$validator = new Zend_Validate_EmailAddress();
$mails = array_filter(preg_split('/\s*[,;]\s*/', $email),
$validator = $this->_getValidator();
$mails = array_filter(
preg_split('/\s*[,;]\s*/', $email),
function($value) use ($validator) {
return $validator->isValid($value);
try {
return $validator->isValid($value);
} catch(Zend_Validate_Exception $e) {
return false;
}
});
foreach ($mails as $recipient)
parent::addTo($recipient, $name);
return $this;
}
......@@ -43,7 +50,7 @@ class ZendAfi_Mail extends Zend_Mail {
public function addBcc($email) {
$validator = new Zend_Validate_EmailAddress();
$validator = $this->_getValidator();
try {
if ($validator->isValid($email))
......@@ -54,34 +61,37 @@ class ZendAfi_Mail extends Zend_Mail {
return $this;
}
/**
* Sets the subject of the message
*
* @param string $subject
* @return Zend_Mail Provides fluent interface
* @throws Zend_Mail_Exception
*/
public function setSubject($subject)
{
if ($this->_subject === null) {
$subject = strtr($subject,"\r\n\t",'???');
$this->_subject = $subject;
$this->_storeHeader('Subject', $this->_subject);
} else {
/**
* @see Zend_Mail_Exception
*/
require_once 'Zend/Mail/Exception.php';
throw new Zend_Mail_Exception('Subject set twice');
}
return $this;
}
public function setBodyText($txt, $charset = null, $encoding = Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
parent::setBodyText($txt,'utf-8',Zend_Mime::ENCODING_8BIT);
protected function _getValidator() {
return new Zend_Validate_EmailAddress();
}
/**
* @param string $subject
* @return Zend_Mail Provides fluent interface
* @throws Zend_Mail_Exception
*/
public function setSubject($subject) {
if ($this->_subject === null) {
$subject = strtr($subject, "\r\n\t", '???');
$this->_subject = $subject;
$this->_storeHeader('Subject', $this->_subject);
return $this;
}
/**
* @see Zend_Mail_Exception
*/
require_once 'Zend/Mail/Exception.php';
throw new Zend_Mail_Exception('Subject set twice');
}
public function setBodyText($txt, $charset = null, $encoding = Zend_Mime::ENCODING_QUOTEDPRINTABLE) {
parent::setBodyText($txt, 'utf-8', Zend_Mime::ENCODING_8BIT);
return $this;
}
}
?>
\ No newline at end of file
......@@ -64,7 +64,11 @@ function defineConstant($name, $value) {
function setupConstants() {
defineConstant('BOKEH_MAJOR_VERSION','7.3');
defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.11');
defineConstant('BOKEH_RELEASE_NUMBER', BOKEH_MAJOR_VERSION . '.12');
defineConstant('BOKEH_REMOTE_FILES', 'http://git.afi-sa.fr/afi/opacce/');
defineConstant('BOKEH_VERSION', (substr(BOKEH_MAJOR_VERSION, -1) % 2) ? 'master' : 'stable');
defineConstant('ROOT_PATH', realpath(dirname(__FILE__).'/..').'/');
......
......@@ -13,11 +13,11 @@ $(document).ready(function() {
var enableWidgetButton = function() {
$("#col_wrapper .colGauche div.boite, .facette_outer").click(function(e) {
$(this).toggleClass('show_content');
$("#col_wrapper .colGauche div.boite, .facette_outer").toggleClass('show_content');
});
$("#col_wrapper .colGauche div.boite *").click(function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
});
}
......
......@@ -56,6 +56,24 @@ class IndexControllerIndexTest extends Admin_AbstractControllerTestCase {
public function editDomaineNameLinkShouldBePresent() {
$this->assertXPathContentContains('//a[contains(@href, "/admin/index/adminvaredit/cle/NOM_DOMAINE")]','Modifier', $this->_response->getBody());
}
/** @test */
public function linkToDocShouldBePresent() {
$this->assertXPathContentContains('//h2/a[contains(@href, "/blob/' . BOKEH_VERSION . '/VERSIONS")]', BOKEH_RELEASE_NUMBER);
}
/** @test */
public function onloadUtilsJsShouldBeLoaded() {
$this->assertXPath('//script[contains(@src, "onload_utils.js")]');
}
/** @test */
public function setupAnchorTargetShouldBePresent() {
$this->assertXPathContentContains('//script', 'setupAnchorsTarget();');
}
}
......
......@@ -92,6 +92,16 @@ class AdminVarTestGet extends AdminVarTestCase {
$this->assertEquals('<script type="text/javascript">\'test\'',
Class_AdminVar::get('JS_STAT'));
}
/** @test */
public function unleashFacetDescriptionShouldContainsLinkToRemoteFiles() {
$this->fixture('Class_AdminVar',
['id' => 'UNLEASHED_FACETS',
'valeur' => '']);
$this->assertContains('/blob/' . BOKEH_VERSION . '/library/Class/Codification.php', Class_AdminVar::getStaticMeta('UNLEASHED_FACETS')->getDescription());
}
}
......
......@@ -25,10 +25,24 @@ require_once __DIR__ . '/PhaseNoticeTestCase.php';
class PhaseNoticeImportTest extends PhaseNoticeTestCase {
protected function _prepareFixtures() {
parent::_prepareFixtures();
$this->fixture('Class_CosmoVar',
['id' => 'mode_doublon',
'valeur' => Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY]);
$this->fixture('Class_IntBib',
['id' => 1,
'comm_sigb' => Class_IntBib::COM_NANOOK,
'comm_params' => ['url_serveur' => 'http://bib.valensol.net']]);
$this->fixture('Class_CodifThesaurus',
['id' => 1,
'libelle' => 'AGE',
'code' => null,
'rules' => null]);
Class_CodifThesaurus::addFacetForSigb('Public' , '993$a',Class_IntBib::COM_NANOOK);
$this->fixture('Class_Exemplaire',
['id' => 889039, 'id_int_bib' => 2]);
......@@ -76,6 +90,12 @@ class PhaseNoticeImportTest extends PhaseNoticeTestCase {
}
/** @test */
public function onlyPublicFacetShouldBeInDb() {
$this->assertSame([Class_CodifThesaurus::findFirstBy(['libelle_facette' => 'Public'])], Class_CodifThesaurus::findAll());
}
/**
* @test
* @see http://forge.afi-sa.fr/issues/26261
......
......@@ -21,9 +21,33 @@
class ZendAfi_MailTest extends ModelTestCase {
/** @test */
public function bluewinDotChShouldBeValid() {
$this->assertTrue((new Zend_Validate_EmailAddress())
->isValid('user.name@bluewin.ch'));
}
/**
* @test
* @see http://forge.afi-sa.fr/issues/29345
*/
public function mailTerminatedByPlusShouldNotBeValid() {
$mail = (new ZendAfi_Mail())
->addTo('username@creutzwaldenergies-services.fr+');
$this->assertEmpty($mail->getRecipients());
}
/**
* @test
* @see http://forge.afi-sa.fr/issues/29345
*/
public function mailNotTerminatedByPlusShouldBeValid() {
$mail = (new ZendAfi_Mail())
->addTo('username@creutzwaldenergies-services.fr');
$this->assertNotEmpty($mail->getRecipients());
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment