$res .= $extra;\r
$res .= '</form>';\r
$res .= commonPage::bf();\r
+\r
if (!$return) {\r
echo $res;\r
exit;\r
$db->books->dir_external('varchar', 256, false);\r
$db->books->lucene_time('integer', 0, false);\r
$db->books->demo_counter('integer', 0, false);\r
+ $db->books->exportdatas('text', 0, false);\r
// Clés\r
$db->books->primary('pk_books', 'book_id');\r
$db->books->index('index_books_nom', 'BTREE', 'nom');\r
public static function search($args) {\r
global $core;\r
\r
- if(!isset($args[0])){\r
+ if (!isset($args[0])) {\r
return;\r
}\r
if (!commonDroits::recherche($args[0])) {\r
return;\r
}\r
- \r
+\r
cubePage::emptyfield();\r
$settings = $core->user->getSettings($args[0]);\r
$action = 'search' . ucfirst($args[0]);\r
foreach ($onglets as $titre => $url) {\r
\r
// Si cet onglet correspond à la page active, on le place actif\r
- $active =isset($args[0]) && ($args[0] == $url || (isset($supp[$args[0]]) && $supp[$args[0]] == $url)) ? ' active' : '';\r
+ $active = isset($args[0]) && ($args[0] == $url || (isset($supp[$args[0]]) && $supp[$args[0]] == $url)) ? ' active' : '';\r
$res .= '<a href="' . SITE_PATH . $url . '" class="onglet ' . $active . '">' . $titre . '</a>';\r
}\r
$res .= '</div>';\r
return $res;\r
}\r
\r
- public static function barre($filtres = null, $action = null, $dashboard = null, $shortcuts = null,$big=false) {\r
+ public static function barre($filtres = null, $action = null, $dashboard = null, $shortcuts = null, $big = false) {\r
if (is_null($shortcuts) && is_null($filtres)) {\r
return '<div id="bar" class="vide"></div>';\r
}\r
- \r
- $class='';\r
- if($big){\r
- $class=' class="big"';\r
+\r
+ $class = '';\r
+ if ($big) {\r
+ $class = ' class="big"';\r
}\r
\r
- $res = '<div id="bar"'.$class.'>';\r
+ $res = '<div id="bar"' . $class . '>';\r
$res .= '<div class="content">';\r
\r
if (!is_null($shortcuts)) {\r
public static function footer() {\r
$res = '<div id="footer"></div>';\r
$res .= cubePage::googleAnalytics(GA);\r
+ $res.='<div id="ajaxLoader">';\r
+ $res.='<div class="c">';\r
+ $res.= cubeMedia::image(IMG . '/loader.gif', 32, 32, __('Chargement'));\r
+ $res.='<p>' . __('Chargement en cours. Veuillez patienter ...') . '</p>';\r
+ $res.='</div>';\r
+ $res.='</div>';\r
$res .= '</body>';\r
$res .= '</html>';\r
return $res;\r
}\r
\r
}\r
-\r
?>
\ No newline at end of file
$book = $dao->setStatus($book_id, 1);\r
}\r
\r
- if ($version == 'v2') {\r
- $version = 'html';\r
- } else if ($version == 'online') {\r
- if ($book->parametres->version == '1') {\r
- $version = 'v1';\r
- } elseif ($book->parametres->version == '2') {\r
- $version = 'html';\r
- }\r
- }\r
-\r
if (!wsDroits::admin()) {\r
if ($book->status < 1) {\r
$popup = commonAjax::form('downbook/' . $book_id . '/' . $version, __('Téléchargement du Fluidbook'), wsUrl::valideDownload($book_id, $version), __('Télécharger'), 2, '', '', true);\r
}\r
}\r
\r
- $url = wsPackager::package($book_id, $version);\r
- $x->addRedirection($url);\r
+ $exporter = new wsExporter();\r
+ $exporter->export($book_id, $x, 'download', $version);\r
}\r
\r
public static function instbook($args, &$x) {\r
$x->addOpenPopup($popup);\r
return;\r
}\r
-\r
- fb(time(), 'start making package');\r
$version = 'html';\r
if ($book->parametres->version == 1) {\r
$version = 'v1';\r
$package = wsPackager::package($book_id, $version, false);\r
}\r
\r
- fb(time(), 'start transfert');\r
if ($server == 'references') {\r
$root = '/home/fluidbook/www/references';\r
$url = 'http://www.fluidbook.com/references/';\r
$cp->setArg(null, $package . '*');\r
$cp->setArg(null, $finalDir);\r
$cp->execute();\r
-\r
- fb($cp->commande);\r
- fb($cp->output);\r
-\r
- fb(time(), 'end transfert');\r
} elseif ($protocol == 'ftp') {\r
\r
$u = parse_url($root . ltrim($dir, '/'));\r
$lftp->setArg('e', implode(';', $commandes));\r
$lftp->setArg(null, $u['host']);\r
$lftp->execute();\r
- fb($lftp->commande);\r
- fb($lftp->output);\r
}\r
\r
$x->addClosePopup();\r
$x->addReload();\r
}\r
\r
+ public static function exportbook($args, &$x) {\r
+ if (isset($_POST['action'])) {\r
+ $x->addChangePopup(commonAjax::form('exportbookExe', __("Exporter une publication"), self::formExportBook($_POST['book_id']), '', 2, '', '', true));\r
+ return;\r
+ }\r
+ commonAjax::form('exportbookExe', __("Exporter une publication"), self::formExportBook($args[1]), '', 2);\r
+ }\r
+\r
+ public static function exportbookExe($args, &$x) {\r
+ $exporter = new wsExporter();\r
+ $exporter->export($_POST['book_id'], $x, $_POST['action'], $_POST['version'], $_POST['destination']);\r
+\r
+ $x->addClosePopup();\r
+ }\r
+\r
+ public static function formExportBook($book_id) {\r
+ global $core;\r
+ $choices = array(__('Télécharger') => 'download',\r
+ __("Installer sur le serveur d'hébergement") => 'install_hosting',\r
+ __("Installer sur l'espace de références") => 'install_references',\r
+ __('Installer sur un serveur distant') => 'install_ftp',\r
+ __('Envoyer vers un projet Phonegap Android') => 'phonegap_android',\r
+ __('Envoyer vers un projet Phonegap iOS') => 'phonegap_ios'\r
+ );\r
+\r
+ $formatInstall = array('online' => false,\r
+ 'v1' => false,\r
+ 'html' => false,\r
+ 'v2' => false,\r
+ 'win-exe' => 'zip',\r
+ 'win-ins' => 'exe',\r
+ 'mac-exe' => 'zip',\r
+ 'win-cd' => 'zip',\r
+ 'phonegap' => 'zip');\r
+\r
+ $defaultVersion = isset($_POST['version']) ? $_POST['version'] : 'online';\r
+ $version = '<tr><td class="right">' . __('Version') . '</td><td>' . form::combo('version', wsUrl::getFluidbookVersions(true), $defaultVersion) . '</td></tr>';\r
+\r
+ $defaultAction = isset($_POST['action']) ? $_POST['action'] : 'download';\r
+ $res = '<tr><td class="right">' . __('Action') . '</td><td>' . form::combo('action', $choices, $defaultAction) . form::hidden('book_id', $book_id) . '</td></tr>';\r
+\r
+ $ae = explode('_', $defaultAction, 2);\r
+ if ($ae[0] == 'phonegap') {\r
+ $version = '';\r
+ $defaultVersion = '';\r
+ }\r
+\r
+ if ($defaultAction != 'download') {\r
+ $daoBook = new wsDAOBook($core->con);\r
+ $book = $daoBook->selectById($book_id);\r
+ if ($book->exportdatas == '') {\r
+ $datas = array();\r
+ } else {\r
+ $datas = json_decode($book->exportdatas, true);\r
+ }\r
+\r
+ $res.=$version;\r
+\r
+ if (!isset($datas[$defaultAction][$defaultVersion])) {\r
+ $datas[$defaultAction][$defaultVersion] = array('dir' => '', 'file' => '');\r
+ }\r
+ $defaultDestination = $datas[$defaultAction][$defaultVersion];\r
+ if ($defaultDestination == '' && isset($_POST['destination']) && $_POST['changed'] != 'version' && $_POST['changed'] != 'action') {\r
+ $defaultDestination = $_POST['destination'];\r
+ }\r
+\r
+ if ($defaultDestination['dir'] == '' && ($defaultAction == 'install_hosting' || $defaultAction == 'install_references')) {\r
+ $defaultDestination['dir'] = cubeText::str2URL($book->nom);\r
+ }\r
+\r
+\r
+ switch ($defaultAction) {\r
+ case 'install_hosting':\r
+ $s = __("Serveur d'hébergement") . ' /';\r
+ break;\r
+ case 'install_references':\r
+ $s = __('Espace des références') . ' /';\r
+ break;\r
+ case 'install_ftp':\r
+ $s = __('Serveur FTP externe') . ' : ftp://';\r
+ break;\r
+ case 'phonegap_android':\r
+ $s = __("Projet Phonegap Android") . ' /';\r
+ break;\r
+ case 'phonegap_ios':\r
+ $s = __("Projet Phonegap iOS") . ' /';\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+\r
+ $destinationFile = '';\r
+ if ($displayFile) {\r
+ $destinationFile = form::field(array('destination[file]', 'destination'), 30, 128, $defaultDestination['file']);\r
+ }\r
+\r
+ $res .= '<tr><td class="right"><em>' . $s . '</em></td><td>' . form::field(array('destination[dir]', 'destination'), 40, 128, $defaultDestination['dir']) . ' / ' . $destinationFile . '</td></tr>';\r
+ } else {\r
+ $res.=$version;\r
+ }\r
+\r
+ $res .= '<tr><td colspan="2" class="right">' . form::hidden('changed', '') . '<a href="#" class="submit">' . $core->typo->BoutonOK(__('Exporter')) . '</a></td></tr>';\r
+\r
+ return $res;\r
+ }\r
+\r
}\r
\r
?>
\ No newline at end of file
}\r
$res .= '<td class="bouton"><a href="' . SITE_PATH . 'stats/' . $book->book_id . '_' . $book->hash . '" class="normallink">' . $btStats . '</a></td>';\r
if ($book->version > 1) {\r
- $res .= '<td class="bouton"><a href="#" class="openContextMenu" rel="' . $context_download_id . '" rev="' . $book->book_id . '">' . $btDownload . '</a></td>';\r
+ if ($core->user->utilisateur_id == 5) {\r
+ $res .= '<td class="bouton"><a href="#" rel="exportbook/' . $book->book_id . '" class="popup">' . $btDownload . '</a></td>';\r
+ } else {\r
+ $res .= '<td class="bouton"><a href="#" class="openContextMenu" rel="' . $context_download_id . '" rev="' . $book->book_id . '">' . $btDownload . '</a></td>';\r
+ }\r
} else {\r
$res.='<td></td>';\r
}\r
return $res;\r
}\r
\r
- public static function contextBookDownload($id, $droits) {\r
- global $core;\r
+ public static function getFluidbookVersions($select = false) {\r
+ $droits = wsDroits::getDroits();\r
\r
$chooseVersion = wsDroits::admin();\r
\r
if ($chooseVersion) {\r
- $default = ' (' . __('Default') . ')';\r
+ $default = ' - ' . __('Version par défaut');\r
} else {\r
$default = '';\r
}\r
$versions['phonegap'] = array('title' => __('Version offline') . ' - ' . __('Application mobile'), 'icon' => cubeMedia::image(IMG . '/phonegap.png'));\r
}\r
\r
+ if (!$select) {\r
+ return $versions;\r
+ }\r
+\r
+ $res = array();\r
+ foreach ($versions as $id => $d) {\r
+ $t = explode('-', $d['title'], 2);\r
+ $meta = trim($t[0]);\r
+ if (isset($t[1])) {\r
+ $title = trim($t[1]);\r
+ } else {\r
+ $title = $meta;\r
+ }\r
+\r
+ if (!isset($res[$meta])) {\r
+ $res[$meta] = array();\r
+ }\r
+ $res[$meta][$title] = $id;\r
+ }\r
+ return $res;\r
+ }\r
+\r
+ public static function contextBookDownload($id, $droits) {\r
+ global $core;\r
+\r
+ $versions = self::getFluidbookVersions();\r
+\r
$res = '<div class="contextMenu downbookContextMenu" id="' . $id . '">';\r
$res .= '<ul>';\r
$res .= '<li class="head">' . __("Sélectionnez une version") . '</li>';\r
$book->dir_phonegap_android = $r->dir_phonegap_android;\r
$book->dir_external = $r->dir_external;\r
$book->demo_counter = $r->demo_counter;\r
+ $book->exportdatas = $r->exportdatas;\r
\r
return $book;\r
}\r
return $r->book_id + 1;\r
}\r
\r
+ public function saveExportDatas($book_id, $datas) {\r
+ $c = $this->con->openCursor('books');\r
+ $c->exportdatas = json_encode($datas);\r
+ $c->update('WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
+ }\r
+\r
public function addDemoCount($book_id) {\r
\r
$r = $this->con->select('SELECT demo_counter,nom FROM books WHERE book_id=\'' . $book_id . '\'');\r
$m = 20;\r
if ($r->demo_counter > 0 && $r->demo_counter % $m == 0) {\r
$mail = new cubeMail();\r
- $mail->charset='UTF-8';\r
+ $mail->charset = 'UTF-8';\r
$mail->from = 'contact@fluidbook.com';\r
$mail->to = 'tech@fluidbook.com';\r
$mail->subject = '[Fluidbook Workshop] Fluidbook consulté via l\'url publique';\r
$hash .= 'kjgl!az4.';\r
$hash .= count($pages);\r
$hash .= round($size[0], 4);\r
- \r
+\r
$hash = sha1($hash);\r
\r
$this->makeTextsIndexes($book, $pages, $index, $textes);\r
protected $dir_phonegap_android;\r
protected $dir_external;\r
protected $demo_counter;\r
+ protected $exportdatas;\r
\r
public function __get($varname) {\r
if (!property_exists($this, $varname)) {\r
$__autoload['wsPDFFont'] = dirname(__FILE__) . '/fontextractor/class.ws.pdf.font.php';\r
$__autoload['wsSVN'] = dirname(__FILE__) . '/class.ws.svn.php';\r
$__autoload['wsLinks'] = dirname(__FILE__) . '/class.ws.links.php';\r
+$__autoload['wsExporter'] = dirname(__FILE__) . '/class.ws.exporter.php';\r
?>
\ No newline at end of file
--- /dev/null
+<?php
+
+class wsExporter {
+
+ public $book_id;
+ public $dao;
+ public $book;
+ public $action;
+ public $metaAction;
+ public $origVersion;
+ public $origAction;
+ public $version;
+ public $destinationDir;
+ public $destinationFile;
+ public $x;
+
+ public function export($book_id, &$x, $action = 'download', $version = 'online', $destinationDir = null, $destinationFile = null) {
+ global $core;
+
+ if (is_null($destinationDir)) {
+ $destinationDir = '';
+ }
+ if (is_null($destinationFile)) {
+ $destinationFile = '';
+ }
+
+ $this->origVersion = $version;
+ $this->origAction = $action;
+
+ $this->book_id = $book_id;
+ $this->x = $x;
+
+ $this->dao = new wsDAOBook($core->con);
+ $this->book = $this->dao->selectById($this->book_id);
+
+ $this->action = $action;
+ $e = explode('_', $this->action, 2);
+ $this->metaAction = $e[0];
+ if (count($e) > 1) {
+ $this->action = $e[1];
+ }
+
+ $this->version = $this->_getVersion($version);
+ $this->destinationDir = ltrim(trim($destinationDir), '/');
+ $this->destinationFile = str_replace('/', '-', trim($destinationFile));
+
+ $this->_saveDestination();
+
+ if ($this->metaAction == 'download') {
+ $this->_download();
+ } else if ($this->metaAction == 'phonegap') {
+ $this->_phonegap();
+ } else if ($this->metaAction == 'install') {
+ $this->_install();
+ }
+ }
+
+ protected function _haveToZip() {
+ $yes = array('win-exe', 'mac-exe');
+ return in_array($this->version, $yes);
+ }
+
+ protected function _install() {
+ $package = wsPackager::package($this->book_id, $this->version, $this->_haveToZip());
+
+ if ($this->action == 'references') {
+ $root = '/home/fluidbook/www/references/';
+ $rootURL = 'http://www.fluidbook.com/references/';
+ } else if ($this->action == 'hosting') {
+ $root = '/home/fluidbook/hosting/';
+ $rootURL = 'http://hosting.fluidbook.com/';
+ } else if ($this->action == 'ftp') {
+ $root = 'ftp://';
+ $rootURL = null;
+ }
+
+ if ($this->destinationFile) {
+ $pathd = $root . $this->destinationDir;
+ $path = $pathd . '/' . $this->destinationFile;
+ } else {
+ $path = $root . $this->destinationDir;
+ }
+
+ if (stristr($path, 'ftp://')) {
+ $this->_lftp($package, $path, true);
+ } else {
+ $this->_rsync($package, $path);
+ }
+
+ if (!is_null($rootURL)) {
+ $url = $rootURL . $this->destinationDir;
+ $this->x->addTruePopup($url . '/');
+ }
+ }
+
+ protected function _phonegap() {
+ $os = $this->action;
+
+ if ($this->destinationDir == '') {
+ return;
+ }
+
+ $packager = new wsPackagerPhonegap($this->book_id, null, true, false, $os);
+ $package = $packager->makePackage(false);
+
+ $this->_transfertPhonegap($os, $package, $this->destinationDir);
+ }
+
+ protected function _transfertPhonegap($os, $package, $destination) {
+ if ($os == 'android') {
+ $this->_lftp($package, 'ftp://android:DlSa1LGw@paris.cubedesigners.com:22122/' . $destination, false, true);
+ } else if ($os == 'ios') {
+ $this->_rsync($package, '/mnt/macbook/Phonegap/Projects/' . $destination, true);
+ }
+ }
+
+ protected function _lftp($src, $dest, $passive = true, $erase = false) {
+ $u = parse_url($dest);
+
+ $file = is_file($src);
+ if ($file) {
+ $e = explode('/', $u['path']);
+ $u['file'] = array_pop($e);
+ $u['dir'] = implode('/', $e);
+ } else {
+ $u['dir'] = $u['path'];
+ }
+
+ $passive = $passive ? 'on' : 'off';
+
+ if (!isset($u['port'])) {
+ $u['port'] = '21';
+ }
+
+ $commandes = array(
+ 'set ftp:passive-mode ' . $passive,
+ 'mkdir -p ' . $u['dir']
+ );
+
+ if ($file) {
+ $commandes[] = 'put -O ' . $u['dir'] . ' ' . $src . ' -o ' . $u['file'];
+ } else {
+ $commandes[] = 'lcd ' . $src;
+ $commandes[] = 'cd ' . $u['dir'];
+ if ($erase) {
+ $commandes[] = 'mirror -Rve --parallel=5';
+ } else {
+ $commandes[] = 'mirror -Rv --parallel=5';
+ }
+ }
+
+ $lftp = new cubeCommandLine('lftp');
+ $lftp->setArg('u', $u['user'] . ',' . $u['pass']);
+ $lftp->setArg('p', $u['port']);
+ $lftp->setArg('e', implode(';', $commandes));
+ $lftp->setArg(null, $u['host']);
+ $lftp->execute();
+ }
+
+ protected function _rsync($src, $dest, $erase = false) {
+ if (!file_exists($dest)) {
+ mkdir($dest, 0777, true);
+ }
+
+ if (is_file($src)) {
+ copy($src, $dest);
+ return;
+ }
+
+ if ($erase) {
+ /** --del -r -z -v * */
+ $cp = new cubeCommandLine('rsync');
+ $cp->setPath(CONVERTER_PATH);
+ $cp->setArg('del');
+ }
+ $cp->setArg('t');
+ $cp->setArg('r');
+ $cp->setArg('z');
+ $cp->setArg('v');
+ $cp->setArg(null, $src . '*');
+ $cp->setArg(null, $dest);
+ $cp->execute();
+ }
+
+ protected function _download() {
+ $this->x->addRedirection(wsPackager::package($this->book_id, $this->version));
+ }
+
+ protected function _getVersion($version) {
+ if ($version == 'v2') {
+ return 'html';
+ } else if ($version == 'online') {
+ if ($this->book->parametres->version == '1') {
+ return 'v1';
+ } elseif ($this->book->parametres->version == '2') {
+ return 'html';
+ }
+ }
+ return $version;
+ }
+
+ protected function _saveDestination() {
+ $datas = $this->book->exportdatas;
+ if ($datas == '') {
+ $datas = array();
+ } else {
+ $datas = json_decode($datas, true);
+ }
+ if (!isset($datas[$this->origAction])) {
+ $datas[$this->origAction] = array();
+ }
+
+ $d = array();
+ if ($this->destinationDir) {
+ $d['dir'] = $this->destinationDir;
+ }
+ if ($this->destinationFile) {
+ $d['file'] = $this->destinationFile;
+ }
+
+ $datas[$this->origAction][$this->origVersion] = $d;
+
+ $this->dao->saveExportDatas($this->book_id, $datas);
+ }
+
+}
+
+?>
-TO_LOAD[TO_LOAD.length]='load_common_extranet();';\r
-FIRST_LOAD=true;\r
+TO_LOAD[TO_LOAD.length] = 'load_common_extranet();';\r
+FIRST_LOAD = true;\r
+var DEFAULT_WAIT_MESSAGE = "";\r
\r
-function load_common_extranet(){\r
- var viewportWidth=1030;\r
- if($("#main.big").length>0){\r
+function load_common_extranet() {\r
+ DEFAULT_WAIT_MESSAGE = $("#ajaxLoader .c p").text();\r
+\r
+ var viewportWidth = 1030;\r
+ if ($("#main.big").length > 0) {\r
$("#header").addClass('big');\r
- viewportWidth=1250;\r
+ viewportWidth = 1250;\r
}\r
- \r
- var is=screen.width/viewportWidth;\r
- $('meta[name="viewport"]').attr('content','width='+viewportWidth+'px,initial-scale='+is+',maximum-scale:2.0');\r
- \r
- if($(".dashboard").length>=1 && $("#dash").length>=1){\r
+\r
+ var is = screen.width / viewportWidth;\r
+ $('meta[name="viewport"]').attr('content', 'width=' + viewportWidth + 'px,initial-scale=' + is + ',maximum-scale:2.0');\r
+\r
+ if ($(".dashboard").length >= 1 && $("#dash").length >= 1) {\r
$("#dash").sortable('destroy');\r
- if(FIRST_LOAD){\r
- FIRST_LOAD=false;\r
- }else{\r
- FIRST_LOAD=true;\r
+ if (FIRST_LOAD) {\r
+ FIRST_LOAD = false;\r
+ } else {\r
+ FIRST_LOAD = true;\r
$.ajax({\r
- url : SITE_PATH+'ajax/reloadDashboards',\r
- success : function(data){\r
+ url: SITE_PATH + 'ajax/reloadDashboards',\r
+ success: function(data) {\r
MyAjax(data);\r
}\r
});\r
}\r
\r
$("#dash").sortable({\r
- opacity : 0.6,\r
- axis : "y",\r
- handle : ".caption",\r
- stop : function(e,ui){\r
+ opacity: 0.6,\r
+ axis: "y",\r
+ handle: ".caption",\r
+ stop: function(e, ui) {\r
$.ajax({\r
- url : SITE_PATH+'ajax/orderDashboards?'+$("#dash").sortable('serialize')\r
+ url: SITE_PATH + 'ajax/orderDashboards?' + $("#dash").sortable('serialize')\r
});\r
resize();\r
}\r
});\r
}\r
\r
- $(".timereport_field").change(function(){\r
- var val=parseInt($(this).val());\r
- if(isNaN(val)){\r
- val=0;\r
+ $(".timereport_field").change(function() {\r
+ var val = parseInt($(this).val());\r
+ if (isNaN(val)) {\r
+ val = 0;\r
}\r
- var f=this;\r
- var id=$(this).attr('id');\r
- var a=id.split('_');\r
+ var f = this;\r
+ var id = $(this).attr('id');\r
+ var a = id.split('_');\r
$.ajax({\r
- url : SITE_PATH+'ajax/saveTimereport/'+a[1]+'/'+a[2]+'/'+val,\r
- success : function(data){\r
- FIRST_LOAD=true;\r
+ url: SITE_PATH + 'ajax/saveTimereport/' + a[1] + '/' + a[2] + '/' + val,\r
+ success: function(data) {\r
+ FIRST_LOAD = true;\r
MyAjax(data);\r
- var td=$(f).parents('td').get(0);\r
- if(parseFloat($(f).val())>0){\r
+ var td = $(f).parents('td').get(0);\r
+ if (parseFloat($(f).val()) > 0) {\r
$(td).addClass('filled');\r
- }else{\r
+ } else {\r
$(td).removeClass('filled');\r
}\r
}\r
});\r
});\r
\r
- $("#dash .toggle").click(function(){\r
- var rel=$(this).attr('rel');\r
- var div=$(this).parents('.dashboard').get(0);\r
- var liste=$(div).find('.liste');\r
+ $("#dash .toggle").click(function() {\r
+ var rel = $(this).attr('rel');\r
+ var div = $(this).parents('.dashboard').get(0);\r
+ var liste = $(div).find('.liste');\r
\r
- $(liste).slideToggle('fast',function(){\r
+ $(liste).slideToggle('fast', function() {\r
resize();\r
});\r
$(this).toggleClass('close');\r
\r
$.ajax({\r
- url : SITE_PATH+'ajax/toggleDashboard/'+rel\r
+ url: SITE_PATH + 'ajax/toggleDashboard/' + rel\r
});\r
return false;\r
});\r
\r
- $(".filtre .bt").click(function(){\r
- var ul=$(this).parent().parent().children('ul');\r
+ $(".filtre .bt").click(function() {\r
+ var ul = $(this).parent().parent().children('ul');\r
$(ul).slideToggle('fast');\r
return false;\r
});\r
\r
- $(".filtre ul").click(function(e){\r
- if(e.target.nodeName=='INPUT' || e.target.nodeName=='LABEL'){\r
+ $(".filtre ul").click(function(e) {\r
+ if (e.target.nodeName == 'INPUT' || e.target.nodeName == 'LABEL') {\r
return true;\r
}\r
$(this).slideToggle('fast');\r
});\r
- $(".filtre span").click(function(){\r
- var ul=$(this).parent().children('ul');\r
+ $(".filtre span").click(function() {\r
+ var ul = $(this).parent().children('ul');\r
$(ul).slideToggle('fast');\r
});\r
\r
- $(".filtre input").change(function(){\r
- var form=$(this).parents('form').get(0);\r
- var uls=$(form).find("ul");\r
- var divs=$(form).find(".input");\r
- var spans=$(form).find("span");\r
- var i,j,k,ul,lis,li,input,label,checked,div,titre,t,t1,allc,inputs;\r
- for(i=0;i<uls.length;i++){\r
- div=divs[i];\r
- titre=Array();\r
- ul=uls[i];\r
- lis=$(ul).children("li");\r
- allc=$(lis).get(0);\r
- checked=0;\r
- for(j=1;j<lis.length;j++){\r
- li=lis[j];\r
- input=$(li).find('input').get(0);\r
- label=$(li).find('label').get(0);\r
- if(input.checked){\r
+ $(".filtre input").change(function() {\r
+ var form = $(this).parents('form').get(0);\r
+ var uls = $(form).find("ul");\r
+ var divs = $(form).find(".input");\r
+ var spans = $(form).find("span");\r
+ var i, j, k, ul, lis, li, input, label, checked, div, titre, t, t1, allc, inputs;\r
+ for (i = 0; i < uls.length; i++) {\r
+ div = divs[i];\r
+ titre = Array();\r
+ ul = uls[i];\r
+ lis = $(ul).children("li");\r
+ allc = $(lis).get(0);\r
+ checked = 0;\r
+ for (j = 1; j < lis.length; j++) {\r
+ li = lis[j];\r
+ input = $(li).find('input').get(0);\r
+ label = $(li).find('label').get(0);\r
+ if (input.checked) {\r
checked++;\r
titre.push($(label).text());\r
}\r
}\r
- if(checked==0){\r
+ if (checked == 0) {\r
$(div).find('span').text($(allc).text());\r
- $(div).find('a').attr('title',$(allc).text());\r
+ $(div).find('a').attr('title', $(allc).text());\r
$(div).removeClass('active');\r
- inputs=$(ul).find('input');\r
- for(k=0;k<inputs.length;k++){\r
- inputs[k].checked=true;\r
+ inputs = $(ul).find('input');\r
+ for (k = 0; k < inputs.length; k++) {\r
+ inputs[k].checked = true;\r
}\r
- }else if(checked==lis.length-1){\r
+ } else if (checked == lis.length - 1) {\r
$(div).find('span').text($(allc).text());\r
- $(div).find('a').attr('title',$(allc).text());\r
+ $(div).find('a').attr('title', $(allc).text());\r
$(div).removeClass('active');\r
- }else{\r
- t=titre.join(', ');\r
- if(t.length>20){\r
- t1=t.substr(0,16)+'...';\r
- }else{\r
- t1=t;\r
+ } else {\r
+ t = titre.join(', ');\r
+ if (t.length > 20) {\r
+ t1 = t.substr(0, 16) + '...';\r
+ } else {\r
+ t1 = t;\r
}\r
$(div).find('span').text(t1);\r
- $(div).find('a').attr('title',t);\r
+ $(div).find('a').attr('title', t);\r
$(div).addClass('active');\r
}\r
}\r
return true;\r
});\r
\r
- $(window).resize(function(){\r
+ $(window).resize(function() {\r
resize();\r
});\r
resize();\r
\r
}\r
\r
-function resize(){\r
- var allh=$("#header").height()+$("#footer").height()+$("#bar").height()+$("#main .content").height()+13+30;\r
- var h=Math.max($(window).height(),allh);\r
+function resize() {\r
+ var allh = $("#header").height() + $("#footer").height() + $("#bar").height() + $("#main .content").height() + 13 + 30;\r
+ var h = Math.max($(window).height(), allh);\r
\r
- var mh=h-$("#header").height()-$("#footer").height()-$("#bar").height()-30-13;\r
- mh=Math.max(mh,450);\r
- $("#main").css('height',mh);\r
+ var mh = h - $("#header").height() - $("#footer").height() - $("#bar").height() - 30 - 13;\r
+ mh = Math.max(mh, 450);\r
+ $("#main").css('height', mh);\r
}\r
\r
\r
-function refreshFiles(){\r
+function refreshFiles() {\r
$.ajax({\r
- url : SITE_PATH+'ajax/refreshFichiers',\r
- success : function(data){\r
+ url: SITE_PATH + 'ajax/refreshFichiers',\r
+ success: function(data) {\r
MyAjax(data);\r
}\r
});\r
}\r
\r
\r
-function findWSAdmin(li){\r
- var p=li.selectValue.split(' - ');\r
- if(p.length<=1){\r
+function findWSAdmin(li) {\r
+ var p = li.selectValue.split(' - ');\r
+ if (p.length <= 1) {\r
return;\r
}\r
- var user_id=parseInt(p[0]);\r
+ var user_id = parseInt(p[0]);\r
$("#ws_admin").val(user_id);\r
+}\r
+\r
+function resizeLoader() {\r
+ $("#ajaxLoader").css('height', $(window).height());\r
+ $("#ajaxLoader").css('width', $(window).width());\r
+}\r
+\r
+function displayLoader(message) {\r
+ if (message != undefined) {\r
+ $("#ajaxLoader .c p").html(message);\r
+ }\r
+\r
+ resizeLoader();\r
+ $("#ajaxLoader").show();\r
+ var h = $("#ajaxLoader .c").outerHeight();\r
+ $("#ajaxLoader").css('top', -h);\r
+ $("#ajaxLoader").animate({\r
+ top: 0\r
+ }, 400);\r
+}\r
+\r
+function hideLoader() {\r
+ resizeLoader();\r
+\r
+ var h = $("#ajaxLoader .c").outerHeight();\r
+ $("#ajaxLoader").animate({\r
+ top: -h\r
+ }, 400, null, function() {\r
+ $(this).hide();\r
+ $("#ajaxLoader .c p").html(DEFAULT_WAIT_MESSAGE);\r
+ });\r
}
\ No newline at end of file
-TO_LOAD[TO_LOAD.length]='load_ws();';\r
-FIRST_LOAD=true;\r
+TO_LOAD[TO_LOAD.length] = 'load_ws();';\r
+TO_LOAD_ONCE[TO_LOAD_ONCE.length] = 'load_ws_once();';\r
+FIRST_LOAD = true;\r
\r
-function load_ws(){\r
- if($("#book_nom").length){\r
- $("#book_nom").autocomplete(SITE_PATH+'autocomplete/book',{\r
- cacheLength : 0,\r
- maxItemsToShow : 15,\r
- onFindValue : findBook,\r
- onItemSelect : findBook\r
+function load_ws_once() {\r
+ $('form[action="exportbook"] select, form[action="exportbookExe"] select').live('change', function() {\r
+ var form = $(this).parents('form');\r
+ $(form).find('#changed').val($(this).attr('name'));\r
+ $(form).attr('action', 'exportbook').submit().attr('action', 'exportbookExe');\r
+ });\r
+}\r
+\r
+function load_ws() {\r
+ if ($("#book_nom").length) {\r
+ $("#book_nom").autocomplete(SITE_PATH + 'autocomplete/book', {\r
+ cacheLength: 0,\r
+ maxItemsToShow: 15,\r
+ onFindValue: findBook,\r
+ onItemSelect: findBook\r
});\r
}\r
\r
- if($("#book_proprietaire").length){\r
- $("#book_proprietaire").autocomplete(SITE_PATH+'autocomplete/wsuser',{\r
- cacheLength : 0,\r
- maxItemsToShow : 15,\r
- onFindValue : findProprietaire,\r
- onItemSelect : findProprietaire\r
+ if ($("#book_proprietaire").length) {\r
+ $("#book_proprietaire").autocomplete(SITE_PATH + 'autocomplete/wsuser', {\r
+ cacheLength: 0,\r
+ maxItemsToShow: 15,\r
+ onFindValue: findProprietaire,\r
+ onItemSelect: findProprietaire\r
});\r
}\r
\r
\r
- if($("#ws_admin_nom").length>0){\r
- $("#ws_admin_nom").autocomplete(SITE_PATH+'autocomplete/wsadmin',{\r
- cacheLength:0,\r
- maxItemsToShow:15,\r
- onFindValue:findWSAdmin,\r
- onItemSelect:findWSAdmin\r
+ if ($("#ws_admin_nom").length > 0) {\r
+ $("#ws_admin_nom").autocomplete(SITE_PATH + 'autocomplete/wsadmin', {\r
+ cacheLength: 0,\r
+ maxItemsToShow: 15,\r
+ onFindValue: findWSAdmin,\r
+ onItemSelect: findWSAdmin\r
});\r
}\r
- \r
- $("#importLinksAsExcel,#offsetLinks").submit(function(){\r
+\r
+ $("#importLinksAsExcel,#offsetLinks").submit(function() {\r
$(this).ajaxSubmit({\r
- url : SITE_PATH+'ajax/'+$(this).attr('action'),\r
- success : function(data){\r
+ url: SITE_PATH + 'ajax/' + $(this).attr('action'),\r
+ success: function(data) {\r
window.opener.document.getElementById("composerSwf").reloadLinks();\r
- window.close(); \r
+ window.close();\r
}\r
});\r
return false;\r
\r
\r
\r
+\r
+\r
$(".restoreLink").click(restoreLink);\r
- \r
- $(".hide_new_value").change(function(){\r
- if($(this).val()==0){\r
+\r
+ $(".hide_new_value").change(function() {\r
+ if ($(this).val() == 0) {\r
$(".new").show();\r
- }else{\r
+ } else {\r
$(".new").hide();\r
}\r
});\r
}\r
\r
-function restoreLink(){\r
+function restoreLink() {\r
$.ajax({\r
- url : SITE_PATH+'ajax/restoreLinksVersion/'+$(this).attr('rel'),\r
- success : function(data){\r
+ url: SITE_PATH + 'ajax/restoreLinksVersion/' + $(this).attr('rel'),\r
+ success: function(data) {\r
window.opener.document.getElementById("composerSwf").reloadLinks();\r
window.close();\r
}\r
return false;\r
}\r
\r
-function findProprietaire(li){\r
- var p=li.selectValue.split(' - ');\r
- if(p.length<=1){\r
+function findProprietaire(li) {\r
+ var p = li.selectValue.split(' - ');\r
+ if (p.length <= 1) {\r
return;\r
}\r
- var user_id=parseInt(p[0]);\r
+ var user_id = parseInt(p[0]);\r
$("#proprietaire").val(user_id);\r
}\r
\r
-function findBook(li){\r
- var book=li.selectValue.split(' - ');\r
- if(book.length<=1){\r
+function findBook(li) {\r
+ var book = li.selectValue.split(' - ');\r
+ if (book.length <= 1) {\r
return;\r
}\r
- var book_id=parseInt(book[0]);\r
+ var book_id = parseInt(book[0]);\r
$("#book").val(book_id);\r
}
\ No newline at end of file
font-family: 'UniversCondensedBold';
src: url('univers-condensedbold-webfont.eot');
src: url('univers-condensedbold-webfont.eot?#iefix') format('embedded-opentype'),
- url('univers-condensedbold-webfont.woff') format('woff'),
- url('univers-condensedbold-webfont.ttf') format('truetype'),
- url('univers-condensedbold-webfont.svg#UniversCondensedBold') format('svg');
+ url('univers-condensedbold-webfont.woff') format('woff'),
+ url('univers-condensedbold-webfont.ttf') format('truetype'),
+ url('univers-condensedbold-webfont.svg#UniversCondensedBold') format('svg');
font-weight: normal;
font-style: normal;
}
.onglet.active, .onglet:hover{
background-position:bottom left;
-
+
+}
+
+#ajaxLoader{
+ position:fixed;
+ display:none;
+ top:0px;
+ left:0px;
+ width:100%;
+ height:100%;
+ z-index: 10000000;
+}
+
+#ajaxLoader .c{
+ background:#fff;
+ font-size:16px;
+ padding:20px;
+ width:300px;
+ height:50px;
+ margin:0 auto;
+ border-radius: 0 0 10px 10px;
+ box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
+ -moz-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
+ -webkit-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
+ -ms-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
+ -o-box-shadow: 0px 0px 10px rgba(0,0,0,0.5);
+}
+
+#ajaxLoader .c img{
+ vertical-align: middle;
+ display: block;
+ float:left;
+}
+
+#ajaxLoader .c p{
+ width:240px;
+ float:left;
+ margin-left:20px;
+ text-align: center;
}
\ No newline at end of file
}\r
\r
.ac_results iframe{\r
-display:none;\r
+ display:none;\r
}\r
\r
/* Traduction */\r
\r
#urlDecoder textarea{\r
width:100%;\r
+}\r
+\r
+#ajaxLoader{\r
+ color:#333333;\r
}
\ No newline at end of file