\r
$datas = array();\r
foreach ($_POST['group'] as $gid => $group) {\r
- if ($gid && $gid == '_new') {\r
+ if ($gid && $gid == 'new_') {\r
continue;\r
}\r
\r
}\r
$group['publications'] = $publications;\r
} else {\r
- $group['publications'] = array($dao->_emptyPublication);\r
+ $group['publications'] = array($dao->_emptyPublication());\r
}\r
\r
$datas[] = $group;\r
if (count($datas) == 0) {\r
$datas = $dao->_emptyCollection();\r
}\r
- \r
- fb($datas);\r
- \r
+\r
$save['datas'] = $datas;\r
$dao->sauve($save);\r
\r
- //$x->addReload();\r
+ $x->addReload();\r
}\r
\r
public static function changeBookProprietaire($args, &$x) {\r
if ($gid && $gid == 'new_') {\r
$class.=' empty';\r
}\r
- $res.='<li class="' . $class . '">';\r
+ $res.='<li class="' . $class . '" data-group="' . $gid . '">';\r
$res.='<div class="g">';\r
$res.='<a href="#" class="move"></a>';\r
$g = 'group[' . $gid . ']';\r
$res.='</div>';\r
$res.='<ul>';\r
$res.='<li style="height:2px;"></li>';\r
- foreach ($group['publications'] as $pid => $publication) {\r
- $p = $g . '[publication][' . $pid . ']';\r
- $res.='<li class="publication"><div>';\r
+\r
+ $publications = array_values($group['publications']);\r
+ foreach ($publications as $pid => $publication) {\r
+ if ($gid && $gid == 'new_') {\r
+ $pid = 'pnew_';\r
+ }\r
+ $p = $g . '[publications][' . $pid . ']';\r
+ $res.='<li class="publication" data-publication="' . $pid . '"><div>';\r
if (isset($books[$publication['id']])) {\r
$book = $books[$publication['id']];\r
} else {\r
$book = new stdClass();\r
$book->lang = '';\r
+ $book->nom = '';\r
}\r
$res.='<a href="#" class="move"></a>';\r
- $res.=mb_strtoupper($book->lang);\r
+ $res.='<span class="lang">' . mb_strtoupper($book->lang) . '</span>';\r
$res.='<span class="id"># ' . form::field(array($p . '[s]'), 64, 256, trim($publication['id'] . ' - ' . $book->nom, ' -'), 'publication_id') . form::hidden(array($p . '[id]'), $publication['id']) . '</span>';\r
$res.='<span class="label">' . __('Label') . ' ' . form::field(array($p . '[label]'), 20, 64, $publication['label']) . '</span>';\r
$res.='<a href="#" class="delete"></a>';\r
global $core;\r
\r
cubePage::truePopup();\r
- \r
+\r
$droits = wsDroits::getDroits();\r
\r
commonDroits::min(3);\r
$res .= '<tr' . $odd . '><td colspan="7">';\r
$res .= commonPage::pager($settings['page'], $dao->count($core->user), $settings['par_page'], 'page' . $change . '/%d');\r
$res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('collections'), false);\r
-\r
-\r
$res .= '</td></tr>';\r
}\r
$res .= '</table>';\r
$res .= '<table>';\r
$res .= '<tr><th class="left" colspan="2">' . __("Détails de la demande") . '</th><th class="left" style="width:40%">' . __('Votre action') . '</th></tr>';\r
$res .= '<tr><td>' . __('Numéro de demande') . '</td><td>' . $demande->demande_id . '</td>';\r
- $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/1" >' . cubeMedia::cssRollover($core->typo->BookTelecharger(__('Accepter la demande'), '', false)) . '</a>' . '</td></tr>';\r
+ $res .= '<td>' . '<a href="#" class="ajax download btbook" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/1" ><div></div><span>' . __('Accepter la demande') . '</span></a>' . '</td></tr>';\r
$res .= '<tr><td>' . __('Date de la demande') . '</td><td>' . date(__('d/m/Y H:i'), $demande->date) . '</td></tr>';\r
$res .= '</tr>';\r
$res .= '<tr><td>' . __('Client') . ' / ' . __('Prospect') . '</td><td><a href="#" class="popup" rel="formClient/' . $demande->entreprise . '">' . $demande->utilisateur_nom . '</a></td></tr>';\r
$res .= '<tr><td>' . __('Nombre de pages') . '</td><td>' . $demande->pages . '</td>';\r
- $res .= '<td>' . '<a href="#" class="ajax" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/0">' . cubeMedia::cssRollover($core->typo->Supprimer(__('Décliner la demande'), '', false)) . '</a>' . '</td>';\r
+ $res .= '<td>' . '<a href="#" class="ajax suppr btbook" rel="reponseDemande/' . $demande_id . '/' . $revendeur_id . '/0"><div></div><span>' . __('Décliner la demande') . '</span></a>' . '</td>';\r
$res .='</tr>';\r
$res .= '<tr><td>' . __('Nombre de liens') . '</td><td>' . $demande->liens . '</td></tr>';\r
$res .= '<tr><td>' . __('Nombre de langues') . '</td><td>' . $demande->langues . '</td></tr>';\r
$daoLang = new wsDAOLang($this->con);\r
$lang = $daoLang->selectById($book->lang);\r
\r
- fb($lang);\r
-\r
$langs = $daoLang->selectAll();\r
\r
$daoTheme = new wsDAOTheme($this->con);\r
$hash = $book_id;\r
$hash .= 'kjgl!az4.';\r
$hash .= count($pages);\r
- $hash .= round($size[0], 4);\r
+ $hash .= round($size[0], 3);\r
\r
$hash = sha1($hash);\r
\r
$links[$p['document_id']] = array();\r
$rulers[$p['document_id']] = array();\r
}\r
- \r
+\r
if (!isset($links[$p['document_id']][$p['document_page']])) {\r
$links[$p['document_id']][$p['document_page']] = array();\r
$rulers[$p['document_id']][$p['document_page']] = array();\r
}\r
}\r
\r
- fb($links);\r
-\r
foreach ($links as $document_id => $dummy) {\r
wsLinks::setDocumentLinks($document_id, json_encode($links[$document_id]), json_encode($rulers[$document_id]), $user, $comments, TIME);\r
}\r
$this->fields['basket'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Panier activé'), 'grade' => 5);\r
$this->fields['basketManager'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Manager de panier"),\r
'datas' => array(__('Classic') => 'com.fluidbook.player.basket.BasketManager',\r
- __('Grdf') => 'com.fluidbook.player.basket.custom.grdf.GrdfBasketManager',\r
- __('Essilor') => 'com.fluidbook.player.basket.custom.essilor.EssilorBasketManager',\r
- __('Essilor Recap') => 'com.fluidbook.player.basket.cursor.essilorrecap.EssilorRecapBasketManager'), 'grade' => 5);\r
+ 'Grdf' => 'com.fluidbook.player.basket.custom.grdf.GrdfBasketManager',\r
+ 'Grdf 2013' => 'com.fluidbook.player.basket.custom.grdf.grdf2013.GrdfBasketManager2013',\r
+ 'Essilor' => 'com.fluidbook.player.basket.custom.essilor.EssilorBasketManager',\r
+ 'Essilor Recap' => 'com.fluidbook.player.basket.cursor.essilorrecap.EssilorRecapBasketManager'), 'grade' => 5);\r
$this->fields['basketReferences'] = array('type' => 'freefile', 'default' => '', 'editable' => true,\r
'label' => __('Références produits'), 'grade' => 5, 'fileFilter' => $basketFilter, 'hint' => __('Fichier contenant les références produits'), 'dir' => 'commerce');\r
$this->fields['basketImages'] = array('type' => 'freefile', 'default' => '', 'editable' => true,\r
});\r
\r
\r
- $("#collection>form>ul a.delete").click(function() {\r
+ $(document).on('click', "#collection>form>ul a.delete", function() {\r
$(this).parents('li:first').remove();\r
+ return false;\r
+ });\r
+\r
+ $(document).on('click', "#collection>form>ul a.add", function() {\r
+ var publication = $(this).parents('li:first');\r
+ var group = $(publication).parents('.group');\r
+ var clone = $(".group.empty .publication").clone().get(0).outerHTML;\r
+\r
+ clone = clone.replace(/pnew_/gi, $(group).find('.publication').length);\r
+ clone = clone.replace(/new_/gi, $(group).data('group'));\r
+\r
+ $(publication).after(clone);\r
+\r
+ initAutocompleteCollection();\r
+ return false;\r
});\r
\r
$("#collection>form>ul>li").each(function() {\r
$("#newGroup").click(function() {\r
var g = $(".group.empty").clone();\r
var html = g.get(0).outerHTML;\r
+ html = html.replace(/pnew_/gi, '0');\r
html = html.replace(/new_/gi, "new_" + newCounter);\r
g = $(html);\r
$(g).removeClass('empty');\r
connectWith: '#collection>form>ul ul'\r
});\r
\r
+ initAutocompleteCollection();\r
+}\r
+\r
+function initAutocompleteCollection() {\r
try {\r
- $('.publication_id').autocompletej(SITE_PATH + 'autocomplete/book', {\r
+ $('.publication_id:visible').not('.ac_input').autocompletej(SITE_PATH + 'autocomplete/book', {\r
cacheLength: 0,\r
maxItemsToShow: 15,\r
onFindValue: findBook,\r
onItemSelect: findBook\r
});\r
} catch (err) {\r
- fb(err);\r
- }\r
\r
+ }\r
}\r
\r
function load_ws() {\r
if (book.length <= 1) {\r
return;\r
}\r
+\r
var book_id = parseInt(book[0]);\r
- $(this.input).next('input[type="hidden"]:first').val(book_id);\r
+ var next = $(this.input).next('input[type="hidden"]:first');\r
+ fb(this.input);\r
+ $(next).val(book_id);\r
}
\ No newline at end of file
.big .content{width:1210px;}\r
\r
.liste .bouton a{\r
- height:26px;\r
+ height:16px;\r
}\r
\r
#header{\r
margin:5px 0 10px 0;\r
}\r
\r
-.liste .bouton a.btbook{\r
+a.btbook{\r
display:inline-block;\r
height:16px;\r
padding:2px 6px 2px 2px;\r
box-shadow: 0px 0px 2px rgba(0,0,0,0.25);\r
}\r
\r
-.liste .bouton a.btbook>div{\r
+a.btbook>div{\r
display:inline-block;\r
width:16px;\r
height:16px;\r
background-position: 0 0;\r
}\r
\r
-.liste .bouton a.btbook>span{\r
+a.btbook>span{\r
display:inline-block;\r
vertical-align: top;\r
margin:0 0 0 5px;\r
}\r
\r
-.liste .bouton a.btbook:hover>div{\r
+a.btbook:hover>div{\r
background-position: 0 100%;\r
}\r
\r
-.liste .bouton a.btbook.suppr>div{\r
+a.btbook.suppr>div{\r
background-image: url("../../images/ws/btdel.png");\r
}\r
\r
-.liste .bouton a.btbook.voir>div{\r
+a.btbook.voir>div{\r
background-image: url("../../images/ws/btview.png");\r
}\r
\r
-.liste .bouton a.btbook.download>div{\r
+a.btbook.download>div{\r
background-image: url("../../images/ws/btdownload.png");\r
}\r
\r
-.liste .bouton a.btbook.stats>div{\r
+a.btbook.stats>div{\r
background-image: url("../../images/ws/btstats.png");\r
}\r
-\r
-.liste .bouton a.btbook.edit>div{\r
+a.btbook.edit>div{\r
background-image: url("../../images/ws/btedit.png");\r
}\r
\r