diff --git a/local/config/database.yml b/local/config/database.yml index ca4f622f..e92c817c 100644 --- a/local/config/database.yml +++ b/local/config/database.yml @@ -1,6 +1,6 @@ database: connection: driver: mysql - user: outilmagadm + user: outil82 password: J3M350uv13n5 dsn: mysql:host=localhost;dbname=outil82;port=3306 \ No newline at end of file diff --git a/local/modules/Colissimo/Config/module.xml b/local/modules/Colissimo/Config/module.xml index 2fb9e2ba..485948e5 100755 --- a/local/modules/Colissimo/Config/module.xml +++ b/local/modules/Colissimo/Config/module.xml @@ -1,18 +1,18 @@ - - - Colissimo\Colissimo - - Colissimo delivery - - - Livraison par Colissimo - - 2.4.3 - - Manuel Raynaud - manu@raynaud.io - - delivery - 2.4.3 - alpha - + + + Colissimo\Colissimo + + Colissimo delivery + + + Livraison par Colissimo + + 2.4.3 + + Manuel Raynaud + manu@raynaud.io + + delivery + 2.4.3 + alpha + diff --git a/local/modules/Colissimo/THELIA_INET.FMT b/local/modules/Colissimo/THELIA_INET.FMT index 2d3a67b6..97266648 100644 --- a/local/modules/Colissimo/THELIA_INET.FMT +++ b/local/modules/Colissimo/THELIA_INET.FMT @@ -1,23 +1,23 @@ -[GENERAL] -DELIMITE=O -SEPARATEUR=59 -DELIMITEUR=34 -FINDELIGNE=CRLF -Unité poids=KG -[CHAMPS] -ReferenceExpedition=1 -NomDestinataire=2 -Prenom=3 -Adresse1=4 -Adresse2=5 -Adresse3=6 -CodePostal=7 -Commune=8 -CodePays=9 -Telephone=10 -Portable=11 -Poids=12 -Mail=13 -CodePointRetrait=14 -CodeProduit=15 -NomCommercialChargeur=16 +[GENERAL] +DELIMITE=O +SEPARATEUR=59 +DELIMITEUR=34 +FINDELIGNE=CRLF +Unité poids=KG +[CHAMPS] +ReferenceExpedition=1 +NomDestinataire=2 +Prenom=3 +Adresse1=4 +Adresse2=5 +Adresse3=6 +CodePostal=7 +Commune=8 +CodePays=9 +Telephone=10 +Portable=11 +Poids=12 +Mail=13 +CodePointRetrait=14 +CodeProduit=15 +NomCommercialChargeur=16 diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/mime_type_lib.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/mime_type_lib.php index f8981b5c..3275af8b 100755 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/mime_type_lib.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/mime_type_lib.php @@ -1,340 +1,340 @@ - 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'asc' => 'text/plain', - 'asf' => 'video/x-ms-asf', - 'asx' => 'video/x-ms-asf', - 'au' => 'audio/basic', - 'avi' => 'video/x-msvideo', - 'bcpio' => 'application/x-bcpio', - 'bin' => 'application/octet-stream', - 'bmp' => 'image/bmp', - 'bz2' => 'application/x-bzip2', - 'cdf' => 'application/x-netcdf', - 'chrt' => 'application/x-kchart', - 'class' => 'application/octet-stream', - 'cpio' => 'application/x-cpio', - 'cpt' => 'application/mac-compactpro', - 'csh' => 'application/x-csh', - 'css' => 'text/css', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'djv' => 'image/vnd.djvu', - 'djvu' => 'image/vnd.djvu', - 'dll' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'dvi' => 'application/x-dvi', - 'dwg' => 'image/vnd.dwg', - 'dxr' => 'application/x-director', - 'eps' => 'application/postscript', - 'etx' => 'text/x-setext', - 'exe' => 'application/octet-stream', - 'ez' => 'application/andrew-inset', - 'flv' => 'video/x-flv', - 'gif' => 'image/gif', - 'gtar' => 'application/x-gtar', - 'gz' => 'application/x-gzip', - 'hdf' => 'application/x-hdf', - 'hqx' => 'application/mac-binhex40', - 'htm' => 'text/html', - 'html' => 'text/html', - 'ice' => 'x-conference/x-cooltalk', - 'ief' => 'image/ief', - 'iges' => 'model/iges', - 'igs' => 'model/iges', - 'img' => 'application/octet-stream', - 'iso' => 'application/octet-stream', - 'jad' => 'text/vnd.sun.j2me.app-descriptor', - 'jar' => 'application/x-java-archive', - 'jnlp' => 'application/x-java-jnlp-file', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'js' => 'application/x-javascript', - 'kar' => 'audio/midi', - 'kil' => 'application/x-killustrator', - 'kpr' => 'application/x-kpresenter', - 'kpt' => 'application/x-kpresenter', - 'ksp' => 'application/x-kspread', - 'kwd' => 'application/x-kword', - 'kwt' => 'application/x-kword', - 'kml' => 'application/vnd.google-earth.kml+xml', - 'kmz' => 'application/vnd.google-earth.kmz', - 'latex' => 'application/x-latex', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'm3u' => 'audio/x-mpegurl', - 'man' => 'application/x-troff-man', - 'me' => 'application/x-troff-me', - 'mesh' => 'model/mesh', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mp4' => 'video/mp4', - 'mpe' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'ms' => 'application/x-troff-ms', - 'msh' => 'model/mesh', - 'mxu' => 'video/vnd.mpegurl', - 'nc' => 'application/x-netcdf', - 'odb' => 'application/vnd.oasis.opendocument.database', - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'ogg' => 'application/ogg', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'pbm' => 'image/x-portable-bitmap', - 'pdb' => 'chemical/x-pdb', - 'pdf' => 'application/pdf', - 'pgm' => 'image/x-portable-graymap', - 'pgn' => 'application/x-chess-pgn', - 'php' => 'text/x-php', - 'png' => 'image/png', - 'pnm' => 'image/x-portable-anymap', - 'ppm' => 'image/x-portable-pixmap', - 'ppt' => 'application/vnd.ms-powerpoint', - 'ps' => 'application/postscript', - 'qt' => 'video/quicktime', - 'ra' => 'audio/x-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'ras' => 'image/x-cmu-raster', - 'rgb' => 'image/x-rgb', - 'rm' => 'audio/x-pn-realaudio', - 'roff' => 'application/x-troff', - 'rpm' => 'application/x-rpm', - 'rtf' => 'text/rtf', - 'rtx' => 'text/richtext', - 'sgm' => 'text/sgml', - 'sgml' => 'text/sgml', - 'sh' => 'application/x-sh', - 'shar' => 'application/x-shar', - 'silo' => 'model/mesh', - 'sis' => 'application/vnd.symbian.install', - 'sit' => 'application/x-stuffit', - 'skd' => 'application/x-koan', - 'skm' => 'application/x-koan', - 'skp' => 'application/x-koan', - 'skt' => 'application/x-koan', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'snd' => 'audio/basic', - 'svg' => 'image/svg+xml', - 'so' => 'application/octet-stream', - 'spl' => 'application/x-futuresplash', - 'src' => 'application/x-wais-source', - 'stc' => 'application/vnd.sun.xml.calc.template', - 'std' => 'application/vnd.sun.xml.draw.template', - 'sti' => 'application/vnd.sun.xml.impress.template', - 'stw' => 'application/vnd.sun.xml.writer.template', - 'sv4cpio' => 'application/x-sv4cpio', - 'sv4crc' => 'application/x-sv4crc', - 'swf' => 'application/x-shockwave-flash', - 'sxc' => 'application/vnd.sun.xml.calc', - 'sxd' => 'application/vnd.sun.xml.draw', - 'sxg' => 'application/vnd.sun.xml.writer.global', - 'sxi' => 'application/vnd.sun.xml.impress', - 'sxm' => 'application/vnd.sun.xml.math', - 'sxw' => 'application/vnd.sun.xml.writer', - 't' => 'application/x-troff', - 'tar' => 'application/x-tar', - 'tcl' => 'application/x-tcl', - 'tex' => 'application/x-tex', - 'texi' => 'application/x-texinfo', - 'texinfo' => 'application/x-texinfo', - 'tgz' => 'application/x-gzip', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'torrent' => 'application/x-bittorrent', - 'tr' => 'application/x-troff', - 'tsv' => 'text/tab-separated-values', - 'txt' => 'text/plain', - 'ustar' => 'application/x-ustar', - 'vcd' => 'application/x-cdlink', - 'vrml' => 'model/vrml', - 'wav' => 'audio/x-wav', - 'wax' => 'audio/x-ms-wax', - 'wbmp' => 'image/vnd.wap.wbmp', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wm' => 'video/x-ms-wm', - 'wma' => 'audio/x-ms-wma', - 'wml' => 'text/vnd.wap.wml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'wmls' => 'text/vnd.wap.wmlscript', - 'wmlsc' => 'application/vnd.wap.wmlscriptc', - 'wmv' => 'video/x-ms-wmv', - 'wmx' => 'video/x-ms-wmx', - 'wrl' => 'model/vrml', - 'wvx' => 'video/x-ms-wvx', - 'xbm' => 'image/x-xbitmap', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xml' => 'text/xml', - 'xml' => 'application/xml', - 'xpm' => 'image/x-xpixmap', - 'xsl' => 'text/xsl', - 'xwd' => 'image/x-xwindowdump', - 'xyz' => 'chemical/x-xyz', - 'zip' => 'application/zip', - 'doc' => 'application/msword', - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', - 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', - 'xls' => 'application/vnd.ms-excel', - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', - 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', - 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', - 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', - 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', - 'ppt' => 'application/vnd.ms-powerpoint', - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', - 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', - 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', - 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', - 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', - 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', -); - -if ( ! function_exists('get_extension_from_mime')) -{ - function get_extension_from_mime($mime){ - global $mime_types; - if(strpos($mime, ';')!==FALSE){ - $mime = substr($mime, 0,strpos($mime, ';')); - } - $mime_types_conv = array_flip($mime_types); - if(isset($mime_types_conv[$mime])){ - return $mime_types_conv[$mime]; - } - return ''; - } -} - -if ( ! function_exists('get_file_mime_type')) -{ - function get_file_mime_type($filename, $debug = false) - { - if (function_exists('finfo_open') && function_exists('finfo_file') && function_exists('finfo_close')) - { - $fileinfo = finfo_open(FILEINFO_MIME_TYPE); - $mime_type = finfo_file($fileinfo, $filename); - finfo_close($fileinfo); - - if ( ! empty($mime_type)) - { - if (true === $debug) - { - return array( 'mime_type' => $mime_type, 'method' => 'fileinfo' ); - } - - return $mime_type; - } - } - - if (function_exists('mime_content_type')) - { - $mime_type = mime_content_type($filename); - - if ( ! empty($mime_type)) - { - if (true === $debug) - { - return array( 'mime_type' => $mime_type, 'method' => 'mime_content_type' ); - } - - return $mime_type; - } - } - - global $mime_types; - - $tmp_array = explode('.', $filename); - $ext = strtolower(array_pop($tmp_array)); - - if ( ! empty($mime_types[ $ext ])) - { - if (true === $debug) - { - return array( 'mime_type' => $mime_types[ $ext ], 'method' => 'from_array' ); - } - - return $mime_types[ $ext ]; - } - - if (true === $debug) - { - return array( 'mime_type' => 'application/octet-stream', 'method' => 'last_resort' ); - } - - return 'application/octet-stream'; - } -} - - -/******************** - * The following code can be used to test the function. - * First put a plain text file named "test.txt" and a - * JPEG image file named "image.jpg" in the same folder - * as this file. - * - * Simply remove the "REMOVE ME TO TEST" lines below to have - * the code run when this file runs. - * - * Run the code with this command: - * php mime_type_lib.php - ********************/ - - -/* REMOVE ME TO TEST -echo get_file_mime_type( 'test.txt' ) . "\n"; -echo print_r( get_file_mime_type( 'image.jpg', true ), true ) . "\n"; -REMOVE ME TO TEST */ + 'application/postscript', + 'aif' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'asc' => 'text/plain', + 'asf' => 'video/x-ms-asf', + 'asx' => 'video/x-ms-asf', + 'au' => 'audio/basic', + 'avi' => 'video/x-msvideo', + 'bcpio' => 'application/x-bcpio', + 'bin' => 'application/octet-stream', + 'bmp' => 'image/bmp', + 'bz2' => 'application/x-bzip2', + 'cdf' => 'application/x-netcdf', + 'chrt' => 'application/x-kchart', + 'class' => 'application/octet-stream', + 'cpio' => 'application/x-cpio', + 'cpt' => 'application/mac-compactpro', + 'csh' => 'application/x-csh', + 'css' => 'text/css', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'djv' => 'image/vnd.djvu', + 'djvu' => 'image/vnd.djvu', + 'dll' => 'application/octet-stream', + 'dms' => 'application/octet-stream', + 'dvi' => 'application/x-dvi', + 'dwg' => 'image/vnd.dwg', + 'dxr' => 'application/x-director', + 'eps' => 'application/postscript', + 'etx' => 'text/x-setext', + 'exe' => 'application/octet-stream', + 'ez' => 'application/andrew-inset', + 'flv' => 'video/x-flv', + 'gif' => 'image/gif', + 'gtar' => 'application/x-gtar', + 'gz' => 'application/x-gzip', + 'hdf' => 'application/x-hdf', + 'hqx' => 'application/mac-binhex40', + 'htm' => 'text/html', + 'html' => 'text/html', + 'ice' => 'x-conference/x-cooltalk', + 'ief' => 'image/ief', + 'iges' => 'model/iges', + 'igs' => 'model/iges', + 'img' => 'application/octet-stream', + 'iso' => 'application/octet-stream', + 'jad' => 'text/vnd.sun.j2me.app-descriptor', + 'jar' => 'application/x-java-archive', + 'jnlp' => 'application/x-java-jnlp-file', + 'jpe' => 'image/jpeg', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'js' => 'application/x-javascript', + 'kar' => 'audio/midi', + 'kil' => 'application/x-killustrator', + 'kpr' => 'application/x-kpresenter', + 'kpt' => 'application/x-kpresenter', + 'ksp' => 'application/x-kspread', + 'kwd' => 'application/x-kword', + 'kwt' => 'application/x-kword', + 'kml' => 'application/vnd.google-earth.kml+xml', + 'kmz' => 'application/vnd.google-earth.kmz', + 'latex' => 'application/x-latex', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'm3u' => 'audio/x-mpegurl', + 'man' => 'application/x-troff-man', + 'me' => 'application/x-troff-me', + 'mesh' => 'model/mesh', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mif' => 'application/vnd.mif', + 'mov' => 'video/quicktime', + 'movie' => 'video/x-sgi-movie', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'mp4' => 'video/mp4', + 'mpe' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpeg' => 'video/mpeg', + 'ms' => 'application/x-troff-ms', + 'msh' => 'model/mesh', + 'mxu' => 'video/vnd.mpegurl', + 'nc' => 'application/x-netcdf', + 'odb' => 'application/vnd.oasis.opendocument.database', + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'ogg' => 'application/ogg', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'pbm' => 'image/x-portable-bitmap', + 'pdb' => 'chemical/x-pdb', + 'pdf' => 'application/pdf', + 'pgm' => 'image/x-portable-graymap', + 'pgn' => 'application/x-chess-pgn', + 'php' => 'text/x-php', + 'png' => 'image/png', + 'pnm' => 'image/x-portable-anymap', + 'ppm' => 'image/x-portable-pixmap', + 'ppt' => 'application/vnd.ms-powerpoint', + 'ps' => 'application/postscript', + 'qt' => 'video/quicktime', + 'ra' => 'audio/x-realaudio', + 'ram' => 'audio/x-pn-realaudio', + 'ras' => 'image/x-cmu-raster', + 'rgb' => 'image/x-rgb', + 'rm' => 'audio/x-pn-realaudio', + 'roff' => 'application/x-troff', + 'rpm' => 'application/x-rpm', + 'rtf' => 'text/rtf', + 'rtx' => 'text/richtext', + 'sgm' => 'text/sgml', + 'sgml' => 'text/sgml', + 'sh' => 'application/x-sh', + 'shar' => 'application/x-shar', + 'silo' => 'model/mesh', + 'sis' => 'application/vnd.symbian.install', + 'sit' => 'application/x-stuffit', + 'skd' => 'application/x-koan', + 'skm' => 'application/x-koan', + 'skp' => 'application/x-koan', + 'skt' => 'application/x-koan', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'snd' => 'audio/basic', + 'svg' => 'image/svg+xml', + 'so' => 'application/octet-stream', + 'spl' => 'application/x-futuresplash', + 'src' => 'application/x-wais-source', + 'stc' => 'application/vnd.sun.xml.calc.template', + 'std' => 'application/vnd.sun.xml.draw.template', + 'sti' => 'application/vnd.sun.xml.impress.template', + 'stw' => 'application/vnd.sun.xml.writer.template', + 'sv4cpio' => 'application/x-sv4cpio', + 'sv4crc' => 'application/x-sv4crc', + 'swf' => 'application/x-shockwave-flash', + 'sxc' => 'application/vnd.sun.xml.calc', + 'sxd' => 'application/vnd.sun.xml.draw', + 'sxg' => 'application/vnd.sun.xml.writer.global', + 'sxi' => 'application/vnd.sun.xml.impress', + 'sxm' => 'application/vnd.sun.xml.math', + 'sxw' => 'application/vnd.sun.xml.writer', + 't' => 'application/x-troff', + 'tar' => 'application/x-tar', + 'tcl' => 'application/x-tcl', + 'tex' => 'application/x-tex', + 'texi' => 'application/x-texinfo', + 'texinfo' => 'application/x-texinfo', + 'tgz' => 'application/x-gzip', + 'tif' => 'image/tiff', + 'tiff' => 'image/tiff', + 'torrent' => 'application/x-bittorrent', + 'tr' => 'application/x-troff', + 'tsv' => 'text/tab-separated-values', + 'txt' => 'text/plain', + 'ustar' => 'application/x-ustar', + 'vcd' => 'application/x-cdlink', + 'vrml' => 'model/vrml', + 'wav' => 'audio/x-wav', + 'wax' => 'audio/x-ms-wax', + 'wbmp' => 'image/vnd.wap.wbmp', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wm' => 'video/x-ms-wm', + 'wma' => 'audio/x-ms-wma', + 'wml' => 'text/vnd.wap.wml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'wmls' => 'text/vnd.wap.wmlscript', + 'wmlsc' => 'application/vnd.wap.wmlscriptc', + 'wmv' => 'video/x-ms-wmv', + 'wmx' => 'video/x-ms-wmx', + 'wrl' => 'model/vrml', + 'wvx' => 'video/x-ms-wvx', + 'xbm' => 'image/x-xbitmap', + 'xht' => 'application/xhtml+xml', + 'xhtml' => 'application/xhtml+xml', + 'xml' => 'text/xml', + 'xml' => 'application/xml', + 'xpm' => 'image/x-xpixmap', + 'xsl' => 'text/xsl', + 'xwd' => 'image/x-xwindowdump', + 'xyz' => 'chemical/x-xyz', + 'zip' => 'application/zip', + 'doc' => 'application/msword', + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', + 'docm' => 'application/vnd.ms-word.document.macroEnabled.12', + 'xls' => 'application/vnd.ms-excel', + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', + 'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12', + 'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12', + 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12', + 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', + 'ppt' => 'application/vnd.ms-powerpoint', + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', + 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', + 'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12', + 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', + 'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12', + 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', +); + +if ( ! function_exists('get_extension_from_mime')) +{ + function get_extension_from_mime($mime){ + global $mime_types; + if(strpos($mime, ';')!==FALSE){ + $mime = substr($mime, 0,strpos($mime, ';')); + } + $mime_types_conv = array_flip($mime_types); + if(isset($mime_types_conv[$mime])){ + return $mime_types_conv[$mime]; + } + return ''; + } +} + +if ( ! function_exists('get_file_mime_type')) +{ + function get_file_mime_type($filename, $debug = false) + { + if (function_exists('finfo_open') && function_exists('finfo_file') && function_exists('finfo_close')) + { + $fileinfo = finfo_open(FILEINFO_MIME_TYPE); + $mime_type = finfo_file($fileinfo, $filename); + finfo_close($fileinfo); + + if ( ! empty($mime_type)) + { + if (true === $debug) + { + return array( 'mime_type' => $mime_type, 'method' => 'fileinfo' ); + } + + return $mime_type; + } + } + + if (function_exists('mime_content_type')) + { + $mime_type = mime_content_type($filename); + + if ( ! empty($mime_type)) + { + if (true === $debug) + { + return array( 'mime_type' => $mime_type, 'method' => 'mime_content_type' ); + } + + return $mime_type; + } + } + + global $mime_types; + + $tmp_array = explode('.', $filename); + $ext = strtolower(array_pop($tmp_array)); + + if ( ! empty($mime_types[ $ext ])) + { + if (true === $debug) + { + return array( 'mime_type' => $mime_types[ $ext ], 'method' => 'from_array' ); + } + + return $mime_types[ $ext ]; + } + + if (true === $debug) + { + return array( 'mime_type' => 'application/octet-stream', 'method' => 'last_resort' ); + } + + return 'application/octet-stream'; + } +} + + +/******************** + * The following code can be used to test the function. + * First put a plain text file named "test.txt" and a + * JPEG image file named "image.jpg" in the same folder + * as this file. + * + * Simply remove the "REMOVE ME TO TEST" lines below to have + * the code run when this file runs. + * + * Run the code with this command: + * php mime_type_lib.php + ********************/ + + +/* REMOVE ME TO TEST +echo get_file_mime_type( 'test.txt' ) . "\n"; +echo print_r( get_file_mime_type( 'image.jpg', true ), true ) . "\n"; +REMOVE ME TO TEST */ diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/ConnectManager.as b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/ConnectManager.as index 1baa0327..9ca1af39 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/ConnectManager.as +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/ConnectManager.as @@ -1,295 +1,295 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Robert M. Hall - * Date: 7th August 2012 - * Custom NetConnection Manager for more robust RTMP support - * Based in part on work by Will Law for the old Akamai NCManager.as - * and some of Will's new work in the OVP base classes (Open Video Player) - * as well as similar approaches by many other NetConnection managers - * - */ - - /* - TODO LIST 08/18/2011: - 1. Wired up errors to dispatch events to Jplayer events to allow them to bubble up to JS - 2. Rework event dispatch to handoff netconnection instead of a passed in reference - 3. Allow a customizeable list of protocols and ports to be used instead of entire list - 4. Allow a specific port/protocol (1 connect type) to be used first, and then optionally fallback on a custom list or the default list - 5. Remove some traces and check a few other items below where I've made notes - */ - -package happyworm.jPlayer { - - import flash.events.*; - import flash.net.*; - - import flash.utils.Timer; - import flash.utils.getTimer; - import flash.utils.clearInterval; - import flash.utils.setInterval; - - public class ConnectManager extends Object { - - private var protocols_arr:Array = new Array("rtmp","rtmpt","rtmpe","rtmpte","rtmps"); - private var ports_arr:Array = new Array("",":1935",":80",":443"); - private const protCount:Number = 5; - private const portCount:Number = 4; - - private var _ncRef:Object; - - private var _aNC:Array; - - private var k_TIMEOUT:Number = 30000; - private var k_startConns:Number; - private var m_connList:Array = []; - private var m_serverName:String; - private var m_appName:String; - private var m_streamName:String; - private var m_connListCounter:Number; - private var m_flashComConnectTimeOut:Number; - private var m_validNetConnection:NetConnection; - - private var connectSuccess:Boolean=false; - - private var negotiating:Boolean=false; - private var idleTimeOut:Boolean=false; - - public function ConnectManager() { - trace ("ConnectManager Initialized Version: 1.00 DT"); - createPortsProtocolsArray(); - } - - private function createPortsProtocolsArray():void { - var outerLoop:Number=0; - var innerLoop:Number=0; - for (outerLoop=0; outerLoop myStatus.duration) - { - // Illegal seek time - seeking(false); - pause(0); - } - } - private function seekingEvent():void - { - myStatus.isSeeking = true; - updateStatusValues(); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_SEEKING,myStatus)); - } - private function seekedEvent():void - { - myStatus.isSeeking = false; - updateStatusValues(); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_SEEKED,myStatus)); - } - - - private function netStatusHandler(e:NetStatusEvent):void - { - trace(("netStatusHandler: " + e.info.code)); - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"netStatusHandler: '" + e.info.code + "'")); - //trace("BEFORE: bufferTime: "+myStream.bufferTime+" - bufferTimeMax: "+myStream.bufferTimeMax); - switch (e.info.code) - { - case "NetConnection.Connect.Success" : - // connectStream(); // This method did not do anything sensible anyway. - // Do not think this case occurs. This was for the static file connection. - // Which now seems to be handled by the Connection Manager. - break; - case "NetStream.Buffer.Full": - if(connectString.streamTYPE == "LIVE") { - myStream.bufferTime = startBuffer; - } else { - myStream.bufferTime = maxBuffer; - } - break; - case "NetStream.Buffer.Flush": - myStream.bufferTime = startBuffer; - break; - case "NetStream.Buffer.Empty": - myStream.bufferTime = startBuffer; - break; - case "NetStream.Seek.Notify": - myStream.bufferTime = startBuffer; - break; - case "NetStream.Play.Start" : - - if (firstTime) { - firstTime = false; // Capture flag - - myStatus.loading(); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADSTART,myStatus)); - - // NB: With MP4 player both audio and video types get connected to myVideo. - // NB: Had believed it was important for the audio too, otherwise what plays it? - if(videoBinding) { - myVideo.attachNetStream(myStream); - } - - setVolume(myStatus.volume); - - // Really the progress event just needs to be generated once, and should probably happen before now. - progressUpdates(true); - - // This is an ASSUMPTION! Made it so that the default GUI worked. - // Hence why this part should be refactored. - // Lots of commands sequences after setMedia would be corrupted by this assumption. - // Bascally, we assume that after a setMedia, you will play it. - // Doing setMedia and pause(15) cause the flag to be set incorrectly and the GUI locks up. - myStatus.isPlaying = true; // Should be handled elsewhere. - } - - // Under RTMP, this event code occurs every time the media starts playing and when a new position is seeked to, even when paused. - - // Since under RTMP the event behaviour is quite different, believe a refactor is best here. - // ie., Under RTMP we should be able to know a lot more info about the stream. - - // See onMetaDataHandler() for other condition, since duration is vital. - // See onResult() response handler too. - // Appears to be some duplication between onMetaDataHandler() and onResult(), along with a race between them occuring. - - break; - case "NetStream.Play.UnpublishNotify": - myStream.bufferTime = startBuffer; // was 3 - case "NetStream.Play.Stop" : - myStream.bufferTime = startBuffer; // was 3 - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"NetStream.Play.Stop: getDuration() - getCurrentTime() = " + (getDuration() - getCurrentTime()))); - - // Check if media is at the end (or close) otherwise this was due to download bandwidth stopping playback. ie., Download is not fast enough. - if (Math.abs((getDuration() - getCurrentTime())) < 150) - {// Testing found 150ms worked best for M4A files, where playHead(99.9) caused a stuck state due to firing with ~116ms left to play. - //endedEvent(); - } - break; - case "NetStream.Seek.InvalidTime" : - // Used for capturing invalid set times and clicks on the end of the progress bar. - endedEvent(); - break; - case "NetStream.Play.StreamNotFound" : - myStatus.error(); - // Resets status except the src, and it sets srcError property.; - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ERROR,myStatus)); - break; - } - //trace("AFTER: bufferTime: "+myStream.bufferTime+" - bufferTimeMax: "+myStream.bufferTimeMax); - // "NetStream.Seek.Notify" event code is not very useful. It occurs after every seek(t) command issued and does not appear to wait for the media to be ready. - } - private function endedEvent():void - { - trace("ENDED STREAM EVENT"); - var wasPlaying:Boolean = myStatus.isPlaying; - - // timeUpdates(false); - // timeUpdateEvent(); - pause(0); - - if (wasPlaying) - { - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ENDED,myStatus)); - } - } - private function securityErrorHandler(event:SecurityErrorEvent):void - { - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"securityErrorHandler.")); - } - public function connectStream():void - { - trace("CONNECTING"); - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"connectStream.")); - //this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus)); - - timeUpdates(true); - progressUpdates(true); - //myVideo.attachNetStream(myStream); - //setVolume(myStatus.volume); - } - - private function onResult(result:Object):void - { - trace("OnResult EVENT FIRED!"); - myStatus.duration = parseFloat(result.toString()) * 1000; - trace((("The stream length is " + result) + " seconds")); - - if(!myConnection.connected) { - load(); - } else { - //this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus,"Rockit!")); - - //myStatus.loaded(); - //myStatus.isPlaying=true; - if (! myStatus.metaDataReady) - { - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: " + myStatus.duration)); - - // Allow multiple onResult Handlers to affect size. As per PR #131 and #98. - // myStatus.metaDataReady = true; - - /*var info:Object = new Object(); - info.duration=myStatus.duration - info.width=undefined; - info.height=undefined; - myStatus.metaData = info; - */ - if (myStatus.playOnLoad) - { - myStatus.playOnLoad = false;// Capture the flag - if (myStatus.pausePosition > 0) - {// Important for setMedia followed by play(time). - play(myStatus.pausePosition); - } - else - { - play();// Not always sending pausePosition avoids the extra seek(0) for a normal play() command. - } - - } - else - { - pause(myStatus.pausePosition);// Always send the pausePosition. Important for setMedia() followed by pause(time). Deals with not reading stream.time with setMedia() and play() immediately followed by stop() or pause(0) - } - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADEDMETADATA,myStatus)); - } - else - { - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: Already read (NO EFFECT)")); - } - - myStream.play(streamName); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PLAY,myStatus)); - // timeUpdates(false); - } - - } - - private var overRideConnect:Boolean=false; - public function doneYet():void { - if(!myConnection.connected) { - // try again - ConnMgr.stopAll(true); - overRideConnect=true; - trace("Connected: "+myConnection.connected+" - "+myStatus.loadRequired()); - load(); - } - } - - private var videoBinding:Boolean=false; - public function setFile(src:String,videoSupport:Boolean=false):void - { - // videoSupport turns on/off video - by default no video, audio only - videoBinding=videoSupport; - /* Dont close the stream or netconnection here anymore so we can recycle if host/appname are the same - if ((myStream != null)) - { - myStream.close(); - myConnection.close(); - } - */ - if(ConnMgr.getNegotiating() == true) { - //ConnMgr.stopAll(); - ConnMgr.setNegotiating(false); - } - - myVideo.clear(); - - progressUpdates(false); - timeUpdates(false); - - myStatus.reset(); - myStatus.src = src; - myStatus.srcSet = true; - - firstTime = true; - - //myStatus.loaded(); - - if(src != "") { - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus)); - } - - //timeUpdateEvent(); - } - - public function shutDownNcNs():void { - trace("Connections Closed"); - timeUpdates(false); - progressUpdates(false); - myStream.close(); - myConnection.close(); - - myStatus.reset(); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ENDED,myStatus)); - } - - public function clearFile():void - { - if (myStream != null) - { - myStream.close(); - // Dont close the netConnection here any longer, as we may recycle it later - // may need an extra way to close manually if switching media types after an rtmp session - revisit - // myConnection.close(); - myStatus.reset(); - } - setFile(""); - myStatus.srcSet = false; - } - - public function parseRTMPsrcConnect(rtmpSrc:String):Object - { - // rtmp://cp76372.live.edgefcs.net/live/Flash1Office@60204 - var appName:String = ""; - var streamFileName:String = ""; - var startIndex:uint = 2 + rtmpSrc.indexOf("//"); - var streamTYPE:String = "recorded"; - var host:String = rtmpSrc.substr(startIndex); - var port:String = ""; - host = host.substr(0,host.indexOf("/")); - var endHost:Number = startIndex + host.length + 1; - - // See if there is a host port specified - if(host.indexOf(":") != -1) { - port = host.substr(host.indexOf(":")+1); - host = host.substr(0,host.indexOf(":")); - } - - // Akamai specific live streams - if (rtmpSrc.lastIndexOf("/live/") != -1) - { - trace("LIVE!"); - - - appName = rtmpSrc.substring(endHost,rtmpSrc.lastIndexOf("/live/") + 6); - streamFileName = rtmpSrc.substr(rtmpSrc.lastIndexOf("/live/") + 6); - streamTYPE="LIVE"; - } else { - streamTYPE="RECORDED"; - - } - - // Mp3 streams with standard appname/no instance name, mp3: prefix - if (rtmpSrc.indexOf(".mp3") != -1) - { - appName = rtmpSrc.substring(endHost,rtmpSrc.indexOf("mp3:")); - streamFileName = rtmpSrc.substr(rtmpSrc.indexOf("mp3:")); - streamFileName = streamFileName.substr(0,streamFileName.length - 4); - } - // rtmp://cp83813.edgefcs.net/ondemand/rob_hall/bruce_campbell_oldspice.flv - - // Mp4 streams with standard appname/no instance name, mp4: prefix - if (rtmpSrc.indexOf("mp4:") != -1) - { - appName = rtmpSrc.substring(endHost,rtmpSrc.indexOf("mp4:")); - streamFileName = rtmpSrc.substr(rtmpSrc.indexOf("mp4:")); - streamFileName = streamFileName.substr(0,streamFileName.length - 4); - } - - // .f4v streams with standard appname/no instance name, .flv extension - if (rtmpSrc.indexOf(".flv") != -1) - { - // allow use of ^ in rtmp string to indicate break point for an appname or instance name that - // contains a / in it where it would require multiple connection attempts or manual configuratiom - // of the appname/instancename - var endApp:Number=0; - if(rtmpSrc.indexOf("^") != -1) { - endApp=rtmpSrc.indexOf("^"); - rtmpSrc.replace("^", "/"); - } else { - endApp = rtmpSrc.indexOf("/",endHost); - } - appName = rtmpSrc.substring(endHost,endApp) + "/"; - streamFileName = rtmpSrc.substr(endApp+1); - } - - if(port=="") { - port="MULTI"; - } - //rtmp, rtmpt, rtmps, rtmpe, rtmpte - - - trace(("\n\n*** HOST: " + host)); - trace(("*** PORT: " + port)); - trace(("*** APPNAME: " + appName)); - trace(("*** StreamName: " + streamFileName)); - - var streamParts:Object = new Object; - streamParts.streamTYPE=streamTYPE; - streamParts.appName = appName; - streamParts.streamFileName = streamFileName; - streamParts.hostName = host; - streamName = streamFileName; - - return streamParts; - } - - public function load():Boolean - { - //trace("LOAD: "+myStatus.src); - if (myStatus.loadRequired() || overRideConnect==true) - { - overRideConnect=false; - myStatus.startingDownload(); - var lastAppName:String; - var lastHostName:String; - - try{ - // we do a try, as these properties might not exist yet - if(connectString.appName != "" && connectString.appName != undefined) { - trace("PREVIOUS APP/HOST INFO AVAILABLE"); - lastAppName = connectString.appName; - lastHostName = connectString.hostName; - trace("LAST: "+lastAppName,lastHostName); - } - } catch (error:Error) { - //trace("*** Caught an error condition: "+error); - } - - connectString = parseRTMPsrcConnect(myStatus.src); - - - - trace("**** LOAD :: CONNECT SOURCE: " +connectString.hostName +" "+ connectString.appName); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_WAITING, myStatus)); - - if((connectString.appName == lastAppName && connectString.hostName == lastHostName) && (myConnection.connected)) { - // recycle the netConnection - trace("RECYCLING NETCONNECTION"); - if ((myStream != null)) - { - myStream.close(); - } - connectStream(); - onBWDone(null,myConnection); - } else { - // myConnection.connect(connectString.appName); - trace("NEW NetConnection Negotiation"); - if ((myStream != null)) - { - myStream.close(); - myConnection.close(); - } - - ConnMgr.stopAll(true); - ConnMgr.negotiateConnect(this,connectString.hostName,connectString.appName); - } - - trace("**** LOAD2 :: CONNECT SOURCE: " +connectString.hostName +" "+ connectString.appName); - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_WAITING, myStatus)); - return true; - } - else - { - return false; - } - } - - - - public function onFCUnsubscribe(info:Object):void - { - trace(("onFCUnSubscribe worked" + info)); - } - - public function onFCSubscribe(info:Object):void - { - trace(("onFCSubscribe worked" + info)); - } - - public function onBWDone(info:Object,nc:NetConnection):void - { - if(nc.connected) { - myConnection=nc; - trace(((("onBWDone " + info) + " :: ") + myStatus.src)); - - var customClient:Object = new Object ; - customClient.onMetaData = onMetaDataHandler; - customClient.onPlayStatus = onPlayStatusHandler;// According to the forums and my tests, onPlayStatus only works with FMS (Flash Media Server). - - myStream = null; - myStream = new NetStream(myConnection); - myStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); - myStream.client = customClient; - if(connectString.streamTYPE == "LIVE") { - myStream.bufferTime = 3; // was 3 - myStream.bufferTimeMax = 24; - startBuffer = 3; - maxBuffer = 12; - - } else { - myStream.bufferTime = .2; // was 3 - myStream.bufferTimeMax = 0; - startBuffer = .2; - maxBuffer = 12; - } - - - //streamName=""; - //var connectString:Object = parseRTMPsrcConnect(myStatus.src); - //streamName=connectString.streamFileName; - - responder = new Responder(onResult); - myConnection.call("getStreamLength",responder,streamName); - } else { - connectStream(); - } - - trace("PLAY SOURCE: "+connectString); - - } - - public function play(time:Number = NaN):Boolean { - //trace("PLAY: "+time+" - isPlaying: "+myStatus.isPlaying +" - myStatus.isStartingDownload:"+myStatus.isStartingDownload); - var wasPlaying:Boolean = myStatus.isPlaying; - - if(!isNaN(time) && myStatus.srcSet) { - if(myStatus.isPlaying) { - myStream.pause(); - myStatus.isPlaying = false; - } - myStatus.pausePosition = time; - } - - if(myStatus.isStartingDownload) { - myStatus.playOnLoad = true; // Raise flag, captured in onMetaDataHandler() - return true; - } else if(myStatus.loadRequired()) { - myStatus.playOnLoad = true; // Raise flag, captured in onMetaDataHandler() - return load(); - } else if((myStatus.isLoading || myStatus.isLoaded) && !myStatus.isPlaying) { - if(myStatus.metaDataReady && myStatus.pausePosition > myStatus.duration && connectString.streamTYPE != "LIVE") { // The time is invalid, ie., past the end. - myStream.pause(); // Since it is playing by default at this point. - myStatus.pausePosition = 0; - trace("SEEKER!"); - myStream.seek(0); - timeUpdates(false); - timeUpdateEvent(); - if(wasPlaying) { // For when playing and then get a play(huge) - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PAUSE, myStatus)); - } - } else if(getSeekTimeRatio() > getLoadRatio()) { // Use an estimate based on the downloaded amount - myStatus.playOnSeek = true; - seeking(true); - trace("SEEKER PAUSE!"); - myStream.pause(); // Since it is playing by default at this point. - } else { - if(!isNaN(time)) { // Avoid using seek() when it is already correct. - trace("SEEKER3"); - myStream.seek(myStatus.pausePosition/1000); // Since time is in ms and seek() takes seconds - } - myStatus.isPlaying = true; // Set immediately before playing. Could affects events. - trace("SHOULD GET RESUME!"); - myStream.resume(); - timeUpdates(true); - if(!wasPlaying) { - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PLAY, myStatus)); - } - } - return true; - } else { - return false; - } - } - - public function pause(time:Number=NaN):Boolean - { - //trace("PAUSE: "+time); - myStatus.playOnLoad = false;// Reset flag in case load/play issued immediately before this command, ie., before onMetadata() event. - myStatus.playOnSeek = false;// Reset flag in case play(time) issued before the command and is still seeking to time set. - - var wasPlaying:Boolean = myStatus.isPlaying; - - - // To avoid possible loops with timeupdate and pause(time). A pause() does not have the problem. - var alreadyPausedAtTime:Boolean = false; - if(!isNaN(time) && myStatus.pausePosition == time) { - alreadyPausedAtTime = true; - } - - trace("!isNaN: "+!isNaN(time) +" isNaN: "+isNaN(time)); - - // Need to wait for metadata to load before ever issuing a pause. The metadata handler will call this function if needed, when ready. - if (((myStream != null) && myStatus.metaDataReady)) - {// myStream is a null until the 1st media is loaded. ie., The 1st ever setMedia being followed by a pause() or pause(t). - - if(connectString.streamTYPE == "LIVE") { - trace("PAUSING LIVE"); - myStream.play(false) - } else { - trace("PAUSING RECORDED"); - myStream.pause(); - } - } - if (myStatus.isPlaying) - { - myStatus.isPlaying = false; - myStatus.pausePosition = myStream.time * 1000; - } - - if (! isNaN(time) && myStatus.srcSet) - { - myStatus.pausePosition = time; - } - - if (wasPlaying) - { - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PAUSE,myStatus)); - } - - if (myStatus.isStartingDownload) - { - return true; - } - else if (myStatus.loadRequired()) - { - if ((time > 0)) - {// We do not want the stop() command, which does pause(0), causing a load operation. - return load(); - } - else - { - return true;// Technically the pause(0) succeeded. ie., It did nothing, since nothing was required. - } - } - else if (myStatus.isLoading || myStatus.isLoaded) - { - if (myStatus.metaDataReady && myStatus.pausePosition > myStatus.duration && connectString.streamTYPE != "LIVE" ) - {// The time is invalid, ie., past the end. - myStatus.pausePosition = 0; - - trace("GOT HERE!"); - myStream.seek(0); - seekedEvent();// Deals with seeking effect when using setMedia() then pause(huge). NB: There is no preceeding seeking event. - } - else if (! isNaN(time)) - { - if ((getSeekTimeRatio() > getLoadRatio())) - {// Use an estimate based on the downloaded amount - seeking(true); - } - else - { - if (myStatus.metaDataReady && connectString.streamTYPE != "LIVE") - {// Otherwise seek(0) will stop the metadata loading. - trace("GOT HERE TOO!"); - myStream.seek(myStatus.pausePosition / 1000); - } - } - } - timeUpdates(false); - // Need to be careful with timeupdate event, otherwise a pause in a timeupdate event can cause a loop. - // Neither pause() nor pause(time) will cause a timeupdate loop. - if(wasPlaying || !isNaN(time) && !alreadyPausedAtTime) { - timeUpdateEvent(); - } - return true; - } - else - { - return false; - } - } - public function playHead(percent:Number):Boolean - { - var time:Number = percent * getDuration() * getLoadRatio() / 100; - if (myStatus.isPlaying || myStatus.playOnLoad || myStatus.playOnSeek) - { - return play(time); - } - else - { - return pause(time); - } - } - public function setVolume(v:Number):void - { - myStatus.volume = v; - myTransform.volume = v; - if ((myStream != null)) - { - myStream.soundTransform = myTransform; - } - } - private function updateStatusValues():void - { - //myStatus.seekPercent = 100 * getLoadRatio(); - myStatus.seekPercent = 100; - myStatus.currentTime = getCurrentTime(); - myStatus.currentPercentRelative = 100 * getCurrentRatioRel(); - myStatus.currentPercentAbsolute = 100 * getCurrentRatioAbs(); - myStatus.duration = getDuration(); - } - public function getLoadRatio():Number - { - return 1; - /*trace("LoadRatio:"+myStream.bytesLoaded, myStream.bytesTotal); - if((myStatus.isLoading || myStatus.isLoaded) && myStream.bytesTotal > 0) { - - return myStream.bytesLoaded / myStream.bytesTotal; - } else { - return 0; - } - */ - - } - public function getDuration():Number - { - return myStatus.duration;// Set from meta data. - } - public function getCurrentTime():Number - { - if (myStatus.isPlaying) - { - //trace(myStream.time * 1000); - return myStream.time * 1000; // was +1000 - } - else - { - return myStatus.pausePosition; - } - } - public function getCurrentRatioRel():Number - { - - if ((getCurrentRatioAbs() <= getLoadRatio())) - { - //if((getLoadRatio() > 0) && (getCurrentRatioAbs() <= getLoadRatio())) { - return getCurrentRatioAbs() / getLoadRatio(); - } - else - { - return 0; - } - } - public function getCurrentRatioAbs():Number - { - if ((getDuration() > 0)) - { - return getCurrentTime() / getDuration(); - } - else - { - return 0; - } - } - public function getSeekTimeRatio():Number - { - if ((getDuration() > 0)) - { - return myStatus.pausePosition / getDuration(); - } - else - { - return 1; - } - } - public function onPlayStatusHandler(infoObject:Object):void - { - trace((("OnPlayStatusHandler called: (" + getTimer()) + " ms)")); - for (var prop:* in infoObject) - { - trace(((("\t" + prop) + ":\t") + infoObject[prop])); - } - if (infoObject.code == "NetStream.Play.Complete") - { - endedEvent(); - } - } - - public function onMetaDataHandler(info:Object):void - {// Used in connectStream() in myStream.client object. - // This event occurs when jumping to the start of static files! ie., seek(0) will cause this event to occur. - - if (! myStatus.metaDataReady) - { - trace("\n\n*** METADATA FIRED! ***\n\n"); - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: " + info.duration + " | " + info.width + "x" + info.height)); - - myStatus.metaDataReady = true;// Set flag so that this event only effects jPlayer the 1st time. - myStatus.metaData = info; - myStatus.duration = info.duration * 1000;// Only available via Meta Data. - if (info.width != undefined) - { - myVideo.width = myStatus.videoWidth = info.width; - } - if (info.height != undefined) - { - myVideo.height = myStatus.videoHeight = info.height; - } - - if (myStatus.playOnLoad) - { - myStatus.playOnLoad = false;// Capture the flag - if (myStatus.pausePosition > 0) - {// Important for setMedia followed by play(time). - play(myStatus.pausePosition); - } - else - { - play();// Not always sending pausePosition avoids the extra seek(0) for a normal play() command. - } - } - else - { - pause(myStatus.pausePosition);// Always send the pausePosition. Important for setMedia() followed by pause(time). Deals with not reading stream.time with setMedia() and play() immediately followed by stop() or pause(0) - } - this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADEDMETADATA,myStatus)); - } - else - { - //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: Already read (NO EFFECT)")); - } - } -} +/* + * jPlayer Plugin for jQuery JavaScript Library + * http://www.jplayer.org + * + * Copyright (c) 2009 - 2013 Happyworm Ltd + * Licensed under the MIT license. + * http://opensource.org/licenses/MIT + * + * Author: Robert M. Hall + * Date: 29th January 2013 + * Based on JplayerMp4.as with modifications for rtmp + */ + +package happyworm.jPlayer +{ + import flash.display.Sprite; + + import flash.media.Video; + import flash.media.SoundTransform; + + import flash.net.NetConnection; + import flash.net.NetStream; + import flash.net.Responder; + + import flash.utils.Timer; + import flash.utils.getTimer; + + import flash.events.NetStatusEvent; + import flash.events.SecurityErrorEvent; + import flash.events.TimerEvent; + import flash.events.ErrorEvent; + import flash.events.UncaughtErrorEvent; + import flash.utils.clearInterval; + import flash.utils.setInterval; + import happyworm.jPlayer.ConnectManager; + + public class JplayerRtmp extends Sprite + { + + public var myVideo:Video = new Video; + private var myConnection:NetConnection; + private var myStream:NetStream; + + public var responder:Responder; + + private var streamName:String; + + private var connectString:Object; + + private var firstTime:Boolean = true; + + private var myTransform:SoundTransform = new SoundTransform ; + + public var myStatus:JplayerStatus = new JplayerStatus ; + + private var ConnMgr:ConnectManager=new ConnectManager(); + + private var timeUpdateTimer:Timer = new Timer(250,0);// Matched to HTML event freq + private var progressTimer:Timer = new Timer(250,0);// Matched to HTML event freq + private var seekingTimer:Timer = new Timer(100,0);// Internal: How often seeking is checked to see if it is over. + + private var startBuffer:Number = 3; + private var maxBuffer:Number = 12; + + public function JplayerRtmp(volume:Number) + { + myConnection = new NetConnection ; + myConnection.client = this; + + + // Moved the netconnection negotiation into the ConnectManager.as class - not needed for initial connection + // may need to add eventHandler back in for errors only or just dispatch from the ConnectManager..revisit... + + // myConnection.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); + // myConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler); + myVideo.smoothing = true; + this.addChild(myVideo); + + timeUpdateTimer.addEventListener(TimerEvent.TIMER,timeUpdateHandler); + progressTimer.addEventListener(TimerEvent.TIMER,progressHandler); + seekingTimer.addEventListener(TimerEvent.TIMER,seekingHandler); + + myStatus.volume = volume; + + addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); + + + } + + + + private function uncaughtErrorHandler(event:UncaughtErrorEvent):void + { + trace("UNCAUGHT ERROR - try loading again"); + + if (event.error is Error) + { + var error:Error = event.error as Error; + trace(error); + // do something with the error + } + else if (event.error is ErrorEvent) + { + var errorEvent:ErrorEvent = event.error as ErrorEvent; + // do something with the error + trace(errorEvent); + } + else + { + // a non-Error, non-ErrorEvent type was thrown and uncaught + } + load(); + } + + + + private function progressUpdates(active:Boolean):void + { + if (active) + { + progressTimer.start(); + } + else + { + progressTimer.stop(); + } + } + + private function progressHandler(e:TimerEvent):void + { + if (myStatus.isLoading) + { + if ((getLoadRatio() == 1)) + {// Close as can get to a loadComplete event since client.onPlayStatus only works with FMS + this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"progressHandler: loadComplete")); + myStatus.loaded(); + progressUpdates(false); + } + } + progressEvent(); + } + + private function progressEvent():void + { + // temporarily disabled progress event dispatching - not really needed for rtmp + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"progressEvent:")); + updateStatusValues(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PROGRESS,myStatus)); + } + + private function timeUpdates(active:Boolean):void + { + if (active) + { + timeUpdateTimer.start(); + } + else + { + timeUpdateTimer.stop(); + } + } + + private function timeUpdateHandler(e:TimerEvent):void + { + timeUpdateEvent(); + } + + private function timeUpdateEvent():void + { + updateStatusValues(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_TIMEUPDATE,myStatus)); + } + private function seeking(active:Boolean):void + { + if (active) + { + if (! myStatus.isSeeking) + { + seekingEvent(); + } + seekingTimer.start(); + } + else + { + if (myStatus.isSeeking) + { + seekedEvent(); + } + seekingTimer.stop(); + } + } + private function seekingHandler(e:TimerEvent):void + { + if ((getSeekTimeRatio() <= getLoadRatio())) + { + seeking(false); + if (myStatus.playOnSeek) + { + myStatus.playOnSeek = false;// Capture the flag. + play(myStatus.pausePosition);// Must pass time or the seek time is never set. + } + else + { + pause(myStatus.pausePosition);// Must pass time or the stream.time is read. + } + } + else if (myStatus.metaDataReady && myStatus.pausePosition > myStatus.duration) + { + // Illegal seek time + seeking(false); + pause(0); + } + } + private function seekingEvent():void + { + myStatus.isSeeking = true; + updateStatusValues(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_SEEKING,myStatus)); + } + private function seekedEvent():void + { + myStatus.isSeeking = false; + updateStatusValues(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_SEEKED,myStatus)); + } + + + private function netStatusHandler(e:NetStatusEvent):void + { + trace(("netStatusHandler: " + e.info.code)); + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"netStatusHandler: '" + e.info.code + "'")); + //trace("BEFORE: bufferTime: "+myStream.bufferTime+" - bufferTimeMax: "+myStream.bufferTimeMax); + switch (e.info.code) + { + case "NetConnection.Connect.Success" : + // connectStream(); // This method did not do anything sensible anyway. + // Do not think this case occurs. This was for the static file connection. + // Which now seems to be handled by the Connection Manager. + break; + case "NetStream.Buffer.Full": + if(connectString.streamTYPE == "LIVE") { + myStream.bufferTime = startBuffer; + } else { + myStream.bufferTime = maxBuffer; + } + break; + case "NetStream.Buffer.Flush": + myStream.bufferTime = startBuffer; + break; + case "NetStream.Buffer.Empty": + myStream.bufferTime = startBuffer; + break; + case "NetStream.Seek.Notify": + myStream.bufferTime = startBuffer; + break; + case "NetStream.Play.Start" : + + if (firstTime) { + firstTime = false; // Capture flag + + myStatus.loading(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADSTART,myStatus)); + + // NB: With MP4 player both audio and video types get connected to myVideo. + // NB: Had believed it was important for the audio too, otherwise what plays it? + if(videoBinding) { + myVideo.attachNetStream(myStream); + } + + setVolume(myStatus.volume); + + // Really the progress event just needs to be generated once, and should probably happen before now. + progressUpdates(true); + + // This is an ASSUMPTION! Made it so that the default GUI worked. + // Hence why this part should be refactored. + // Lots of commands sequences after setMedia would be corrupted by this assumption. + // Bascally, we assume that after a setMedia, you will play it. + // Doing setMedia and pause(15) cause the flag to be set incorrectly and the GUI locks up. + myStatus.isPlaying = true; // Should be handled elsewhere. + } + + // Under RTMP, this event code occurs every time the media starts playing and when a new position is seeked to, even when paused. + + // Since under RTMP the event behaviour is quite different, believe a refactor is best here. + // ie., Under RTMP we should be able to know a lot more info about the stream. + + // See onMetaDataHandler() for other condition, since duration is vital. + // See onResult() response handler too. + // Appears to be some duplication between onMetaDataHandler() and onResult(), along with a race between them occuring. + + break; + case "NetStream.Play.UnpublishNotify": + myStream.bufferTime = startBuffer; // was 3 + case "NetStream.Play.Stop" : + myStream.bufferTime = startBuffer; // was 3 + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"NetStream.Play.Stop: getDuration() - getCurrentTime() = " + (getDuration() - getCurrentTime()))); + + // Check if media is at the end (or close) otherwise this was due to download bandwidth stopping playback. ie., Download is not fast enough. + if (Math.abs((getDuration() - getCurrentTime())) < 150) + {// Testing found 150ms worked best for M4A files, where playHead(99.9) caused a stuck state due to firing with ~116ms left to play. + //endedEvent(); + } + break; + case "NetStream.Seek.InvalidTime" : + // Used for capturing invalid set times and clicks on the end of the progress bar. + endedEvent(); + break; + case "NetStream.Play.StreamNotFound" : + myStatus.error(); + // Resets status except the src, and it sets srcError property.; + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ERROR,myStatus)); + break; + } + //trace("AFTER: bufferTime: "+myStream.bufferTime+" - bufferTimeMax: "+myStream.bufferTimeMax); + // "NetStream.Seek.Notify" event code is not very useful. It occurs after every seek(t) command issued and does not appear to wait for the media to be ready. + } + private function endedEvent():void + { + trace("ENDED STREAM EVENT"); + var wasPlaying:Boolean = myStatus.isPlaying; + + // timeUpdates(false); + // timeUpdateEvent(); + pause(0); + + if (wasPlaying) + { + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ENDED,myStatus)); + } + } + private function securityErrorHandler(event:SecurityErrorEvent):void + { + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"securityErrorHandler.")); + } + public function connectStream():void + { + trace("CONNECTING"); + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"connectStream.")); + //this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus)); + + timeUpdates(true); + progressUpdates(true); + //myVideo.attachNetStream(myStream); + //setVolume(myStatus.volume); + } + + private function onResult(result:Object):void + { + trace("OnResult EVENT FIRED!"); + myStatus.duration = parseFloat(result.toString()) * 1000; + trace((("The stream length is " + result) + " seconds")); + + if(!myConnection.connected) { + load(); + } else { + //this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus,"Rockit!")); + + //myStatus.loaded(); + //myStatus.isPlaying=true; + if (! myStatus.metaDataReady) + { + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: " + myStatus.duration)); + + // Allow multiple onResult Handlers to affect size. As per PR #131 and #98. + // myStatus.metaDataReady = true; + + /*var info:Object = new Object(); + info.duration=myStatus.duration + info.width=undefined; + info.height=undefined; + myStatus.metaData = info; + */ + if (myStatus.playOnLoad) + { + myStatus.playOnLoad = false;// Capture the flag + if (myStatus.pausePosition > 0) + {// Important for setMedia followed by play(time). + play(myStatus.pausePosition); + } + else + { + play();// Not always sending pausePosition avoids the extra seek(0) for a normal play() command. + } + + } + else + { + pause(myStatus.pausePosition);// Always send the pausePosition. Important for setMedia() followed by pause(time). Deals with not reading stream.time with setMedia() and play() immediately followed by stop() or pause(0) + } + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADEDMETADATA,myStatus)); + } + else + { + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: Already read (NO EFFECT)")); + } + + myStream.play(streamName); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PLAY,myStatus)); + // timeUpdates(false); + } + + } + + private var overRideConnect:Boolean=false; + public function doneYet():void { + if(!myConnection.connected) { + // try again + ConnMgr.stopAll(true); + overRideConnect=true; + trace("Connected: "+myConnection.connected+" - "+myStatus.loadRequired()); + load(); + } + } + + private var videoBinding:Boolean=false; + public function setFile(src:String,videoSupport:Boolean=false):void + { + // videoSupport turns on/off video - by default no video, audio only + videoBinding=videoSupport; + /* Dont close the stream or netconnection here anymore so we can recycle if host/appname are the same + if ((myStream != null)) + { + myStream.close(); + myConnection.close(); + } + */ + if(ConnMgr.getNegotiating() == true) { + //ConnMgr.stopAll(); + ConnMgr.setNegotiating(false); + } + + myVideo.clear(); + + progressUpdates(false); + timeUpdates(false); + + myStatus.reset(); + myStatus.src = src; + myStatus.srcSet = true; + + firstTime = true; + + //myStatus.loaded(); + + if(src != "") { + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_CANPLAY,myStatus)); + } + + //timeUpdateEvent(); + } + + public function shutDownNcNs():void { + trace("Connections Closed"); + timeUpdates(false); + progressUpdates(false); + myStream.close(); + myConnection.close(); + + myStatus.reset(); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_ENDED,myStatus)); + } + + public function clearFile():void + { + if (myStream != null) + { + myStream.close(); + // Dont close the netConnection here any longer, as we may recycle it later + // may need an extra way to close manually if switching media types after an rtmp session - revisit + // myConnection.close(); + myStatus.reset(); + } + setFile(""); + myStatus.srcSet = false; + } + + public function parseRTMPsrcConnect(rtmpSrc:String):Object + { + // rtmp://cp76372.live.edgefcs.net/live/Flash1Office@60204 + var appName:String = ""; + var streamFileName:String = ""; + var startIndex:uint = 2 + rtmpSrc.indexOf("//"); + var streamTYPE:String = "recorded"; + var host:String = rtmpSrc.substr(startIndex); + var port:String = ""; + host = host.substr(0,host.indexOf("/")); + var endHost:Number = startIndex + host.length + 1; + + // See if there is a host port specified + if(host.indexOf(":") != -1) { + port = host.substr(host.indexOf(":")+1); + host = host.substr(0,host.indexOf(":")); + } + + // Akamai specific live streams + if (rtmpSrc.lastIndexOf("/live/") != -1) + { + trace("LIVE!"); + + + appName = rtmpSrc.substring(endHost,rtmpSrc.lastIndexOf("/live/") + 6); + streamFileName = rtmpSrc.substr(rtmpSrc.lastIndexOf("/live/") + 6); + streamTYPE="LIVE"; + } else { + streamTYPE="RECORDED"; + + } + + // Mp3 streams with standard appname/no instance name, mp3: prefix + if (rtmpSrc.indexOf(".mp3") != -1) + { + appName = rtmpSrc.substring(endHost,rtmpSrc.indexOf("mp3:")); + streamFileName = rtmpSrc.substr(rtmpSrc.indexOf("mp3:")); + streamFileName = streamFileName.substr(0,streamFileName.length - 4); + } + // rtmp://cp83813.edgefcs.net/ondemand/rob_hall/bruce_campbell_oldspice.flv + + // Mp4 streams with standard appname/no instance name, mp4: prefix + if (rtmpSrc.indexOf("mp4:") != -1) + { + appName = rtmpSrc.substring(endHost,rtmpSrc.indexOf("mp4:")); + streamFileName = rtmpSrc.substr(rtmpSrc.indexOf("mp4:")); + streamFileName = streamFileName.substr(0,streamFileName.length - 4); + } + + // .f4v streams with standard appname/no instance name, .flv extension + if (rtmpSrc.indexOf(".flv") != -1) + { + // allow use of ^ in rtmp string to indicate break point for an appname or instance name that + // contains a / in it where it would require multiple connection attempts or manual configuratiom + // of the appname/instancename + var endApp:Number=0; + if(rtmpSrc.indexOf("^") != -1) { + endApp=rtmpSrc.indexOf("^"); + rtmpSrc.replace("^", "/"); + } else { + endApp = rtmpSrc.indexOf("/",endHost); + } + appName = rtmpSrc.substring(endHost,endApp) + "/"; + streamFileName = rtmpSrc.substr(endApp+1); + } + + if(port=="") { + port="MULTI"; + } + //rtmp, rtmpt, rtmps, rtmpe, rtmpte + + + trace(("\n\n*** HOST: " + host)); + trace(("*** PORT: " + port)); + trace(("*** APPNAME: " + appName)); + trace(("*** StreamName: " + streamFileName)); + + var streamParts:Object = new Object; + streamParts.streamTYPE=streamTYPE; + streamParts.appName = appName; + streamParts.streamFileName = streamFileName; + streamParts.hostName = host; + streamName = streamFileName; + + return streamParts; + } + + public function load():Boolean + { + //trace("LOAD: "+myStatus.src); + if (myStatus.loadRequired() || overRideConnect==true) + { + overRideConnect=false; + myStatus.startingDownload(); + var lastAppName:String; + var lastHostName:String; + + try{ + // we do a try, as these properties might not exist yet + if(connectString.appName != "" && connectString.appName != undefined) { + trace("PREVIOUS APP/HOST INFO AVAILABLE"); + lastAppName = connectString.appName; + lastHostName = connectString.hostName; + trace("LAST: "+lastAppName,lastHostName); + } + } catch (error:Error) { + //trace("*** Caught an error condition: "+error); + } + + connectString = parseRTMPsrcConnect(myStatus.src); + + + + trace("**** LOAD :: CONNECT SOURCE: " +connectString.hostName +" "+ connectString.appName); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_WAITING, myStatus)); + + if((connectString.appName == lastAppName && connectString.hostName == lastHostName) && (myConnection.connected)) { + // recycle the netConnection + trace("RECYCLING NETCONNECTION"); + if ((myStream != null)) + { + myStream.close(); + } + connectStream(); + onBWDone(null,myConnection); + } else { + // myConnection.connect(connectString.appName); + trace("NEW NetConnection Negotiation"); + if ((myStream != null)) + { + myStream.close(); + myConnection.close(); + } + + ConnMgr.stopAll(true); + ConnMgr.negotiateConnect(this,connectString.hostName,connectString.appName); + } + + trace("**** LOAD2 :: CONNECT SOURCE: " +connectString.hostName +" "+ connectString.appName); + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_WAITING, myStatus)); + return true; + } + else + { + return false; + } + } + + + + public function onFCUnsubscribe(info:Object):void + { + trace(("onFCUnSubscribe worked" + info)); + } + + public function onFCSubscribe(info:Object):void + { + trace(("onFCSubscribe worked" + info)); + } + + public function onBWDone(info:Object,nc:NetConnection):void + { + if(nc.connected) { + myConnection=nc; + trace(((("onBWDone " + info) + " :: ") + myStatus.src)); + + var customClient:Object = new Object ; + customClient.onMetaData = onMetaDataHandler; + customClient.onPlayStatus = onPlayStatusHandler;// According to the forums and my tests, onPlayStatus only works with FMS (Flash Media Server). + + myStream = null; + myStream = new NetStream(myConnection); + myStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler); + myStream.client = customClient; + if(connectString.streamTYPE == "LIVE") { + myStream.bufferTime = 3; // was 3 + myStream.bufferTimeMax = 24; + startBuffer = 3; + maxBuffer = 12; + + } else { + myStream.bufferTime = .2; // was 3 + myStream.bufferTimeMax = 0; + startBuffer = .2; + maxBuffer = 12; + } + + + //streamName=""; + //var connectString:Object = parseRTMPsrcConnect(myStatus.src); + //streamName=connectString.streamFileName; + + responder = new Responder(onResult); + myConnection.call("getStreamLength",responder,streamName); + } else { + connectStream(); + } + + trace("PLAY SOURCE: "+connectString); + + } + + public function play(time:Number = NaN):Boolean { + //trace("PLAY: "+time+" - isPlaying: "+myStatus.isPlaying +" - myStatus.isStartingDownload:"+myStatus.isStartingDownload); + var wasPlaying:Boolean = myStatus.isPlaying; + + if(!isNaN(time) && myStatus.srcSet) { + if(myStatus.isPlaying) { + myStream.pause(); + myStatus.isPlaying = false; + } + myStatus.pausePosition = time; + } + + if(myStatus.isStartingDownload) { + myStatus.playOnLoad = true; // Raise flag, captured in onMetaDataHandler() + return true; + } else if(myStatus.loadRequired()) { + myStatus.playOnLoad = true; // Raise flag, captured in onMetaDataHandler() + return load(); + } else if((myStatus.isLoading || myStatus.isLoaded) && !myStatus.isPlaying) { + if(myStatus.metaDataReady && myStatus.pausePosition > myStatus.duration && connectString.streamTYPE != "LIVE") { // The time is invalid, ie., past the end. + myStream.pause(); // Since it is playing by default at this point. + myStatus.pausePosition = 0; + trace("SEEKER!"); + myStream.seek(0); + timeUpdates(false); + timeUpdateEvent(); + if(wasPlaying) { // For when playing and then get a play(huge) + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PAUSE, myStatus)); + } + } else if(getSeekTimeRatio() > getLoadRatio()) { // Use an estimate based on the downloaded amount + myStatus.playOnSeek = true; + seeking(true); + trace("SEEKER PAUSE!"); + myStream.pause(); // Since it is playing by default at this point. + } else { + if(!isNaN(time)) { // Avoid using seek() when it is already correct. + trace("SEEKER3"); + myStream.seek(myStatus.pausePosition/1000); // Since time is in ms and seek() takes seconds + } + myStatus.isPlaying = true; // Set immediately before playing. Could affects events. + trace("SHOULD GET RESUME!"); + myStream.resume(); + timeUpdates(true); + if(!wasPlaying) { + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PLAY, myStatus)); + } + } + return true; + } else { + return false; + } + } + + public function pause(time:Number=NaN):Boolean + { + //trace("PAUSE: "+time); + myStatus.playOnLoad = false;// Reset flag in case load/play issued immediately before this command, ie., before onMetadata() event. + myStatus.playOnSeek = false;// Reset flag in case play(time) issued before the command and is still seeking to time set. + + var wasPlaying:Boolean = myStatus.isPlaying; + + + // To avoid possible loops with timeupdate and pause(time). A pause() does not have the problem. + var alreadyPausedAtTime:Boolean = false; + if(!isNaN(time) && myStatus.pausePosition == time) { + alreadyPausedAtTime = true; + } + + trace("!isNaN: "+!isNaN(time) +" isNaN: "+isNaN(time)); + + // Need to wait for metadata to load before ever issuing a pause. The metadata handler will call this function if needed, when ready. + if (((myStream != null) && myStatus.metaDataReady)) + {// myStream is a null until the 1st media is loaded. ie., The 1st ever setMedia being followed by a pause() or pause(t). + + if(connectString.streamTYPE == "LIVE") { + trace("PAUSING LIVE"); + myStream.play(false) + } else { + trace("PAUSING RECORDED"); + myStream.pause(); + } + } + if (myStatus.isPlaying) + { + myStatus.isPlaying = false; + myStatus.pausePosition = myStream.time * 1000; + } + + if (! isNaN(time) && myStatus.srcSet) + { + myStatus.pausePosition = time; + } + + if (wasPlaying) + { + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_PAUSE,myStatus)); + } + + if (myStatus.isStartingDownload) + { + return true; + } + else if (myStatus.loadRequired()) + { + if ((time > 0)) + {// We do not want the stop() command, which does pause(0), causing a load operation. + return load(); + } + else + { + return true;// Technically the pause(0) succeeded. ie., It did nothing, since nothing was required. + } + } + else if (myStatus.isLoading || myStatus.isLoaded) + { + if (myStatus.metaDataReady && myStatus.pausePosition > myStatus.duration && connectString.streamTYPE != "LIVE" ) + {// The time is invalid, ie., past the end. + myStatus.pausePosition = 0; + + trace("GOT HERE!"); + myStream.seek(0); + seekedEvent();// Deals with seeking effect when using setMedia() then pause(huge). NB: There is no preceeding seeking event. + } + else if (! isNaN(time)) + { + if ((getSeekTimeRatio() > getLoadRatio())) + {// Use an estimate based on the downloaded amount + seeking(true); + } + else + { + if (myStatus.metaDataReady && connectString.streamTYPE != "LIVE") + {// Otherwise seek(0) will stop the metadata loading. + trace("GOT HERE TOO!"); + myStream.seek(myStatus.pausePosition / 1000); + } + } + } + timeUpdates(false); + // Need to be careful with timeupdate event, otherwise a pause in a timeupdate event can cause a loop. + // Neither pause() nor pause(time) will cause a timeupdate loop. + if(wasPlaying || !isNaN(time) && !alreadyPausedAtTime) { + timeUpdateEvent(); + } + return true; + } + else + { + return false; + } + } + public function playHead(percent:Number):Boolean + { + var time:Number = percent * getDuration() * getLoadRatio() / 100; + if (myStatus.isPlaying || myStatus.playOnLoad || myStatus.playOnSeek) + { + return play(time); + } + else + { + return pause(time); + } + } + public function setVolume(v:Number):void + { + myStatus.volume = v; + myTransform.volume = v; + if ((myStream != null)) + { + myStream.soundTransform = myTransform; + } + } + private function updateStatusValues():void + { + //myStatus.seekPercent = 100 * getLoadRatio(); + myStatus.seekPercent = 100; + myStatus.currentTime = getCurrentTime(); + myStatus.currentPercentRelative = 100 * getCurrentRatioRel(); + myStatus.currentPercentAbsolute = 100 * getCurrentRatioAbs(); + myStatus.duration = getDuration(); + } + public function getLoadRatio():Number + { + return 1; + /*trace("LoadRatio:"+myStream.bytesLoaded, myStream.bytesTotal); + if((myStatus.isLoading || myStatus.isLoaded) && myStream.bytesTotal > 0) { + + return myStream.bytesLoaded / myStream.bytesTotal; + } else { + return 0; + } + */ + + } + public function getDuration():Number + { + return myStatus.duration;// Set from meta data. + } + public function getCurrentTime():Number + { + if (myStatus.isPlaying) + { + //trace(myStream.time * 1000); + return myStream.time * 1000; // was +1000 + } + else + { + return myStatus.pausePosition; + } + } + public function getCurrentRatioRel():Number + { + + if ((getCurrentRatioAbs() <= getLoadRatio())) + { + //if((getLoadRatio() > 0) && (getCurrentRatioAbs() <= getLoadRatio())) { + return getCurrentRatioAbs() / getLoadRatio(); + } + else + { + return 0; + } + } + public function getCurrentRatioAbs():Number + { + if ((getDuration() > 0)) + { + return getCurrentTime() / getDuration(); + } + else + { + return 0; + } + } + public function getSeekTimeRatio():Number + { + if ((getDuration() > 0)) + { + return myStatus.pausePosition / getDuration(); + } + else + { + return 1; + } + } + public function onPlayStatusHandler(infoObject:Object):void + { + trace((("OnPlayStatusHandler called: (" + getTimer()) + " ms)")); + for (var prop:* in infoObject) + { + trace(((("\t" + prop) + ":\t") + infoObject[prop])); + } + if (infoObject.code == "NetStream.Play.Complete") + { + endedEvent(); + } + } + + public function onMetaDataHandler(info:Object):void + {// Used in connectStream() in myStream.client object. + // This event occurs when jumping to the start of static files! ie., seek(0) will cause this event to occur. + + if (! myStatus.metaDataReady) + { + trace("\n\n*** METADATA FIRED! ***\n\n"); + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: " + info.duration + " | " + info.width + "x" + info.height)); + + myStatus.metaDataReady = true;// Set flag so that this event only effects jPlayer the 1st time. + myStatus.metaData = info; + myStatus.duration = info.duration * 1000;// Only available via Meta Data. + if (info.width != undefined) + { + myVideo.width = myStatus.videoWidth = info.width; + } + if (info.height != undefined) + { + myVideo.height = myStatus.videoHeight = info.height; + } + + if (myStatus.playOnLoad) + { + myStatus.playOnLoad = false;// Capture the flag + if (myStatus.pausePosition > 0) + {// Important for setMedia followed by play(time). + play(myStatus.pausePosition); + } + else + { + play();// Not always sending pausePosition avoids the extra seek(0) for a normal play() command. + } + } + else + { + pause(myStatus.pausePosition);// Always send the pausePosition. Important for setMedia() followed by pause(time). Deals with not reading stream.time with setMedia() and play() immediately followed by stop() or pause(0) + } + this.dispatchEvent(new JplayerEvent(JplayerEvent.JPLAYER_LOADEDMETADATA,myStatus)); + } + else + { + //this.dispatchEvent(new JplayerEvent(JplayerEvent.DEBUG_MSG,myStatus,"onMetaDataHandler: Already read (NO EFFECT)")); + } + } +} } \ No newline at end of file diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/TraceOut.as b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/TraceOut.as index 75be070f..dcb14350 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/TraceOut.as +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/actionscript/happyworm/jPlayer/TraceOut.as @@ -1,62 +1,62 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Robert M. Hall - * Date: 7th August 2012 - */ - -package happyworm.jPlayer -{ - import flash.net.LocalConnection; - import flash.events.StatusEvent; - import flash.system.Capabilities; - import flash.utils.getTimer; - - public class TraceOut - { - - private var outgoing_lc:LocalConnection = new LocalConnection (); - private var firstEvent:Boolean = true; - private var _localAIRDebug:Boolean = false; - - public function TraceOut() - { - outgoing_lc.addEventListener(StatusEvent.STATUS, lcListener); - outgoing_lc.send("_log_output","startLogging",""); - } - - private function lcListener(event:StatusEvent):void - { - // Must have this listener to avoid errors - if (event.level == "error") - { - _localAIRDebug = false; - } - else if(event.level =="status" && firstEvent==true) - { - firstEvent = false; - tracer("<< Successful Connection To Event Logger >>"); - tracer("DEBUG INFO: \n<"+Capabilities.serverString + ">\nFlash Player Version: " + Capabilities.version + "\n"); - _localAIRDebug = true; - } - } - - public function localAIRDebug():Boolean - { - return _localAIRDebug; - } - - public function tracer(msg:String):void - { - trace(msg); - var outMsg:String = "[" + getTimer() + "ms] " + msg; - outgoing_lc.send("_log_output","displayMsg",outMsg); - - } - } -} +/* + * jPlayer Plugin for jQuery JavaScript Library + * http://www.jplayer.org + * + * Copyright (c) 2009 - 2013 Happyworm Ltd + * Licensed under the MIT license. + * http://opensource.org/licenses/MIT + * + * Author: Robert M. Hall + * Date: 7th August 2012 + */ + +package happyworm.jPlayer +{ + import flash.net.LocalConnection; + import flash.events.StatusEvent; + import flash.system.Capabilities; + import flash.utils.getTimer; + + public class TraceOut + { + + private var outgoing_lc:LocalConnection = new LocalConnection (); + private var firstEvent:Boolean = true; + private var _localAIRDebug:Boolean = false; + + public function TraceOut() + { + outgoing_lc.addEventListener(StatusEvent.STATUS, lcListener); + outgoing_lc.send("_log_output","startLogging",""); + } + + private function lcListener(event:StatusEvent):void + { + // Must have this listener to avoid errors + if (event.level == "error") + { + _localAIRDebug = false; + } + else if(event.level =="status" && firstEvent==true) + { + firstEvent = false; + tracer("<< Successful Connection To Event Logger >>"); + tracer("DEBUG INFO: \n<"+Capabilities.serverString + ">\nFlash Player Version: " + Capabilities.version + "\n"); + _localAIRDebug = true; + } + } + + public function localAIRDebug():Boolean + { + return _localAIRDebug; + } + + public function tracer(msg:String):void + { + trace(msg); + var outMsg:String = "[" + getTimer() + "ms] " + msg; + outgoing_lc.send("_log_output","displayMsg",outMsg); + + } + } +} diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin/blue.monday/jplayer.blue.monday.css index 1a5da65e..fa07bc51 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin/blue.monday/jplayer.blue.monday.css +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin/blue.monday/jplayer.blue.monday.css @@ -1,640 +1,640 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #009be3; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #009be3; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #009be3; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #009be3; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ +/* + * Skin for jPlayer Plugin (jQuery JavaScript Library) + * http://www.jplayer.org + * + * Skin Name: Blue Monday + * + * Copyright (c) 2010-2012 Happyworm Ltd + * Dual licensed under the MIT and GPL licenses. + * - http://www.opensource.org/licenses/mit-license.php + * - http://www.gnu.org/copyleft/gpl.html + * + * Author: Silvia Benvenuti + * Skin Version: 4.3 (jPlayer 2.2.0) + * Date: 19th November 2012 + */ + +div.jp-audio, +div.jp-audio-stream, +div.jp-video { + + /* Edit the font-size to counteract inherited font sizing. + * Eg. 1.25em = 1 / 0.8em + */ + + font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ + + font-family:Verdana, Arial, sans-serif; + line-height:1.6; + color: #666; + border:1px solid #009be3; + background-color:#eee; +} +div.jp-audio { + width:420px; +} +div.jp-audio-stream { + width:182px; +} +div.jp-video-270p { + width:480px; +} +div.jp-video-360p { + width:640px; +} +div.jp-video-full { + /* Rules for IE6 (full-screen) */ + width:480px; + height:270px; + /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ + position:static !important; position:relative; +} + +/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ +div.jp-video-full div div { + z-index:1000; +} + +div.jp-video-full div.jp-jplayer { + top: 0; + left: 0; + position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ + overflow: hidden; +} + +div.jp-video-full div.jp-gui { + position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ + top: 0; + left: 0; + width:100%; + height:100%; + z-index:1001; /* 1 layer above the others. */ +} + +div.jp-video-full div.jp-interface { + position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ + bottom: 0; + left: 0; +} + +div.jp-interface { + position: relative; + background-color:#eee; + width:100%; +} + +div.jp-audio div.jp-type-single div.jp-interface { + height:80px; +} +div.jp-audio div.jp-type-playlist div.jp-interface { + height:80px; +} + +div.jp-audio-stream div.jp-type-single div.jp-interface { + height:80px; +} + +div.jp-video div.jp-interface { + border-top:1px solid #009be3; +} + +/* @group CONTROLS */ + +div.jp-controls-holder { + clear: both; + width:440px; + margin:0 auto; + position: relative; + overflow:hidden; + top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ +} + +div.jp-interface ul.jp-controls { + list-style-type:none; + margin:0; + padding: 0; + overflow:hidden; +} + +div.jp-audio ul.jp-controls { + width: 380px; + padding:20px 20px 0 20px; +} + +div.jp-audio-stream ul.jp-controls { + width: 142px; + padding:20px 20px 0 20px; +} + +div.jp-video div.jp-type-single ul.jp-controls { + width: 78px; + margin-left: 200px; +} + +div.jp-video div.jp-type-playlist ul.jp-controls { + width: 134px; + margin-left: 172px; +} +div.jp-video ul.jp-controls, +div.jp-interface ul.jp-controls li { + display:inline; + float: left; +} + +div.jp-interface ul.jp-controls a { + display:block; + overflow:hidden; + text-indent:-9999px; +} +a.jp-play, +a.jp-pause { + width:40px; + height:40px; +} + +a.jp-play { + background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; +} +a.jp-play:hover { + background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; +} +a.jp-pause { + background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; + display: none; +} +a.jp-pause:hover { + background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; +} + +a.jp-stop, a.jp-previous, a.jp-next { + width:28px; + height:28px; + margin-top:6px; +} + +a.jp-stop { + background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; + margin-left:10px; +} + +a.jp-stop:hover { + background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; +} + +a.jp-previous { + background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; +} +a.jp-previous:hover { + background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; +} + +a.jp-next { + background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; +} +a.jp-next:hover { + background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; +} + +/* @end */ + +/* @group progress bar */ + +div.jp-progress { + overflow:hidden; + background-color: #ddd; +} +div.jp-audio div.jp-progress { + position: absolute; + top:32px; + height:15px; +} +div.jp-audio div.jp-type-single div.jp-progress { + left:110px; + width:186px; +} +div.jp-audio div.jp-type-playlist div.jp-progress { + left:166px; + width:130px; +} +div.jp-video div.jp-progress { + top:0px; + left:0px; + width:100%; + height:10px; +} +div.jp-seek-bar { + background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; + width:0px; + height:100%; + cursor: pointer; +} +div.jp-play-bar { + background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; + width:0px; + height:100%; +} + +/* The seeking class is added/removed inside jPlayer */ +div.jp-seeking-bg { + background: url("jplayer.blue.monday.seeking.gif"); +} + +/* @end */ + +/* @group volume controls */ + + +a.jp-mute, +a.jp-unmute, +a.jp-volume-max { + width:18px; + height:15px; + margin-top:12px; +} + +div.jp-audio div.jp-type-single a.jp-mute, +div.jp-audio div.jp-type-single a.jp-unmute { + margin-left: 210px; +} +div.jp-audio div.jp-type-playlist a.jp-mute, +div.jp-audio div.jp-type-playlist a.jp-unmute { + margin-left: 154px; +} + +div.jp-audio-stream div.jp-type-single a.jp-mute, +div.jp-audio-stream div.jp-type-single a.jp-unmute { + margin-left:10px; +} + +div.jp-audio a.jp-volume-max, +div.jp-audio-stream a.jp-volume-max { + margin-left: 56px; +} + +div.jp-video a.jp-mute, +div.jp-video a.jp-unmute, +div.jp-video a.jp-volume-max { + position: absolute; + top:12px; + margin-top:0; +} + +div.jp-video a.jp-mute, +div.jp-video a.jp-unmute { + left: 50px; +} + +div.jp-video a.jp-volume-max { + left: 134px; +} + +a.jp-mute { + background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; +} +a.jp-mute:hover { + background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; +} +a.jp-unmute { + background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; + display: none; +} +a.jp-unmute:hover { + background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; +} +a.jp-volume-max { + background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; +} +a.jp-volume-max:hover { + background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; +} + +div.jp-volume-bar { + position: absolute; + overflow:hidden; + background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; + width:46px; + height:5px; + cursor: pointer; +} +div.jp-audio div.jp-volume-bar { + top:37px; + left:330px; +} +div.jp-audio-stream div.jp-volume-bar { + top:37px; + left:92px; +} +div.jp-video div.jp-volume-bar { + top:17px; + left:72px; +} +div.jp-volume-bar-value { + background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; + width:0px; + height:5px; +} + +/* @end */ + +/* @group current time and duration */ + +div.jp-audio div.jp-time-holder { + position:absolute; + top:50px; +} +div.jp-audio div.jp-type-single div.jp-time-holder { + left:110px; + width:186px; +} +div.jp-audio div.jp-type-playlist div.jp-time-holder { + left:166px; + width:130px; +} + +div.jp-current-time, +div.jp-duration { + width:60px; + font-size:.64em; + font-style:oblique; +} +div.jp-current-time { + float: left; + display:inline; +} +div.jp-duration { + float: right; + display:inline; + text-align: right; +} + +div.jp-video div.jp-current-time { + margin-left:20px; +} +div.jp-video div.jp-duration { + margin-right:20px; +} + +/* @end */ + +/* @group playlist */ + +div.jp-title { + font-weight:bold; + text-align:center; +} + +div.jp-title, +div.jp-playlist { + width:100%; + background-color:#ccc; + border-top:1px solid #009be3; +} +div.jp-type-single div.jp-title, +div.jp-type-playlist div.jp-title, +div.jp-type-single div.jp-playlist { + border-top:none; +} +div.jp-title ul, +div.jp-playlist ul { + list-style-type:none; + margin:0; + padding:0 20px; + font-size:.72em; +} + +div.jp-title li { + padding:5px 0; + font-weight:bold; +} +div.jp-playlist li { + padding:5px 0 4px 20px; + border-bottom:1px solid #eee; +} + +div.jp-playlist li div { + display:inline; +} + +/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ + +div.jp-type-playlist div.jp-playlist li:last-child { + padding:5px 0 5px 20px; + border-bottom:none; +} +div.jp-type-playlist div.jp-playlist li.jp-playlist-current { + list-style-type:square; + list-style-position:inside; + padding-left:7px; +} +div.jp-type-playlist div.jp-playlist a { + color: #333; + text-decoration: none; +} +div.jp-type-playlist div.jp-playlist a:hover { + color:#0d88c1; +} +div.jp-type-playlist div.jp-playlist a.jp-playlist-current { + color:#0d88c1; +} + +div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { + float:right; + display:inline; + text-align:right; + margin-right:10px; + font-weight:bold; + color:#666; +} +div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { + color:#0d88c1; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media { + float:right; + display:inline; + text-align:right; + margin-right:10px; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media a{ + color:#666; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ + color:#0d88c1; +} +span.jp-artist { + font-size:.8em; + color:#666; +} + +/* @end */ + +div.jp-video-play { + width:100%; + overflow:hidden; /* Important for nested negative margins to work in modern browsers */ + cursor:pointer; + background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ +} +div.jp-video-270p div.jp-video-play { + margin-top:-270px; + height:270px; +} +div.jp-video-360p div.jp-video-play { + margin-top:-360px; + height:360px; +} +div.jp-video-full div.jp-video-play { + height:100%; +} +a.jp-video-play-icon { + position:relative; + display:block; + width: 112px; + height: 100px; + + margin-left:-56px; + margin-top:-50px; + left:50%; + top:50%; + + background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; + text-indent:-9999px; +} +div.jp-video-play:hover a.jp-video-play-icon { + background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; +} + + + + + +div.jp-jplayer audio, +div.jp-jplayer { + width:0px; + height:0px; +} + +div.jp-jplayer { + background-color: #000000; +} + + + + + +/* @group TOGGLES */ + +/* The audio toggles are nested inside jp-time-holder */ + +ul.jp-toggles { + list-style-type:none; + padding:0; + margin:0 auto; + overflow:hidden; +} + +div.jp-audio .jp-type-single ul.jp-toggles { + width:25px; +} +div.jp-audio .jp-type-playlist ul.jp-toggles { + width:55px; + margin: 0; + position: absolute; + left: 325px; + top: 50px; +} + +div.jp-video ul.jp-toggles { + margin-top:10px; + width:100px; +} + +ul.jp-toggles li { + display:block; + float:right; +} + +ul.jp-toggles li a { + display:block; + width:25px; + height:18px; + text-indent:-9999px; + line-height:100%; /* need this for IE6 */ +} + +a.jp-full-screen { + background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; + margin-left: 20px; +} + +a.jp-full-screen:hover { + background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; +} + +a.jp-restore-screen { + background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; + margin-left: 20px; +} + +a.jp-restore-screen:hover { + background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; +} + +a.jp-repeat { + background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; +} + +a.jp-repeat:hover { + background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; +} + +a.jp-repeat-off { + background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; +} + +a.jp-repeat-off:hover { + background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; +} + +a.jp-shuffle { + background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; + margin-left: 5px; +} + +a.jp-shuffle:hover { + background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; +} + +a.jp-shuffle-off { + background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; + margin-left: 5px; +} + +a.jp-shuffle-off:hover { + background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; +} + + +/* @end */ + +/* @group NO SOLUTION error feedback */ + +.jp-no-solution { + padding:5px; + font-size:.8em; + background-color:#eee; + border:2px solid #009be3; + color:#000; + display:none; +} + +.jp-no-solution a { + color:#000; +} + +.jp-no-solution span { + font-size:1em; + display:block; + text-align:center; + font-weight:bold; +} + +/* @end */ diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin_ol/blue.monday/jplayer.blue.monday.css b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin_ol/blue.monday/jplayer.blue.monday.css index 1a5da65e..fa07bc51 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin_ol/blue.monday/jplayer.blue.monday.css +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/jPlayer/skin_ol/blue.monday/jplayer.blue.monday.css @@ -1,640 +1,640 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #009be3; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #009be3; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #009be3; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #009be3; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ +/* + * Skin for jPlayer Plugin (jQuery JavaScript Library) + * http://www.jplayer.org + * + * Skin Name: Blue Monday + * + * Copyright (c) 2010-2012 Happyworm Ltd + * Dual licensed under the MIT and GPL licenses. + * - http://www.opensource.org/licenses/mit-license.php + * - http://www.gnu.org/copyleft/gpl.html + * + * Author: Silvia Benvenuti + * Skin Version: 4.3 (jPlayer 2.2.0) + * Date: 19th November 2012 + */ + +div.jp-audio, +div.jp-audio-stream, +div.jp-video { + + /* Edit the font-size to counteract inherited font sizing. + * Eg. 1.25em = 1 / 0.8em + */ + + font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ + + font-family:Verdana, Arial, sans-serif; + line-height:1.6; + color: #666; + border:1px solid #009be3; + background-color:#eee; +} +div.jp-audio { + width:420px; +} +div.jp-audio-stream { + width:182px; +} +div.jp-video-270p { + width:480px; +} +div.jp-video-360p { + width:640px; +} +div.jp-video-full { + /* Rules for IE6 (full-screen) */ + width:480px; + height:270px; + /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ + position:static !important; position:relative; +} + +/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ +div.jp-video-full div div { + z-index:1000; +} + +div.jp-video-full div.jp-jplayer { + top: 0; + left: 0; + position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ + overflow: hidden; +} + +div.jp-video-full div.jp-gui { + position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ + top: 0; + left: 0; + width:100%; + height:100%; + z-index:1001; /* 1 layer above the others. */ +} + +div.jp-video-full div.jp-interface { + position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ + bottom: 0; + left: 0; +} + +div.jp-interface { + position: relative; + background-color:#eee; + width:100%; +} + +div.jp-audio div.jp-type-single div.jp-interface { + height:80px; +} +div.jp-audio div.jp-type-playlist div.jp-interface { + height:80px; +} + +div.jp-audio-stream div.jp-type-single div.jp-interface { + height:80px; +} + +div.jp-video div.jp-interface { + border-top:1px solid #009be3; +} + +/* @group CONTROLS */ + +div.jp-controls-holder { + clear: both; + width:440px; + margin:0 auto; + position: relative; + overflow:hidden; + top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ +} + +div.jp-interface ul.jp-controls { + list-style-type:none; + margin:0; + padding: 0; + overflow:hidden; +} + +div.jp-audio ul.jp-controls { + width: 380px; + padding:20px 20px 0 20px; +} + +div.jp-audio-stream ul.jp-controls { + width: 142px; + padding:20px 20px 0 20px; +} + +div.jp-video div.jp-type-single ul.jp-controls { + width: 78px; + margin-left: 200px; +} + +div.jp-video div.jp-type-playlist ul.jp-controls { + width: 134px; + margin-left: 172px; +} +div.jp-video ul.jp-controls, +div.jp-interface ul.jp-controls li { + display:inline; + float: left; +} + +div.jp-interface ul.jp-controls a { + display:block; + overflow:hidden; + text-indent:-9999px; +} +a.jp-play, +a.jp-pause { + width:40px; + height:40px; +} + +a.jp-play { + background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; +} +a.jp-play:hover { + background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; +} +a.jp-pause { + background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; + display: none; +} +a.jp-pause:hover { + background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; +} + +a.jp-stop, a.jp-previous, a.jp-next { + width:28px; + height:28px; + margin-top:6px; +} + +a.jp-stop { + background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; + margin-left:10px; +} + +a.jp-stop:hover { + background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; +} + +a.jp-previous { + background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; +} +a.jp-previous:hover { + background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; +} + +a.jp-next { + background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; +} +a.jp-next:hover { + background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; +} + +/* @end */ + +/* @group progress bar */ + +div.jp-progress { + overflow:hidden; + background-color: #ddd; +} +div.jp-audio div.jp-progress { + position: absolute; + top:32px; + height:15px; +} +div.jp-audio div.jp-type-single div.jp-progress { + left:110px; + width:186px; +} +div.jp-audio div.jp-type-playlist div.jp-progress { + left:166px; + width:130px; +} +div.jp-video div.jp-progress { + top:0px; + left:0px; + width:100%; + height:10px; +} +div.jp-seek-bar { + background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; + width:0px; + height:100%; + cursor: pointer; +} +div.jp-play-bar { + background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; + width:0px; + height:100%; +} + +/* The seeking class is added/removed inside jPlayer */ +div.jp-seeking-bg { + background: url("jplayer.blue.monday.seeking.gif"); +} + +/* @end */ + +/* @group volume controls */ + + +a.jp-mute, +a.jp-unmute, +a.jp-volume-max { + width:18px; + height:15px; + margin-top:12px; +} + +div.jp-audio div.jp-type-single a.jp-mute, +div.jp-audio div.jp-type-single a.jp-unmute { + margin-left: 210px; +} +div.jp-audio div.jp-type-playlist a.jp-mute, +div.jp-audio div.jp-type-playlist a.jp-unmute { + margin-left: 154px; +} + +div.jp-audio-stream div.jp-type-single a.jp-mute, +div.jp-audio-stream div.jp-type-single a.jp-unmute { + margin-left:10px; +} + +div.jp-audio a.jp-volume-max, +div.jp-audio-stream a.jp-volume-max { + margin-left: 56px; +} + +div.jp-video a.jp-mute, +div.jp-video a.jp-unmute, +div.jp-video a.jp-volume-max { + position: absolute; + top:12px; + margin-top:0; +} + +div.jp-video a.jp-mute, +div.jp-video a.jp-unmute { + left: 50px; +} + +div.jp-video a.jp-volume-max { + left: 134px; +} + +a.jp-mute { + background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; +} +a.jp-mute:hover { + background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; +} +a.jp-unmute { + background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; + display: none; +} +a.jp-unmute:hover { + background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; +} +a.jp-volume-max { + background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; +} +a.jp-volume-max:hover { + background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; +} + +div.jp-volume-bar { + position: absolute; + overflow:hidden; + background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; + width:46px; + height:5px; + cursor: pointer; +} +div.jp-audio div.jp-volume-bar { + top:37px; + left:330px; +} +div.jp-audio-stream div.jp-volume-bar { + top:37px; + left:92px; +} +div.jp-video div.jp-volume-bar { + top:17px; + left:72px; +} +div.jp-volume-bar-value { + background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; + width:0px; + height:5px; +} + +/* @end */ + +/* @group current time and duration */ + +div.jp-audio div.jp-time-holder { + position:absolute; + top:50px; +} +div.jp-audio div.jp-type-single div.jp-time-holder { + left:110px; + width:186px; +} +div.jp-audio div.jp-type-playlist div.jp-time-holder { + left:166px; + width:130px; +} + +div.jp-current-time, +div.jp-duration { + width:60px; + font-size:.64em; + font-style:oblique; +} +div.jp-current-time { + float: left; + display:inline; +} +div.jp-duration { + float: right; + display:inline; + text-align: right; +} + +div.jp-video div.jp-current-time { + margin-left:20px; +} +div.jp-video div.jp-duration { + margin-right:20px; +} + +/* @end */ + +/* @group playlist */ + +div.jp-title { + font-weight:bold; + text-align:center; +} + +div.jp-title, +div.jp-playlist { + width:100%; + background-color:#ccc; + border-top:1px solid #009be3; +} +div.jp-type-single div.jp-title, +div.jp-type-playlist div.jp-title, +div.jp-type-single div.jp-playlist { + border-top:none; +} +div.jp-title ul, +div.jp-playlist ul { + list-style-type:none; + margin:0; + padding:0 20px; + font-size:.72em; +} + +div.jp-title li { + padding:5px 0; + font-weight:bold; +} +div.jp-playlist li { + padding:5px 0 4px 20px; + border-bottom:1px solid #eee; +} + +div.jp-playlist li div { + display:inline; +} + +/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ + +div.jp-type-playlist div.jp-playlist li:last-child { + padding:5px 0 5px 20px; + border-bottom:none; +} +div.jp-type-playlist div.jp-playlist li.jp-playlist-current { + list-style-type:square; + list-style-position:inside; + padding-left:7px; +} +div.jp-type-playlist div.jp-playlist a { + color: #333; + text-decoration: none; +} +div.jp-type-playlist div.jp-playlist a:hover { + color:#0d88c1; +} +div.jp-type-playlist div.jp-playlist a.jp-playlist-current { + color:#0d88c1; +} + +div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { + float:right; + display:inline; + text-align:right; + margin-right:10px; + font-weight:bold; + color:#666; +} +div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { + color:#0d88c1; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media { + float:right; + display:inline; + text-align:right; + margin-right:10px; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media a{ + color:#666; +} +div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ + color:#0d88c1; +} +span.jp-artist { + font-size:.8em; + color:#666; +} + +/* @end */ + +div.jp-video-play { + width:100%; + overflow:hidden; /* Important for nested negative margins to work in modern browsers */ + cursor:pointer; + background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ +} +div.jp-video-270p div.jp-video-play { + margin-top:-270px; + height:270px; +} +div.jp-video-360p div.jp-video-play { + margin-top:-360px; + height:360px; +} +div.jp-video-full div.jp-video-play { + height:100%; +} +a.jp-video-play-icon { + position:relative; + display:block; + width: 112px; + height: 100px; + + margin-left:-56px; + margin-top:-50px; + left:50%; + top:50%; + + background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; + text-indent:-9999px; +} +div.jp-video-play:hover a.jp-video-play-icon { + background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; +} + + + + + +div.jp-jplayer audio, +div.jp-jplayer { + width:0px; + height:0px; +} + +div.jp-jplayer { + background-color: #000000; +} + + + + + +/* @group TOGGLES */ + +/* The audio toggles are nested inside jp-time-holder */ + +ul.jp-toggles { + list-style-type:none; + padding:0; + margin:0 auto; + overflow:hidden; +} + +div.jp-audio .jp-type-single ul.jp-toggles { + width:25px; +} +div.jp-audio .jp-type-playlist ul.jp-toggles { + width:55px; + margin: 0; + position: absolute; + left: 325px; + top: 50px; +} + +div.jp-video ul.jp-toggles { + margin-top:10px; + width:100px; +} + +ul.jp-toggles li { + display:block; + float:right; +} + +ul.jp-toggles li a { + display:block; + width:25px; + height:18px; + text-indent:-9999px; + line-height:100%; /* need this for IE6 */ +} + +a.jp-full-screen { + background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; + margin-left: 20px; +} + +a.jp-full-screen:hover { + background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; +} + +a.jp-restore-screen { + background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; + margin-left: 20px; +} + +a.jp-restore-screen:hover { + background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; +} + +a.jp-repeat { + background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; +} + +a.jp-repeat:hover { + background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; +} + +a.jp-repeat-off { + background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; +} + +a.jp-repeat-off:hover { + background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; +} + +a.jp-shuffle { + background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; + margin-left: 5px; +} + +a.jp-shuffle:hover { + background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; +} + +a.jp-shuffle-off { + background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; + margin-left: 5px; +} + +a.jp-shuffle-off:hover { + background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; +} + + +/* @end */ + +/* @group NO SOLUTION error feedback */ + +.jp-no-solution { + padding:5px; + font-size:.8em; + background-color:#eee; + border:2px solid #009be3; + color:#000; + display:none; +} + +.jp-no-solution a { + color:#000; +} + +.jp-no-solution span { + font-size:1em; + display:block; + text-align:center; + font-weight:bold; +} + +/* @end */ diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php index 723e14a9..f5046bee 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ca.php @@ -1,122 +1,122 @@ - 'Seleccionar', - 'Erase' => 'Eliminar', - 'Open' => 'Obrir', - 'Confirm_del' => 'Segur que desitges eliminar aquest arxiu?', - 'All' => 'Tots', - 'Files' => 'Arxius', - 'Images' => 'Imatges', - 'Archives' => 'Fitxers', - 'Error_Upload' => 'L\'arxiu que intenta pujar excedeix el màxim permès.', - 'Error_extension' => 'L\'extensió de l\'arxiu no està permesa.', - 'Upload_file' => 'Pujar', - 'Filters' => 'Filtres', - 'Videos' => 'Vídeos', - 'Music' => 'Musica', - 'New_Folder' => 'Nova carpeta', - 'Folder_Created' => 'La carpeta ha estat creada exitosament.', - 'Existing_Folder' => 'Carpeta existent', - 'Confirm_Folder_del' => 'Segur que desitges eliminar la carpeta i tots els elements que conté?', - 'Return_Files_List' => 'Tornar a la llista d\'arxius', - 'Preview' => 'Vista prèvia', - 'Download' => 'Descarregar', - 'Insert_Folder_Name' => 'Nom de la carpeta:', - 'Root' => 'arrel', - 'Rename' => 'Renombrar', - 'Back' => 'enrere', - 'View' => 'Vista', - 'View_list' => 'Vista de llista', - 'View_columns_list' => 'Vista de columnes', - 'View_boxes' => 'Vista de miniatures', - 'Toolbar' => 'Barra d\'eines', - 'Actions' => 'Accions', - 'Rename_existing_file' => 'L\'arxiu ja existeix', - 'Rename_existing_folder' => 'La carpeta ja existeix', - 'Empty_name' => 'El nom es troba buit', - 'Text_filter' => 'filtre de text', - 'Swipe_help' => 'Deslize el nom de l\'arxiu/carpeta per mostrar les opcions', - 'Upload_base' => 'Pujada d\'arxius SIMPLE', - 'Upload_java' => 'Pujada d\'arxius JAVA (para arxius pesats)', - 'Upload_url' => 'URL', - 'Upload_java_help' => "Si el applet no carrega: 1. Assegura't de tenir Java instal·lat; sinó descarrega-ho i instal·la-ho des d'aquí 2. Assegura't que el teu firewall no estigui bloquejant res.", - 'Upload_base_help' => "Arrossega i deixa anar els arxius dins d'aquesta àrea o faci clic en ella (per a navegadors moderns) en cas contrari, seleccioni l'arxiu i faci clic en el botó. Quan finalitzi la pujada, faci clic en el botó superior per tornar.", - 'Type_dir' => 'Carpeta', - 'Type' => 'Tipus', - 'Dimension' => 'Dimensions', - 'Size' => 'Pes', - 'Date' => 'Data', - 'Filename' => 'Nom', - 'Operations' => 'Operacions', - 'Date_type' => 'd-m-y', - 'OK' => 'OK', - 'Cancel' => 'Cancel·lar', - 'Sorting' => 'Ordenar', - 'Show_url' => 'Mostrar URL', - 'Extract' => 'Extreure aquí', - 'File_info' => 'Informació', - 'Edit_image' => 'Editar imatge', - 'Duplicate' => 'Duplicar', - 'Folders' => 'Folders', - 'Copy' => 'Copy', - 'Cut' => 'Cut', - 'Paste' => 'Paste', - 'CB' => 'CB', // clipboard - 'Paste_Here' => 'Paste to this directory', - 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', - 'Paste_Failed' => 'Failed to paste file(s)', - 'Clear_Clipboard' => 'Clear clipboard', - 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', - 'Files_ON_Clipboard' => 'There are files on the clipboard.', - 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Could not save image', - 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', - 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', - 'Dir_No_Write' => 'The directory you selected is not writable.', - 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy - 'File_Permission' => 'File permission', - 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders - 'File_Permission_Recursive' => 'Apply recursively?', - 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", - 'User' => 'User', - 'Group' => 'Group', - 'Yes' => 'Yes', - 'No' => 'No', - 'Lang_Not_Found' => 'Could not find language.', - 'Lang_Change' => 'Change the language', - 'File_Not_Found' => 'Could not find the file.', - 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit - 'Edit' => 'Edit', - 'Edit_File' => "Edit file's content", - 'File_Save_OK' => "File successfully saved.", - 'File_Save_Error' => "There was an error while saving the file.", - 'New_File' => 'New File', - 'No_Extension' => 'You have to add a file extension.', - 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Seleccionar', + 'Erase' => 'Eliminar', + 'Open' => 'Obrir', + 'Confirm_del' => 'Segur que desitges eliminar aquest arxiu?', + 'All' => 'Tots', + 'Files' => 'Arxius', + 'Images' => 'Imatges', + 'Archives' => 'Fitxers', + 'Error_Upload' => 'L\'arxiu que intenta pujar excedeix el màxim permès.', + 'Error_extension' => 'L\'extensió de l\'arxiu no està permesa.', + 'Upload_file' => 'Pujar', + 'Filters' => 'Filtres', + 'Videos' => 'Vídeos', + 'Music' => 'Musica', + 'New_Folder' => 'Nova carpeta', + 'Folder_Created' => 'La carpeta ha estat creada exitosament.', + 'Existing_Folder' => 'Carpeta existent', + 'Confirm_Folder_del' => 'Segur que desitges eliminar la carpeta i tots els elements que conté?', + 'Return_Files_List' => 'Tornar a la llista d\'arxius', + 'Preview' => 'Vista prèvia', + 'Download' => 'Descarregar', + 'Insert_Folder_Name' => 'Nom de la carpeta:', + 'Root' => 'arrel', + 'Rename' => 'Renombrar', + 'Back' => 'enrere', + 'View' => 'Vista', + 'View_list' => 'Vista de llista', + 'View_columns_list' => 'Vista de columnes', + 'View_boxes' => 'Vista de miniatures', + 'Toolbar' => 'Barra d\'eines', + 'Actions' => 'Accions', + 'Rename_existing_file' => 'L\'arxiu ja existeix', + 'Rename_existing_folder' => 'La carpeta ja existeix', + 'Empty_name' => 'El nom es troba buit', + 'Text_filter' => 'filtre de text', + 'Swipe_help' => 'Deslize el nom de l\'arxiu/carpeta per mostrar les opcions', + 'Upload_base' => 'Pujada d\'arxius SIMPLE', + 'Upload_java' => 'Pujada d\'arxius JAVA (para arxius pesats)', + 'Upload_url' => 'URL', + 'Upload_java_help' => "Si el applet no carrega: 1. Assegura't de tenir Java instal·lat; sinó descarrega-ho i instal·la-ho des d'aquí 2. Assegura't que el teu firewall no estigui bloquejant res.", + 'Upload_base_help' => "Arrossega i deixa anar els arxius dins d'aquesta àrea o faci clic en ella (per a navegadors moderns) en cas contrari, seleccioni l'arxiu i faci clic en el botó. Quan finalitzi la pujada, faci clic en el botó superior per tornar.", + 'Type_dir' => 'Carpeta', + 'Type' => 'Tipus', + 'Dimension' => 'Dimensions', + 'Size' => 'Pes', + 'Date' => 'Data', + 'Filename' => 'Nom', + 'Operations' => 'Operacions', + 'Date_type' => 'd-m-y', + 'OK' => 'OK', + 'Cancel' => 'Cancel·lar', + 'Sorting' => 'Ordenar', + 'Show_url' => 'Mostrar URL', + 'Extract' => 'Extreure aquí', + 'File_info' => 'Informació', + 'Edit_image' => 'Editar imatge', + 'Duplicate' => 'Duplicar', + 'Folders' => 'Folders', + 'Copy' => 'Copy', + 'Cut' => 'Cut', + 'Paste' => 'Paste', + 'CB' => 'CB', // clipboard + 'Paste_Here' => 'Paste to this directory', + 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', + 'Paste_Failed' => 'Failed to paste file(s)', + 'Clear_Clipboard' => 'Clear clipboard', + 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', + 'Files_ON_Clipboard' => 'There are files on the clipboard.', + 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Could not save image', + 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', + 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', + 'Dir_No_Write' => 'The directory you selected is not writable.', + 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy + 'File_Permission' => 'File permission', + 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders + 'File_Permission_Recursive' => 'Apply recursively?', + 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", + 'User' => 'User', + 'Group' => 'Group', + 'Yes' => 'Yes', + 'No' => 'No', + 'Lang_Not_Found' => 'Could not find language.', + 'Lang_Change' => 'Change the language', + 'File_Not_Found' => 'Could not find the file.', + 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit + 'Edit' => 'Edit', + 'Edit_File' => "Edit file's content", + 'File_Save_OK' => "File successfully saved.", + 'File_Save_Error' => "There was an error while saving the file.", + 'New_File' => 'New File', + 'No_Extension' => 'You have to add a file extension.', + 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php index 129d149d..06be56c8 100755 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/cs.php @@ -1,123 +1,123 @@ - 'Vybrat', - 'Erase' => 'Smazat', - 'Open' => 'Otevřít', - 'Confirm_del' => 'Opravdu chcete smazat tento soubor?', - 'All' => 'Vše', - 'Files' => 'Soubory', - 'Images' => 'Obrázky', - 'Archives' => 'Archivy', - 'Error_Upload' => 'Nahrávaný soubor je příliš velký.', - 'Error_extension' => 'Nahrávání souborů s touto příponou není povoleno.', - 'Upload_file' => 'Nahrát soubor', - 'Filters' => 'Filtr', - 'Videos' => 'Videa', - 'Music' => 'Hudba', - 'New_Folder' => 'Nová složka', - 'Folder_Created' => 'Složka vytvořena', - 'Existing_Folder' => 'Existující složka', - 'Confirm_Folder_del' => 'Opravdu chcete smazat tuto složku a její obsah?', - 'Return_Files_List' => 'Zpět k seznamu souborů', - 'Preview' => 'Náhled', - 'Download' => 'Stáhnout', - 'Insert_Folder_Name' => 'Vložte název složky:', - 'Root' => 'root', - 'Rename' => 'Přejmenovat', - 'Back' => 'zpět', - 'View' => 'Zobrazení', - 'View_list' => 'Seznam souborů', - 'View_columns_list' => 'Dvousloupcový seznam souborů', - 'View_boxes' => 'Dlaždicové zobrazení', - 'Toolbar' => 'Panel nástrojů', - 'Actions' => 'Akce', - 'Rename_existing_file' => 'Tento soubor již existuje', - 'Rename_existing_folder' => 'Tato složka již existuje', - 'Empty_name' => 'Zadali jste prázdný název', - 'Text_filter' => 'textový filtr', - 'Swipe_help' => 'Pro zobrazení možností klikněte na název souboru/složky.', - 'Upload_base' => 'Základní nahrávání', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA upload (pro velké soubory)', - 'Upload_java_help' => "Pokud se Java Applet nenačítá, ujistěte se, že: 1. je ve vašem počítači nainstalována Java [odkaz pro stažení] 2. nic není blokováno firewallem", - 'Upload_base_help' => "Přetáhněte soubor(y) do prostoru výše nebo do něj klikněte myší (moderní prohlížeče) a vyberte soubory. Po dokončení nahrávání klikněte na tlačítko 'Zpět k seznamu souborů'.", - 'Type_dir' => 'složka', - 'Type' => 'Typ', - 'Dimension' => 'Rozměr', - 'Size' => 'Velikost', - 'Date' => 'Datum', - 'Filename' => 'Název', - 'Operations' => 'Operace', - 'Date_type' => 'd.m.Y', - 'OK' => 'OK', - 'Cancel' => 'Zrušit', - 'Sorting' => 'Řazení', - 'Show_url' => 'Zobrazit URL adresu', - 'Extract' => 'Rozbalit zde', - 'File_info' => 'Informace o souboru', - 'Edit_image' => 'Upravit obrázek', - 'Duplicate' => 'Duplikovat', - 'Folders' => 'Složky', - 'Copy' => 'Kopírovat', - 'Cut' => 'Vyjmout', - 'Paste' => 'Vložit', - 'CB' => 'Schránka', // clipboard - 'Paste_Here' => 'Vložit do této složky', - 'Paste_Confirm' => 'Skutečně chcete vložit obsah schránky do této složky? Existující soubory či složky budou přepsány.', - 'Paste_Failed' => 'Vložení selhalo', - 'Clear_Clipboard' => 'Vymazat schránku', - 'Clear_Clipboard_Confirm' => 'Skutečně chcete vymazat obsah schránky?', - 'Files_ON_Clipboard' => 'Ve schránce jsou soubory.', - 'Copy_Cut_Size_Limit' => 'Zvolené soubory/složky jsou příliš velké pro operaci %s. Limit: %d MB/operace', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Zvolili jste příliš mnoho souborů/složek pro operaci %s. Limit: %d souborů/operace', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'Nemáte oprávnění %s.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Obrázek nelze uložit', - 'Zip_No_Extract' => 'Archív nelze rozbalit. Soubor může být poškozen.', - 'Zip_Invalid' => 'Přípona není podporována. Povolené: zip, gz, tar.', - 'Dir_No_Write' => 'Vybraná složka není zapisovatelná.', - 'Function_Disabled' => 'Funkce %s byla zamítnuta serverem.', // %s = cut or copy - 'File_Permission' => 'Práva souboru', - 'File_Permission_Not_Allowed' => 'Změna oprávnění pro %s není povolena.', // %s = files or folders - 'File_Permission_Recursive' => 'Použít rekurzivně?', - 'File_Permission_Wrong_Mode' => "Zadaný kód oprávnění není platný.", - 'User' => 'Uživatel', - 'Group' => 'Skupina', - 'Yes' => 'Ano', - 'No' => 'Ne', - 'Lang_Not_Found' => 'Jazyk nebyl nalezen.', - 'Lang_Change' => 'Změnit jazyk', - 'File_Not_Found' => 'Soubor nebyl nalezen.', - 'File_Open_Edit_Not_Allowed' => 'Nemáte oprávnění %s tento soubor.', // %s = open or edit - 'Edit' => 'Upravit', - 'Edit_File' => "Upravit obsah souboru", - 'File_Save_OK' => "Soubor byl úspěšně uložen.", - 'File_Save_Error' => "Došlo k chybě při ukládání souboru.", - 'New_File' => 'Nový soubor', - 'No_Extension' => 'Musíte doplnit příponu souboru.', - 'Valid_Extensions' => 'Povolené přípony: %s', // %s = txt,log etc. - 'Upload_message' => "Pro nahrání přetáhněte soubor(y) sem", - - 'SERVER ERROR' => "CHYBA SERVERU", - 'forbiden' => "Zakázáno", - 'wrong path' => "Neplatná cesta", - 'wrong name' => "Neplatná název", - 'wrong extension' => "Neplatná přípona", - 'wrong option' => "Neplatná volba", - 'wrong data' => "Neplatná data", - 'wrong action' => "Neplatná akce", - 'wrong sub-action' => "Neplatná podakce", - 'no action passed' => "Nebyla předána žádná akce", - 'no path' => "Žádná cesta", - 'no file' => "Žádný soubor", - 'view type number missing' => "Chybí číslo typu pro zobrazení", - 'Not enought Memory' => "Nedostatek paměti", - 'max_size_reached' => "Vaše složka s obrázky dosáhla maximální velikosti %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Celková velikost", -); + 'Vybrat', + 'Erase' => 'Smazat', + 'Open' => 'Otevřít', + 'Confirm_del' => 'Opravdu chcete smazat tento soubor?', + 'All' => 'Vše', + 'Files' => 'Soubory', + 'Images' => 'Obrázky', + 'Archives' => 'Archivy', + 'Error_Upload' => 'Nahrávaný soubor je příliš velký.', + 'Error_extension' => 'Nahrávání souborů s touto příponou není povoleno.', + 'Upload_file' => 'Nahrát soubor', + 'Filters' => 'Filtr', + 'Videos' => 'Videa', + 'Music' => 'Hudba', + 'New_Folder' => 'Nová složka', + 'Folder_Created' => 'Složka vytvořena', + 'Existing_Folder' => 'Existující složka', + 'Confirm_Folder_del' => 'Opravdu chcete smazat tuto složku a její obsah?', + 'Return_Files_List' => 'Zpět k seznamu souborů', + 'Preview' => 'Náhled', + 'Download' => 'Stáhnout', + 'Insert_Folder_Name' => 'Vložte název složky:', + 'Root' => 'root', + 'Rename' => 'Přejmenovat', + 'Back' => 'zpět', + 'View' => 'Zobrazení', + 'View_list' => 'Seznam souborů', + 'View_columns_list' => 'Dvousloupcový seznam souborů', + 'View_boxes' => 'Dlaždicové zobrazení', + 'Toolbar' => 'Panel nástrojů', + 'Actions' => 'Akce', + 'Rename_existing_file' => 'Tento soubor již existuje', + 'Rename_existing_folder' => 'Tato složka již existuje', + 'Empty_name' => 'Zadali jste prázdný název', + 'Text_filter' => 'textový filtr', + 'Swipe_help' => 'Pro zobrazení možností klikněte na název souboru/složky.', + 'Upload_base' => 'Základní nahrávání', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA upload (pro velké soubory)', + 'Upload_java_help' => "Pokud se Java Applet nenačítá, ujistěte se, že: 1. je ve vašem počítači nainstalována Java [odkaz pro stažení] 2. nic není blokováno firewallem", + 'Upload_base_help' => "Přetáhněte soubor(y) do prostoru výše nebo do něj klikněte myší (moderní prohlížeče) a vyberte soubory. Po dokončení nahrávání klikněte na tlačítko 'Zpět k seznamu souborů'.", + 'Type_dir' => 'složka', + 'Type' => 'Typ', + 'Dimension' => 'Rozměr', + 'Size' => 'Velikost', + 'Date' => 'Datum', + 'Filename' => 'Název', + 'Operations' => 'Operace', + 'Date_type' => 'd.m.Y', + 'OK' => 'OK', + 'Cancel' => 'Zrušit', + 'Sorting' => 'Řazení', + 'Show_url' => 'Zobrazit URL adresu', + 'Extract' => 'Rozbalit zde', + 'File_info' => 'Informace o souboru', + 'Edit_image' => 'Upravit obrázek', + 'Duplicate' => 'Duplikovat', + 'Folders' => 'Složky', + 'Copy' => 'Kopírovat', + 'Cut' => 'Vyjmout', + 'Paste' => 'Vložit', + 'CB' => 'Schránka', // clipboard + 'Paste_Here' => 'Vložit do této složky', + 'Paste_Confirm' => 'Skutečně chcete vložit obsah schránky do této složky? Existující soubory či složky budou přepsány.', + 'Paste_Failed' => 'Vložení selhalo', + 'Clear_Clipboard' => 'Vymazat schránku', + 'Clear_Clipboard_Confirm' => 'Skutečně chcete vymazat obsah schránky?', + 'Files_ON_Clipboard' => 'Ve schránce jsou soubory.', + 'Copy_Cut_Size_Limit' => 'Zvolené soubory/složky jsou příliš velké pro operaci %s. Limit: %d MB/operace', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Zvolili jste příliš mnoho souborů/složek pro operaci %s. Limit: %d souborů/operace', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'Nemáte oprávnění %s.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Obrázek nelze uložit', + 'Zip_No_Extract' => 'Archív nelze rozbalit. Soubor může být poškozen.', + 'Zip_Invalid' => 'Přípona není podporována. Povolené: zip, gz, tar.', + 'Dir_No_Write' => 'Vybraná složka není zapisovatelná.', + 'Function_Disabled' => 'Funkce %s byla zamítnuta serverem.', // %s = cut or copy + 'File_Permission' => 'Práva souboru', + 'File_Permission_Not_Allowed' => 'Změna oprávnění pro %s není povolena.', // %s = files or folders + 'File_Permission_Recursive' => 'Použít rekurzivně?', + 'File_Permission_Wrong_Mode' => "Zadaný kód oprávnění není platný.", + 'User' => 'Uživatel', + 'Group' => 'Skupina', + 'Yes' => 'Ano', + 'No' => 'Ne', + 'Lang_Not_Found' => 'Jazyk nebyl nalezen.', + 'Lang_Change' => 'Změnit jazyk', + 'File_Not_Found' => 'Soubor nebyl nalezen.', + 'File_Open_Edit_Not_Allowed' => 'Nemáte oprávnění %s tento soubor.', // %s = open or edit + 'Edit' => 'Upravit', + 'Edit_File' => "Upravit obsah souboru", + 'File_Save_OK' => "Soubor byl úspěšně uložen.", + 'File_Save_Error' => "Došlo k chybě při ukládání souboru.", + 'New_File' => 'Nový soubor', + 'No_Extension' => 'Musíte doplnit příponu souboru.', + 'Valid_Extensions' => 'Povolené přípony: %s', // %s = txt,log etc. + 'Upload_message' => "Pro nahrání přetáhněte soubor(y) sem", + + 'SERVER ERROR' => "CHYBA SERVERU", + 'forbiden' => "Zakázáno", + 'wrong path' => "Neplatná cesta", + 'wrong name' => "Neplatná název", + 'wrong extension' => "Neplatná přípona", + 'wrong option' => "Neplatná volba", + 'wrong data' => "Neplatná data", + 'wrong action' => "Neplatná akce", + 'wrong sub-action' => "Neplatná podakce", + 'no action passed' => "Nebyla předána žádná akce", + 'no path' => "Žádná cesta", + 'no file' => "Žádný soubor", + 'view type number missing' => "Chybí číslo typu pro zobrazení", + 'Not enought Memory' => "Nedostatek paměti", + 'max_size_reached' => "Vaše složka s obrázky dosáhla maximální velikosti %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Celková velikost", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/da.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/da.php index 7a651d49..9e05c8bd 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/da.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/da.php @@ -1,123 +1,123 @@ - 'Vælg', - 'Erase' => 'Slet', - 'Open' => 'Åbn', - 'Confirm_del' => 'Er du sikker på at du vil slette denne fil?', - 'All' => 'Alle', - 'Files' => 'Filer', - 'Images' => 'Billeder', - 'Archives' => 'Mapper', - 'Error_Upload' => 'Den uploadede fil er større end tilladt (100MB).', - 'Error_extension' => 'Fil typen er ikke tilladt.', - 'Upload_file' => 'Upload', - 'Filters' => 'Filter', - 'Videos' => 'Videoer', - 'Music' => 'Musik', - 'New_Folder' => 'Ny mappe', - 'Folder_Created' => 'Mappen er oprettet korrekt', - 'Existing_Folder' => 'Mappen findes allerede', - 'Confirm_Folder_del' => 'Er du sikker på at du vil slette mappen og alt dens indhold?', - 'Return_Files_List' => 'Tilbage til fil oversigten', - 'Preview' => 'Preview', - 'Download' => 'Download', - 'Insert_Folder_Name' => 'Indsæt mappe navn:', - 'Root' => 'rod', - 'Rename' => 'Omdøb', - 'Back' => 'tilbage', - 'View' => 'Se', - 'View_list' => 'Vis liste', - 'View_columns_list' => 'Søjle liste', - 'View_boxes' => 'Box list', - 'Toolbar' => 'Toolbar', - 'Actions' => 'Handlinger', - 'Rename_existing_file' => 'Filen findes allerede', - 'Rename_existing_folder' => 'Mappen findes allerede', - 'Empty_name' => 'Indsæt et navn', - 'Text_filter' => 'tekst filter', - 'Swipe_help' => 'Swipe over navnet på fil/mappe for at se muligheder', - 'Upload_base' => 'Basis upload', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA upload (store filer)', - 'Upload_java_help' => "Hvis Java Appletten ikke starter, så: 1. sørg for at sikre dig at du har Java installeret, alternativt [download link] 2. sørg for at sikre dig at der ikke er noget der blokeres af din firewall", - 'Upload_base_help' => "Drag & Drop filer eller klik i området herover (moderne browsers) og vælg fil(erne). Når upload er færdigt, så tryk på 'Vend tilbage til filoversigt' knappen.", - 'Type_dir' => 'dir', - 'Type' => 'Type', - 'Dimension' => 'Dimensioner', - 'Size' => 'Størrelse', - 'Date' => 'Dato', - 'Filename' => 'Filenavn', - 'Operations' => 'Operationer', - 'Date_type' => 'år-måned-dag', - 'OK' => 'OK', - 'Cancel' => 'Afbryd', - 'Sorting' => 'sortering', - 'Show_url' => 'Vis sti', - 'Extract' => 'Fold ud her', - 'File_info' => 'fil info', - 'Edit_image' => 'Redigér billede', - 'Duplicate' => 'Kopiér', - 'Folders' => 'Mapper', - 'Copy' => 'Kopiér', - 'Cut' => 'Klip', - 'Paste' => 'Indsæt', - 'CB' => 'UKH', // clipboard - 'Paste_Here' => 'Indsæt i denne mappe', - 'Paste_Confirm' => 'Er du sikker på at du vil indsætte i denne mappe? Det vil overkrive allerede eksisterende filer/mapper, hvis der findes nogen.', - 'Paste_Failed' => 'Det lykkedes ikke at indsætte fil(en/erne)', - 'Clear_Clipboard' => 'Slet indholdet af udklipsholderen', - 'Clear_Clipboard_Confirm' => 'Er du sikker på at du vil slette indholdet af udklipsholderen?', - 'Files_ON_Clipboard' => 'Der findes filer i udklipsholderen.', - 'Copy_Cut_Size_Limit' => 'De valgte filer/mapper er for store til at %s. Max.: %d MB/operation', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Du har valgt for mange filer/mapper til at %s. Max.: %d filer/operation', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'Du har ikke tilladelse til at %s filer. Tal med din administrator.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Det var ikke muligt at gemme billedet', - 'Zip_No_Extract' => 'Det var ikke muligt at hente. Filen er muligvis ødelagt.', - 'Zip_Invalid' => 'Denne filtype understøttes ikke. De mulige filtyper er: zip, gz, tar.', - 'Dir_No_Write' => 'Der kan ikke skrives til den valgte mappe. Kontakt din administrator.', - 'Function_Disabled' => 'Denne %s funktion er slået fra af serveren.', // %s = cut or copy - 'File_Permission' => 'Fil tilladelser', - 'File_Permission_Not_Allowed' => 'Det er ikke tilladt at ændre tilladelsen for %s.', // %s = files or folders - 'File_Permission_Recursive' => 'Gøres ved alle mapper og filer (rekursivt)?', - 'File_Permission_Wrong_Mode' => "Den anvendte indstilling for tilladelse er ikke korrekt.", - 'User' => 'Bruger', - 'Group' => 'Gruppe', - 'Yes' => 'Ja', - 'No' => 'Nej', - 'Lang_Not_Found' => 'Cet var ikke muligt at finde sprog-filen.', - 'Lang_Change' => 'Andet sprog', - 'File_Not_Found' => 'Det var ikke muligt at finde filen.', - 'File_Open_Edit_Not_Allowed' => 'Du har ikke tiladelse til at %s denne fil.', // %s = open or edit - 'Edit' => 'Redigér', - 'Edit_File' => "Redigér filens indhold", - 'File_Save_OK' => "Filen blev gemt.", - 'File_Save_Error' => "Der opstod en fejl i forsøget på at gemme filen.", - 'New_File' => 'Opret ny fil', - 'No_Extension' => 'Husk at tilføje filtype.', - 'Valid_Extensions' => 'Gyldige filtyper er: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Vælg', + 'Erase' => 'Slet', + 'Open' => 'Åbn', + 'Confirm_del' => 'Er du sikker på at du vil slette denne fil?', + 'All' => 'Alle', + 'Files' => 'Filer', + 'Images' => 'Billeder', + 'Archives' => 'Mapper', + 'Error_Upload' => 'Den uploadede fil er større end tilladt (100MB).', + 'Error_extension' => 'Fil typen er ikke tilladt.', + 'Upload_file' => 'Upload', + 'Filters' => 'Filter', + 'Videos' => 'Videoer', + 'Music' => 'Musik', + 'New_Folder' => 'Ny mappe', + 'Folder_Created' => 'Mappen er oprettet korrekt', + 'Existing_Folder' => 'Mappen findes allerede', + 'Confirm_Folder_del' => 'Er du sikker på at du vil slette mappen og alt dens indhold?', + 'Return_Files_List' => 'Tilbage til fil oversigten', + 'Preview' => 'Preview', + 'Download' => 'Download', + 'Insert_Folder_Name' => 'Indsæt mappe navn:', + 'Root' => 'rod', + 'Rename' => 'Omdøb', + 'Back' => 'tilbage', + 'View' => 'Se', + 'View_list' => 'Vis liste', + 'View_columns_list' => 'Søjle liste', + 'View_boxes' => 'Box list', + 'Toolbar' => 'Toolbar', + 'Actions' => 'Handlinger', + 'Rename_existing_file' => 'Filen findes allerede', + 'Rename_existing_folder' => 'Mappen findes allerede', + 'Empty_name' => 'Indsæt et navn', + 'Text_filter' => 'tekst filter', + 'Swipe_help' => 'Swipe over navnet på fil/mappe for at se muligheder', + 'Upload_base' => 'Basis upload', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA upload (store filer)', + 'Upload_java_help' => "Hvis Java Appletten ikke starter, så: 1. sørg for at sikre dig at du har Java installeret, alternativt [download link] 2. sørg for at sikre dig at der ikke er noget der blokeres af din firewall", + 'Upload_base_help' => "Drag & Drop filer eller klik i området herover (moderne browsers) og vælg fil(erne). Når upload er færdigt, så tryk på 'Vend tilbage til filoversigt' knappen.", + 'Type_dir' => 'dir', + 'Type' => 'Type', + 'Dimension' => 'Dimensioner', + 'Size' => 'Størrelse', + 'Date' => 'Dato', + 'Filename' => 'Filenavn', + 'Operations' => 'Operationer', + 'Date_type' => 'år-måned-dag', + 'OK' => 'OK', + 'Cancel' => 'Afbryd', + 'Sorting' => 'sortering', + 'Show_url' => 'Vis sti', + 'Extract' => 'Fold ud her', + 'File_info' => 'fil info', + 'Edit_image' => 'Redigér billede', + 'Duplicate' => 'Kopiér', + 'Folders' => 'Mapper', + 'Copy' => 'Kopiér', + 'Cut' => 'Klip', + 'Paste' => 'Indsæt', + 'CB' => 'UKH', // clipboard + 'Paste_Here' => 'Indsæt i denne mappe', + 'Paste_Confirm' => 'Er du sikker på at du vil indsætte i denne mappe? Det vil overkrive allerede eksisterende filer/mapper, hvis der findes nogen.', + 'Paste_Failed' => 'Det lykkedes ikke at indsætte fil(en/erne)', + 'Clear_Clipboard' => 'Slet indholdet af udklipsholderen', + 'Clear_Clipboard_Confirm' => 'Er du sikker på at du vil slette indholdet af udklipsholderen?', + 'Files_ON_Clipboard' => 'Der findes filer i udklipsholderen.', + 'Copy_Cut_Size_Limit' => 'De valgte filer/mapper er for store til at %s. Max.: %d MB/operation', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Du har valgt for mange filer/mapper til at %s. Max.: %d filer/operation', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'Du har ikke tilladelse til at %s filer. Tal med din administrator.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Det var ikke muligt at gemme billedet', + 'Zip_No_Extract' => 'Det var ikke muligt at hente. Filen er muligvis ødelagt.', + 'Zip_Invalid' => 'Denne filtype understøttes ikke. De mulige filtyper er: zip, gz, tar.', + 'Dir_No_Write' => 'Der kan ikke skrives til den valgte mappe. Kontakt din administrator.', + 'Function_Disabled' => 'Denne %s funktion er slået fra af serveren.', // %s = cut or copy + 'File_Permission' => 'Fil tilladelser', + 'File_Permission_Not_Allowed' => 'Det er ikke tilladt at ændre tilladelsen for %s.', // %s = files or folders + 'File_Permission_Recursive' => 'Gøres ved alle mapper og filer (rekursivt)?', + 'File_Permission_Wrong_Mode' => "Den anvendte indstilling for tilladelse er ikke korrekt.", + 'User' => 'Bruger', + 'Group' => 'Gruppe', + 'Yes' => 'Ja', + 'No' => 'Nej', + 'Lang_Not_Found' => 'Cet var ikke muligt at finde sprog-filen.', + 'Lang_Change' => 'Andet sprog', + 'File_Not_Found' => 'Det var ikke muligt at finde filen.', + 'File_Open_Edit_Not_Allowed' => 'Du har ikke tiladelse til at %s denne fil.', // %s = open or edit + 'Edit' => 'Redigér', + 'Edit_File' => "Redigér filens indhold", + 'File_Save_OK' => "Filen blev gemt.", + 'File_Save_Error' => "Der opstod en fejl i forsøget på at gemme filen.", + 'New_File' => 'Opret ny fil', + 'No_Extension' => 'Husk at tilføje filtype.', + 'Valid_Extensions' => 'Gyldige filtyper er: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php index 4bb7fa8b..6306cf87 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/es.php @@ -1,123 +1,123 @@ - 'Seleccionar', - 'Erase' => 'Eliminar', - 'Open' => 'Abrir', - 'Confirm_del' => '¿Seguro que deseas eliminar este archivo?', - 'All' => 'Todos', - 'Files' => 'Archivos', - 'Images' => 'Imágenes', - 'Archives' => 'Ficheros', - 'Error_Upload' => 'El archivo que intenta subir excede el máximo permitido.', - 'Error_extension' => 'La extensión del archivo no está permitida.', - 'Upload_file' => 'Subir', - 'Filters' => 'Filtros', - 'Videos' => 'Videos', - 'Music' => 'Música', - 'New_Folder' => 'Nueva carpeta', - 'Folder_Created' => 'La carpeta ha sido creada exitosamente.', - 'Existing_Folder' => 'Carpeta existente', - 'Confirm_Folder_del' => '¿Seguro que deseas eliminar la carpeta y todos los elementos que contiene?', - 'Return_Files_List' => 'Regresar a la lista de archivos', - 'Preview' => 'Vista previa', - 'Download' => 'Descargar', - 'Insert_Folder_Name' => 'Nombre de la carpeta:', - 'Root' => 'raíz', - 'Rename' => 'Renombrar', - 'Back' => 'Atrás', - 'View' => 'Vista', - 'View_list' => 'Vista de lista', - 'View_columns_list' => 'Vista de columnas', - 'View_boxes' => 'Vista de miniaturas', - 'Toolbar' => 'Barra de herramientas', - 'Actions' => 'Acciones', - 'Rename_existing_file' => 'El archivo ya existe', - 'Rename_existing_folder' => 'La carpeta ya existe', - 'Empty_name' => 'El nombre se encuentra vacío', - 'Text_filter' => 'filtro de texto', - 'Swipe_help' => 'Deslize el nombre del archivo/carpeta para mostrar las opciones', - 'Upload_base' => 'Subida de archivos SIMPLE', - 'Upload_url' => 'URL', - 'Upload_java' => 'Subida de archivos JAVA (para archivos pesados)', - 'Upload_java_help' => "Si el applet no carga: 1. Asegúrate de tener Java instalado; sino descárgalo e instálalo desde aquí 2. Asegúrate que tu firewall no esté bloqueando nada.", - 'Upload_base_help' => "Arrastra y suelta los archivos dentro de esta área o haga clic en ella (para navegadores modernos) de lo contrario, seleccione el archivo y haga clic en el botón. Cuando finalice la subida, haga clic en el botón superior para regresar.", - 'Type_dir' => 'Carpeta', - 'Type' => 'Tipo', - 'Dimension' => 'Dimensiones', - 'Size' => 'Peso', - 'Date' => 'Fecha', - 'Filename' => 'Nombre', - 'Operations' => 'Operaciones', - 'Date_type' => 'y-m-d', - 'OK' => 'OK', - 'Cancel' => 'Cancelar', - 'Sorting' => 'Ordenar', - 'Show_url' => 'Mostrar URL', - 'Extract' => 'Extraer aquí', - 'File_info' => 'Información', - 'Edit_image' => 'Editar imagen', - 'Duplicate' => 'Duplicar', - 'Folders' => 'Carpetas', - 'Copy' => 'Copiar', - 'Cut' => 'Cortar', - 'Paste' => 'Pegar', - 'CB' => 'Portapapeles', // clipboard - 'Paste_Here' => 'Pegar en esta carpeta', - 'Paste_Confirm' => '¿Está seguro de pegar el contenido en esta carpeta? Esta acción sobreescribirá los archivos y carpetas existentes.', - 'Paste_Failed' => 'Error al pegar los archivos', - 'Clear_Clipboard' => 'Limpiar el portapapeles', - 'Clear_Clipboard_Confirm' => '¿Está seguro que desea limpiar el portapapeles?', - 'Files_ON_Clipboard' => 'Existen archivos en el portapapeles', - 'Copy_Cut_Size_Limit' => 'Los archivos/carpetas seleccionados son demasiado grandes para %s. Límite: %d MB/operación', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Ha seleccionado demasiados archivos/carpetas para %s. Límite: %d archivos/operación', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'No está permitido de %s archivos.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'No fue posible guardar la imagen', - 'Zip_No_Extract' => 'No fue posible extraer los archivos. Es posible que el archivo esté corrupto.', - 'Zip_Invalid' => 'Esta extensión no es soportada. Extensiones válidas: zip, gz, tar.', - 'Dir_No_Write' => 'El directorio que ha seleccionado no tiene permisos de escritura.', - 'Function_Disabled' => 'La función %s ha sido deshabilitada en el servidor.', // %s = cut or copy - 'File_Permission' => 'File permission', - 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders - 'File_Permission_Recursive' => 'Apply recursively?', - 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", - 'User' => 'User', - 'Group' => 'Group', - 'Yes' => 'Yes', - 'No' => 'No', - 'Lang_Not_Found' => 'Could not find language.', - 'Lang_Change' => 'Change the language', - 'File_Not_Found' => 'Could not find the file.', - 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit - 'Edit' => 'Edit', - 'Edit_File' => "Edit file's content", - 'File_Save_OK' => "File successfully saved.", - 'File_Save_Error' => "There was an error while saving the file.", - 'New_File' => 'New File', - 'No_Extension' => 'You have to add a file extension.', - 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Seleccionar', + 'Erase' => 'Eliminar', + 'Open' => 'Abrir', + 'Confirm_del' => '¿Seguro que deseas eliminar este archivo?', + 'All' => 'Todos', + 'Files' => 'Archivos', + 'Images' => 'Imágenes', + 'Archives' => 'Ficheros', + 'Error_Upload' => 'El archivo que intenta subir excede el máximo permitido.', + 'Error_extension' => 'La extensión del archivo no está permitida.', + 'Upload_file' => 'Subir', + 'Filters' => 'Filtros', + 'Videos' => 'Videos', + 'Music' => 'Música', + 'New_Folder' => 'Nueva carpeta', + 'Folder_Created' => 'La carpeta ha sido creada exitosamente.', + 'Existing_Folder' => 'Carpeta existente', + 'Confirm_Folder_del' => '¿Seguro que deseas eliminar la carpeta y todos los elementos que contiene?', + 'Return_Files_List' => 'Regresar a la lista de archivos', + 'Preview' => 'Vista previa', + 'Download' => 'Descargar', + 'Insert_Folder_Name' => 'Nombre de la carpeta:', + 'Root' => 'raíz', + 'Rename' => 'Renombrar', + 'Back' => 'Atrás', + 'View' => 'Vista', + 'View_list' => 'Vista de lista', + 'View_columns_list' => 'Vista de columnas', + 'View_boxes' => 'Vista de miniaturas', + 'Toolbar' => 'Barra de herramientas', + 'Actions' => 'Acciones', + 'Rename_existing_file' => 'El archivo ya existe', + 'Rename_existing_folder' => 'La carpeta ya existe', + 'Empty_name' => 'El nombre se encuentra vacío', + 'Text_filter' => 'filtro de texto', + 'Swipe_help' => 'Deslize el nombre del archivo/carpeta para mostrar las opciones', + 'Upload_base' => 'Subida de archivos SIMPLE', + 'Upload_url' => 'URL', + 'Upload_java' => 'Subida de archivos JAVA (para archivos pesados)', + 'Upload_java_help' => "Si el applet no carga: 1. Asegúrate de tener Java instalado; sino descárgalo e instálalo desde aquí 2. Asegúrate que tu firewall no esté bloqueando nada.", + 'Upload_base_help' => "Arrastra y suelta los archivos dentro de esta área o haga clic en ella (para navegadores modernos) de lo contrario, seleccione el archivo y haga clic en el botón. Cuando finalice la subida, haga clic en el botón superior para regresar.", + 'Type_dir' => 'Carpeta', + 'Type' => 'Tipo', + 'Dimension' => 'Dimensiones', + 'Size' => 'Peso', + 'Date' => 'Fecha', + 'Filename' => 'Nombre', + 'Operations' => 'Operaciones', + 'Date_type' => 'y-m-d', + 'OK' => 'OK', + 'Cancel' => 'Cancelar', + 'Sorting' => 'Ordenar', + 'Show_url' => 'Mostrar URL', + 'Extract' => 'Extraer aquí', + 'File_info' => 'Información', + 'Edit_image' => 'Editar imagen', + 'Duplicate' => 'Duplicar', + 'Folders' => 'Carpetas', + 'Copy' => 'Copiar', + 'Cut' => 'Cortar', + 'Paste' => 'Pegar', + 'CB' => 'Portapapeles', // clipboard + 'Paste_Here' => 'Pegar en esta carpeta', + 'Paste_Confirm' => '¿Está seguro de pegar el contenido en esta carpeta? Esta acción sobreescribirá los archivos y carpetas existentes.', + 'Paste_Failed' => 'Error al pegar los archivos', + 'Clear_Clipboard' => 'Limpiar el portapapeles', + 'Clear_Clipboard_Confirm' => '¿Está seguro que desea limpiar el portapapeles?', + 'Files_ON_Clipboard' => 'Existen archivos en el portapapeles', + 'Copy_Cut_Size_Limit' => 'Los archivos/carpetas seleccionados son demasiado grandes para %s. Límite: %d MB/operación', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Ha seleccionado demasiados archivos/carpetas para %s. Límite: %d archivos/operación', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'No está permitido de %s archivos.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'No fue posible guardar la imagen', + 'Zip_No_Extract' => 'No fue posible extraer los archivos. Es posible que el archivo esté corrupto.', + 'Zip_Invalid' => 'Esta extensión no es soportada. Extensiones válidas: zip, gz, tar.', + 'Dir_No_Write' => 'El directorio que ha seleccionado no tiene permisos de escritura.', + 'Function_Disabled' => 'La función %s ha sido deshabilitada en el servidor.', // %s = cut or copy + 'File_Permission' => 'File permission', + 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders + 'File_Permission_Recursive' => 'Apply recursively?', + 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", + 'User' => 'User', + 'Group' => 'Group', + 'Yes' => 'Yes', + 'No' => 'No', + 'Lang_Not_Found' => 'Could not find language.', + 'Lang_Change' => 'Change the language', + 'File_Not_Found' => 'Could not find the file.', + 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit + 'Edit' => 'Edit', + 'Edit_File' => "Edit file's content", + 'File_Save_OK' => "File successfully saved.", + 'File_Save_Error' => "There was an error while saving the file.", + 'New_File' => 'New File', + 'No_Extension' => 'You have to add a file extension.', + 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php index ebde6a44..6962dac3 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/hu_HU.php @@ -1,123 +1,123 @@ - 'Tallózás', - 'Erase' => 'Törlés', - 'Open' => 'Megnyitás', - 'Confirm_del' => 'Biztos vagy benne, hogy törlöd ezt a fájlt?', - 'All' => 'Összes', - 'Files' => 'Fájlok', - 'Images' => 'Képek', - 'Archives' => 'Tömörített', - 'Error_Upload' => 'A kiválasztott fájl mérete túl nagy!', - 'Error_extension' => 'A megadott kiterjesztésű fájl nem engedélyezett.', - 'Upload_file' => 'Fájl feltöltése', - 'Filters' => 'Szűrő', - 'Videos' => 'Videó', - 'Music' => 'Zene', - 'New_Folder' => 'Új mappa', - 'Folder_Created' => 'Mappa létrehozva', - 'Existing_Folder' => 'Mappa már létezik', - 'Confirm_Folder_del' => 'Biztos, hogy törlöd a könyvtárat és annak tartalmát?', - 'Return_Files_List' => 'Vissza a fájllistához', - 'Preview' => 'Előnézet', - 'Download' => 'Letöltés', - 'Insert_Folder_Name' => 'Mappa neve:', - 'Root' => 'root', - 'Rename' => 'Átnevezés', - 'Back' => 'vissza', - 'View' => 'Nézet', - 'View_list' => 'Lista', - 'View_columns_list' => 'Oszlopok', - 'View_boxes' => 'Miniatűrök', - 'Toolbar' => 'Eszközök', - 'Actions' => 'Műveletek', - 'Rename_existing_file' => 'A fájl már létezik', - 'Rename_existing_folder' => 'A mappa már létezik', - 'Empty_name' => 'A név nincs megadva', - 'Text_filter' => 'szűrés', - 'Swipe_help' => 'Húzd az egered a fájl/mappa nevére, hogy lásd az opciókat.', - 'Upload_base' => 'Alapértelmezett feltöltő', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA feltöltő (nagyméretű fájlokhoz)', - 'Upload_java_help' => "Ha a Java Applet nem töltődik be: 1. ellenőrizze, hogy a JAVA telepítve van-e, ha nincs: [letöltés] 2. ellenőrizze, hogy a tűzfal nem blokkolja-e", - 'Upload_base_help' => "Fogd meg és húzd az ablakba a fájlt vagy kattints bele és válaszd ki majd nyomd meg a megnyitás gombot (modern böngészők). Amikor a feltöltés befejeződött kattints a fenti gombra a visszatéréshez.", - 'Type_dir' => 'Mappa', - 'Type' => 'Típus', - 'Dimension' => 'Felbontás', - 'Size' => 'Méret', - 'Date' => 'Dátum', - 'Filename' => 'Név', - 'Operations' => 'Műveletek', - 'Date_type' => 'y-m-d', - 'OK' => 'OK', - 'Cancel' => 'Mégse', - 'Sorting' => 'rendezés', - 'Show_url' => 'URL mutatása', - 'Extract' => 'kibontás ide', - 'File_info' => 'fájl info', - 'Edit_image' => 'kép szerkesztése', - 'Duplicate' => 'Klónozás', - 'Folders' => 'Mappák', - 'Copy' => 'Másolás', - 'Cut' => 'Kivágás', - 'Paste' => 'Beillesztés', - 'CB' => 'VL', // clipboard - 'Paste_Here' => 'Beillesztés ebbe a mappába.', - 'Paste_Confirm' => 'Biztos vagy benne, hogy ebbe a mappába szeretnéd beilleszteni a fájlokat? A létező fájlok/mappák felül lesznek írva.', - 'Paste_Failed' => 'A beillesztés sikertelen!', - 'Clear_Clipboard' => 'Vágólap törlése', - 'Clear_Clipboard_Confirm' => 'Biztos törlöd a vágólap tartalmát?', - 'Files_ON_Clipboard' => 'Fájlok találhatóak a vágólapon.', - 'Copy_Cut_Size_Limit' => 'A kiválasztott fájlok/mappák túl nagyok a %shoz. Limit: %d MB/művelet', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Túl sok fájlt választottál ki a %shoz. Limit: %d fájl/művelet', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'A %s nem engedélyezett.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'A kép mentése sikertelen.', - 'Zip_No_Extract' => 'Kicsomagolás sikertelen. Lehet, hogy korrupt a fájl.', - 'Zip_Invalid' => 'Ez a kiterjesztés nem támogatott. Támogatott: zip, gz, tar.', - 'Dir_No_Write' => 'A kiválasztott mappa nem írható.', - 'Function_Disabled' => 'A %s funkciót letiltotta a szerver.', // %s = cut or copy - 'File_Permission' => 'Engedélyek', - 'File_Permission_Not_Allowed' => 'A %s jogainak a megváltoztatása nem engedélyezett.', // %s = files or folders - 'File_Permission_Recursive' => 'Rekurzív beállítás az almappákra?', - 'File_Permission_Wrong_Mode' => "A beírt engedély nem megfelelő.", - 'User' => 'Felhasználó', - 'Group' => 'Csoport', - 'Yes' => 'Igen', - 'No' => 'Nem', - 'Lang_Not_Found' => 'A nyelv nem található.', - 'Lang_Change' => 'Nyelv megváltoztatása', - 'File_Not_Found' => 'A fájl nem található.', - 'File_Open_Edit_Not_Allowed' => 'Nincs jogod %s a fájlt.', // %s = open or edit - 'Edit' => 'Szerkesztés', - 'Edit_File' => "Fájl szerkesztése", - 'File_Save_OK' => "Fájl sikeresen mentve.", - 'File_Save_Error' => "Hiba történt a fájl mentése közben.", - 'New_File' => 'Új fájl', - 'No_Extension' => 'Meg kell adnod a fájl kiterjesztését.', - 'Valid_Extensions' => 'Elfogadott kiterjesztések: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Tallózás', + 'Erase' => 'Törlés', + 'Open' => 'Megnyitás', + 'Confirm_del' => 'Biztos vagy benne, hogy törlöd ezt a fájlt?', + 'All' => 'Összes', + 'Files' => 'Fájlok', + 'Images' => 'Képek', + 'Archives' => 'Tömörített', + 'Error_Upload' => 'A kiválasztott fájl mérete túl nagy!', + 'Error_extension' => 'A megadott kiterjesztésű fájl nem engedélyezett.', + 'Upload_file' => 'Fájl feltöltése', + 'Filters' => 'Szűrő', + 'Videos' => 'Videó', + 'Music' => 'Zene', + 'New_Folder' => 'Új mappa', + 'Folder_Created' => 'Mappa létrehozva', + 'Existing_Folder' => 'Mappa már létezik', + 'Confirm_Folder_del' => 'Biztos, hogy törlöd a könyvtárat és annak tartalmát?', + 'Return_Files_List' => 'Vissza a fájllistához', + 'Preview' => 'Előnézet', + 'Download' => 'Letöltés', + 'Insert_Folder_Name' => 'Mappa neve:', + 'Root' => 'root', + 'Rename' => 'Átnevezés', + 'Back' => 'vissza', + 'View' => 'Nézet', + 'View_list' => 'Lista', + 'View_columns_list' => 'Oszlopok', + 'View_boxes' => 'Miniatűrök', + 'Toolbar' => 'Eszközök', + 'Actions' => 'Műveletek', + 'Rename_existing_file' => 'A fájl már létezik', + 'Rename_existing_folder' => 'A mappa már létezik', + 'Empty_name' => 'A név nincs megadva', + 'Text_filter' => 'szűrés', + 'Swipe_help' => 'Húzd az egered a fájl/mappa nevére, hogy lásd az opciókat.', + 'Upload_base' => 'Alapértelmezett feltöltő', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA feltöltő (nagyméretű fájlokhoz)', + 'Upload_java_help' => "Ha a Java Applet nem töltődik be: 1. ellenőrizze, hogy a JAVA telepítve van-e, ha nincs: [letöltés] 2. ellenőrizze, hogy a tűzfal nem blokkolja-e", + 'Upload_base_help' => "Fogd meg és húzd az ablakba a fájlt vagy kattints bele és válaszd ki majd nyomd meg a megnyitás gombot (modern böngészők). Amikor a feltöltés befejeződött kattints a fenti gombra a visszatéréshez.", + 'Type_dir' => 'Mappa', + 'Type' => 'Típus', + 'Dimension' => 'Felbontás', + 'Size' => 'Méret', + 'Date' => 'Dátum', + 'Filename' => 'Név', + 'Operations' => 'Műveletek', + 'Date_type' => 'y-m-d', + 'OK' => 'OK', + 'Cancel' => 'Mégse', + 'Sorting' => 'rendezés', + 'Show_url' => 'URL mutatása', + 'Extract' => 'kibontás ide', + 'File_info' => 'fájl info', + 'Edit_image' => 'kép szerkesztése', + 'Duplicate' => 'Klónozás', + 'Folders' => 'Mappák', + 'Copy' => 'Másolás', + 'Cut' => 'Kivágás', + 'Paste' => 'Beillesztés', + 'CB' => 'VL', // clipboard + 'Paste_Here' => 'Beillesztés ebbe a mappába.', + 'Paste_Confirm' => 'Biztos vagy benne, hogy ebbe a mappába szeretnéd beilleszteni a fájlokat? A létező fájlok/mappák felül lesznek írva.', + 'Paste_Failed' => 'A beillesztés sikertelen!', + 'Clear_Clipboard' => 'Vágólap törlése', + 'Clear_Clipboard_Confirm' => 'Biztos törlöd a vágólap tartalmát?', + 'Files_ON_Clipboard' => 'Fájlok találhatóak a vágólapon.', + 'Copy_Cut_Size_Limit' => 'A kiválasztott fájlok/mappák túl nagyok a %shoz. Limit: %d MB/művelet', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Túl sok fájlt választottál ki a %shoz. Limit: %d fájl/művelet', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'A %s nem engedélyezett.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'A kép mentése sikertelen.', + 'Zip_No_Extract' => 'Kicsomagolás sikertelen. Lehet, hogy korrupt a fájl.', + 'Zip_Invalid' => 'Ez a kiterjesztés nem támogatott. Támogatott: zip, gz, tar.', + 'Dir_No_Write' => 'A kiválasztott mappa nem írható.', + 'Function_Disabled' => 'A %s funkciót letiltotta a szerver.', // %s = cut or copy + 'File_Permission' => 'Engedélyek', + 'File_Permission_Not_Allowed' => 'A %s jogainak a megváltoztatása nem engedélyezett.', // %s = files or folders + 'File_Permission_Recursive' => 'Rekurzív beállítás az almappákra?', + 'File_Permission_Wrong_Mode' => "A beírt engedély nem megfelelő.", + 'User' => 'Felhasználó', + 'Group' => 'Csoport', + 'Yes' => 'Igen', + 'No' => 'Nem', + 'Lang_Not_Found' => 'A nyelv nem található.', + 'Lang_Change' => 'Nyelv megváltoztatása', + 'File_Not_Found' => 'A fájl nem található.', + 'File_Open_Edit_Not_Allowed' => 'Nincs jogod %s a fájlt.', // %s = open or edit + 'Edit' => 'Szerkesztés', + 'Edit_File' => "Fájl szerkesztése", + 'File_Save_OK' => "Fájl sikeresen mentve.", + 'File_Save_Error' => "Hiba történt a fájl mentése közben.", + 'New_File' => 'Új fájl', + 'No_Extension' => 'Meg kell adnod a fájl kiterjesztését.', + 'Valid_Extensions' => 'Elfogadott kiterjesztések: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php index 92c91a1f..3c0b6400 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/mn_MN.php @@ -1,123 +1,123 @@ - 'Сонгох', - 'Erase' => 'Устгах', - 'Open' => 'Нээх', - 'Confirm_del' => 'Та энэ файлыг устгахдаа итгэлтэй байна уу?', - 'All' => 'Бүгд', - 'Files' => 'Файлууд', - 'Images' => 'Зурагнууд', - 'Archives' => 'Архивлагдсан файлууд', - 'Error_Upload' => 'Хуулсан файл зөвшөөрөгдөх хэмжээнээс их байна.', - 'Error_extension' => 'Файлын өргөтгөх зөвшөөрөгдөөгүй.', - 'Upload_file' => 'Хуулах', - 'Filters' => 'Шүүлтүүрүүд', - 'Videos' => 'Бичлэгнүүд', - 'Music' => 'Дуунууд', - 'New_Folder' => 'Шинэ хавтас', - 'Folder_Created' => 'Хавтас амжилттай үүслээ', - 'Existing_Folder' => 'Давхардсан хавтас', - 'Confirm_Folder_del' => 'Хавтас болон доторх бүх файлуудыг устгахдаа итгэлтэй байна уу?', - 'Return_Files_List' => 'Файлын жагсаалт руу буцах', - 'Preview' => 'Урьдчилан харах', - 'Download' => 'Татаж авах', - 'Insert_Folder_Name' => 'Хавтасны нэрийг оруулна уу:', - 'Root' => 'root', - 'Rename' => 'Нэрлэх', - 'Back' => 'буцах', - 'View' => 'Үзэх', - 'View_list' => 'Жагсаалтаар харах', - 'View_columns_list' => 'Баганаар харах', - 'View_boxes' => 'Хайрцгаар харах', - 'Toolbar' => 'Товчилсон товчнууд', - 'Actions' => 'Үйлдэл', - 'Rename_existing_file' => 'Файл аль хэдийнэ үүссэн байна', - 'Rename_existing_folder' => 'Хавтас аль хэдийнэ үүсэн байна', - 'Empty_name' => 'Нэр хоосон байна', - 'Text_filter' => 'текстэн шүүлтүүр', - 'Swipe_help' => 'Файл/Хавтасны нэрийг товшоод тохиргоог харна уу', - 'Upload_base' => 'Энгийнээр хуулах', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA-гаар хуулах (их хэмжээтэй файл)', - 'Upload_java_help' => "Хэрэв Java Applet уншихгүй бол 1. Java суусан эсэхийг шалгана уу, үгүй бол [эндээс татаж авна уу] 2. Галт хана дээр хаалт хийсэн эсэхийг шалгана уу", - 'Upload_base_help' => "Хуулах хэсэг дээр файлыг зөөж тавих болон дээр нь дарж хуулж болно (орчин үеийн хөтөч дээр). Хуулж дууссан бол 'Файлын жагсаалт руу буцах' товчин дээр дарна уу.", - 'Type_dir' => 'dir', - 'Type' => 'Төрөл', - 'Dimension' => 'Харьцаа', - 'Size' => 'Хэмжээ', - 'Date' => 'Огноо', - 'Filename' => 'Файлын нэр', - 'Operations' => 'Үйлдэлүүд', - 'Date_type' => 'y-m-d', - 'OK' => 'ОК', - 'Cancel' => 'Буцах', - 'Sorting' => 'эрэмбэлэх', - 'Show_url' => 'URL-г харах', - 'Extract' => 'энд задла', - 'File_info' => 'файлын мэдээлэл', - 'Edit_image' => 'зураг засварлах', - 'Duplicate' => 'Давхардуулах', - 'Folders' => 'Folders', - 'Copy' => 'Copy', - 'Cut' => 'Cut', - 'Paste' => 'Paste', - 'CB' => 'CB', // clipboard - 'Paste_Here' => 'Paste to this directory', - 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', - 'Paste_Failed' => 'Failed to paste file(s)', - 'Clear_Clipboard' => 'Clear clipboard', - 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', - 'Files_ON_Clipboard' => 'There are files on the clipboard.', - 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Could not save image', - 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', - 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', - 'Dir_No_Write' => 'The directory you selected is not writable.', - 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy - 'File_Permission' => 'File permission', - 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders - 'File_Permission_Recursive' => 'Apply recursively?', - 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", - 'User' => 'User', - 'Group' => 'Group', - 'Yes' => 'Yes', - 'No' => 'No', - 'Lang_Not_Found' => 'Could not find language.', - 'Lang_Change' => 'Change the language', - 'File_Not_Found' => 'Could not find the file.', - 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit - 'Edit' => 'Edit', - 'Edit_File' => "Edit file's content", - 'File_Save_OK' => "File successfully saved.", - 'File_Save_Error' => "There was an error while saving the file.", - 'New_File' => 'New File', - 'No_Extension' => 'You have to add a file extension.', - 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Сонгох', + 'Erase' => 'Устгах', + 'Open' => 'Нээх', + 'Confirm_del' => 'Та энэ файлыг устгахдаа итгэлтэй байна уу?', + 'All' => 'Бүгд', + 'Files' => 'Файлууд', + 'Images' => 'Зурагнууд', + 'Archives' => 'Архивлагдсан файлууд', + 'Error_Upload' => 'Хуулсан файл зөвшөөрөгдөх хэмжээнээс их байна.', + 'Error_extension' => 'Файлын өргөтгөх зөвшөөрөгдөөгүй.', + 'Upload_file' => 'Хуулах', + 'Filters' => 'Шүүлтүүрүүд', + 'Videos' => 'Бичлэгнүүд', + 'Music' => 'Дуунууд', + 'New_Folder' => 'Шинэ хавтас', + 'Folder_Created' => 'Хавтас амжилттай үүслээ', + 'Existing_Folder' => 'Давхардсан хавтас', + 'Confirm_Folder_del' => 'Хавтас болон доторх бүх файлуудыг устгахдаа итгэлтэй байна уу?', + 'Return_Files_List' => 'Файлын жагсаалт руу буцах', + 'Preview' => 'Урьдчилан харах', + 'Download' => 'Татаж авах', + 'Insert_Folder_Name' => 'Хавтасны нэрийг оруулна уу:', + 'Root' => 'root', + 'Rename' => 'Нэрлэх', + 'Back' => 'буцах', + 'View' => 'Үзэх', + 'View_list' => 'Жагсаалтаар харах', + 'View_columns_list' => 'Баганаар харах', + 'View_boxes' => 'Хайрцгаар харах', + 'Toolbar' => 'Товчилсон товчнууд', + 'Actions' => 'Үйлдэл', + 'Rename_existing_file' => 'Файл аль хэдийнэ үүссэн байна', + 'Rename_existing_folder' => 'Хавтас аль хэдийнэ үүсэн байна', + 'Empty_name' => 'Нэр хоосон байна', + 'Text_filter' => 'текстэн шүүлтүүр', + 'Swipe_help' => 'Файл/Хавтасны нэрийг товшоод тохиргоог харна уу', + 'Upload_base' => 'Энгийнээр хуулах', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA-гаар хуулах (их хэмжээтэй файл)', + 'Upload_java_help' => "Хэрэв Java Applet уншихгүй бол 1. Java суусан эсэхийг шалгана уу, үгүй бол [эндээс татаж авна уу] 2. Галт хана дээр хаалт хийсэн эсэхийг шалгана уу", + 'Upload_base_help' => "Хуулах хэсэг дээр файлыг зөөж тавих болон дээр нь дарж хуулж болно (орчин үеийн хөтөч дээр). Хуулж дууссан бол 'Файлын жагсаалт руу буцах' товчин дээр дарна уу.", + 'Type_dir' => 'dir', + 'Type' => 'Төрөл', + 'Dimension' => 'Харьцаа', + 'Size' => 'Хэмжээ', + 'Date' => 'Огноо', + 'Filename' => 'Файлын нэр', + 'Operations' => 'Үйлдэлүүд', + 'Date_type' => 'y-m-d', + 'OK' => 'ОК', + 'Cancel' => 'Буцах', + 'Sorting' => 'эрэмбэлэх', + 'Show_url' => 'URL-г харах', + 'Extract' => 'энд задла', + 'File_info' => 'файлын мэдээлэл', + 'Edit_image' => 'зураг засварлах', + 'Duplicate' => 'Давхардуулах', + 'Folders' => 'Folders', + 'Copy' => 'Copy', + 'Cut' => 'Cut', + 'Paste' => 'Paste', + 'CB' => 'CB', // clipboard + 'Paste_Here' => 'Paste to this directory', + 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', + 'Paste_Failed' => 'Failed to paste file(s)', + 'Clear_Clipboard' => 'Clear clipboard', + 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', + 'Files_ON_Clipboard' => 'There are files on the clipboard.', + 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Could not save image', + 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', + 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', + 'Dir_No_Write' => 'The directory you selected is not writable.', + 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy + 'File_Permission' => 'File permission', + 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders + 'File_Permission_Recursive' => 'Apply recursively?', + 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", + 'User' => 'User', + 'Group' => 'Group', + 'Yes' => 'Yes', + 'No' => 'No', + 'Lang_Not_Found' => 'Could not find language.', + 'Lang_Change' => 'Change the language', + 'File_Not_Found' => 'Could not find the file.', + 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit + 'Edit' => 'Edit', + 'Edit_File' => "Edit file's content", + 'File_Save_OK' => "File successfully saved.", + 'File_Save_Error' => "There was an error while saving the file.", + 'New_File' => 'New File', + 'No_Extension' => 'You have to add a file extension.', + 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php index 9bd4c450..e8fedef3 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/pt_BR.php @@ -1,123 +1,123 @@ - 'Selecionar', - 'Erase' => 'Apagar', - 'Open' => 'Abrir', - 'Confirm_del' => 'Tem certeza que quer deletar este arquivo?', - 'All' => 'Todos', - 'Files' => 'Arquivos', - 'Images' => 'Imagens', - 'Archives' => 'Compactados', - 'Error_Upload' => 'O arquivo enviado é maior que o limite permitido.', - 'Error_extension' => 'Extensão não permitida.', - 'Upload_file' => 'Enviar um arquivo', - 'Filters' => 'Filtro', - 'Videos' => 'Vídeos', - 'Music' => 'Musica', - 'New_Folder' => 'Nova pasta', - 'Folder_Created' => 'Pasta criada corretamente', - 'Existing_Folder' => 'Pasta existente', - 'Confirm_Folder_del' => 'Tem certeza que você quer deletar a pasta e todo o seu conteúdo?', - 'Return_Files_List' => 'Voltar à lista de arquivos', - 'Preview' => 'Prévia', - 'Download' => 'Baixar', - 'Insert_Folder_Name' => 'Insira o nome da pasta:', - 'Root' => 'root', - 'Rename' => 'Mudar o nome', - 'Back' => 'de volta', - 'View' => 'Modo de Visualização', - 'View_list' => 'Lista', - 'View_columns_list' => 'Lista de Colunas', - 'View_boxes' => 'Box', - 'Toolbar' => 'Toolbar', - 'Actions' => 'Ações', - 'Rename_existing_file' => 'O arquivo já existe!', - 'Rename_existing_folder' => 'A pasta já existe!', - 'Empty_name' => 'O nome está vazio!', - 'Text_filter' => 'Filtrar', - 'Swipe_help' => 'Passe o nome do arquivo/pasta para ver as opções', - 'Upload_base' => 'Base upload', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA upload (Arquivos grandes)', - 'Upload_java_help' => "Se o Java Applet não carregar: 1. Certifique-se de ter o Java instalado de outra forma [download link] 2. Certifique-se que nada é impedido pelo firewall", - 'Upload_base_help' => "Arraste e Solta os arquivos dentro área acima ou clique nele (para navegadores modernos), caso contrário, selecione o arquivo e clique no botão. Quando terminar o upload, clique no botão de retorno superior.", - 'Type_dir' => 'dir', - 'Type' => 'Tipo', - 'Dimension' => 'Dimensão', - 'Size' => 'Tamanho', - 'Date' => 'Data', - 'Filename' => 'Nome', - 'Operations' => 'Operações', - 'Date_type' => 'd/m/Y', - 'OK' => 'OK', - 'Cancel' => 'Cancelar', - 'Sorting' => 'Ordenar', - 'Show_url' => 'Mostrar URL', - 'Extract' => 'Extrair aqui', - 'File_info' => 'Informação do Arquivo', - 'Edit_image' => 'Editar a imagem', - 'Duplicate' => 'Duplicar', - 'Folders' => 'Pastas', - 'Copy' => 'Copiar', - 'Cut' => 'Recortar', - 'Paste' => 'Colar', - 'CB' => 'Área de Transferência', // clipboard - 'Paste_Here' => 'Copiar para este diretório', - 'Paste_Confirm' => 'Você tem certeza quer copiar para este diretório? Isso sobrescreverá pastas/arquivos existentes se encontrar alguma coisa.', - 'Paste_Failed' => 'Não foi possível colar o(s) arquivo(s)', - 'Clear_Clipboard' => 'Limpar área de transferência', - 'Clear_Clipboard_Confirm' => 'Tem certeza de que deseja limpar a área de transferência?', - 'Files_ON_Clipboard' => 'Há arquivos na área de transferência.', - 'Copy_Cut_Size_Limit' => 'Os arquivos/pastas selecionados são grandes demais para %s. Limite: %d MB/operação', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Você selecionou muitos arquivos/pastas para %s. Limite: %d arquivos/operação', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'Você não tem permissão para %s arquivos.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Não foi possível salvar a imagem', - 'Zip_No_Extract' => 'Não foi possível extrair. Arquivo pode estar corrompido.', - 'Zip_Invalid' => 'Esta extensão não é suportada. Válidos: zip, gz, tar.', - 'Dir_No_Write' => 'O diretório selecionado não é gravável.', - 'Function_Disabled' => 'A função %s foi desativado pelo servidor.', // %s = cut or copy - 'File_Permission' => 'Permissão arquivo', - 'File_Permission_Not_Allowed' => 'Mudanças de permissões de %s não são permitidos.', // %s = files or folders - 'File_Permission_Recursive' => 'Aplicar recursivamente?', - 'File_Permission_Wrong_Mode' => "O modo de permissão fornecido está incorreto.", - 'User' => 'Usuário', - 'Group' => 'Grupo', - 'Yes' => 'Sim', - 'No' => 'Não', - 'Lang_Not_Found' => 'Não foi possível encontrar uma linguagem.', - 'Lang_Change' => 'Alterar o idioma', - 'File_Not_Found' => 'Não foi possível encontrar o arquivo.', - 'File_Open_Edit_Not_Allowed' => 'Você não tem permissão para %s este arquivo.', // %s = open or edit - 'Edit' => 'Editar', - 'Edit_File' => "Editar conteúdo do arquivo", - 'File_Save_OK' => "Arquivo salvo com sucesso.", - 'File_Save_Error' => "Houve um erro ao salvar o arquivo.", - 'New_File' => 'Novo Arquivo', - 'No_Extension' => 'Você tem que adicionar uma extensão de arquivo.', - 'Valid_Extensions' => 'Extensões válidas: %s', // %s = txt,log etc. - 'Upload_message' => "Arraste arquivo aqui para enviar", - - 'SERVER ERROR' => "ERRO SERVIDOR", - 'forbiden' => "proibido", - 'wrong path' => "caminho errado", - 'wrong name' => "nome errado", - 'wrong extension' => "extensão errada", - 'wrong option' => "opção errada", - 'wrong data' => "dados errados", - 'wrong action' => "ação errada", - 'wrong sub-action' => "sub-ação errada", - 'no action passed' => "nenhuma ação passada", - 'no path' => "nenhum caminho", - 'no file' => "nenhum arquivo", - 'view type number missing' => "Ver tipo de número faltando", - 'Not enought Memory' => "Memória insuficiente", - 'max_size_reached' => "Sua pasta de imagens atingiu seu tamanho máximo de %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Tamanho total", -); + 'Selecionar', + 'Erase' => 'Apagar', + 'Open' => 'Abrir', + 'Confirm_del' => 'Tem certeza que quer deletar este arquivo?', + 'All' => 'Todos', + 'Files' => 'Arquivos', + 'Images' => 'Imagens', + 'Archives' => 'Compactados', + 'Error_Upload' => 'O arquivo enviado é maior que o limite permitido.', + 'Error_extension' => 'Extensão não permitida.', + 'Upload_file' => 'Enviar um arquivo', + 'Filters' => 'Filtro', + 'Videos' => 'Vídeos', + 'Music' => 'Musica', + 'New_Folder' => 'Nova pasta', + 'Folder_Created' => 'Pasta criada corretamente', + 'Existing_Folder' => 'Pasta existente', + 'Confirm_Folder_del' => 'Tem certeza que você quer deletar a pasta e todo o seu conteúdo?', + 'Return_Files_List' => 'Voltar à lista de arquivos', + 'Preview' => 'Prévia', + 'Download' => 'Baixar', + 'Insert_Folder_Name' => 'Insira o nome da pasta:', + 'Root' => 'root', + 'Rename' => 'Mudar o nome', + 'Back' => 'de volta', + 'View' => 'Modo de Visualização', + 'View_list' => 'Lista', + 'View_columns_list' => 'Lista de Colunas', + 'View_boxes' => 'Box', + 'Toolbar' => 'Toolbar', + 'Actions' => 'Ações', + 'Rename_existing_file' => 'O arquivo já existe!', + 'Rename_existing_folder' => 'A pasta já existe!', + 'Empty_name' => 'O nome está vazio!', + 'Text_filter' => 'Filtrar', + 'Swipe_help' => 'Passe o nome do arquivo/pasta para ver as opções', + 'Upload_base' => 'Base upload', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA upload (Arquivos grandes)', + 'Upload_java_help' => "Se o Java Applet não carregar: 1. Certifique-se de ter o Java instalado de outra forma [download link] 2. Certifique-se que nada é impedido pelo firewall", + 'Upload_base_help' => "Arraste e Solta os arquivos dentro área acima ou clique nele (para navegadores modernos), caso contrário, selecione o arquivo e clique no botão. Quando terminar o upload, clique no botão de retorno superior.", + 'Type_dir' => 'dir', + 'Type' => 'Tipo', + 'Dimension' => 'Dimensão', + 'Size' => 'Tamanho', + 'Date' => 'Data', + 'Filename' => 'Nome', + 'Operations' => 'Operações', + 'Date_type' => 'd/m/Y', + 'OK' => 'OK', + 'Cancel' => 'Cancelar', + 'Sorting' => 'Ordenar', + 'Show_url' => 'Mostrar URL', + 'Extract' => 'Extrair aqui', + 'File_info' => 'Informação do Arquivo', + 'Edit_image' => 'Editar a imagem', + 'Duplicate' => 'Duplicar', + 'Folders' => 'Pastas', + 'Copy' => 'Copiar', + 'Cut' => 'Recortar', + 'Paste' => 'Colar', + 'CB' => 'Área de Transferência', // clipboard + 'Paste_Here' => 'Copiar para este diretório', + 'Paste_Confirm' => 'Você tem certeza quer copiar para este diretório? Isso sobrescreverá pastas/arquivos existentes se encontrar alguma coisa.', + 'Paste_Failed' => 'Não foi possível colar o(s) arquivo(s)', + 'Clear_Clipboard' => 'Limpar área de transferência', + 'Clear_Clipboard_Confirm' => 'Tem certeza de que deseja limpar a área de transferência?', + 'Files_ON_Clipboard' => 'Há arquivos na área de transferência.', + 'Copy_Cut_Size_Limit' => 'Os arquivos/pastas selecionados são grandes demais para %s. Limite: %d MB/operação', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Você selecionou muitos arquivos/pastas para %s. Limite: %d arquivos/operação', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'Você não tem permissão para %s arquivos.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Não foi possível salvar a imagem', + 'Zip_No_Extract' => 'Não foi possível extrair. Arquivo pode estar corrompido.', + 'Zip_Invalid' => 'Esta extensão não é suportada. Válidos: zip, gz, tar.', + 'Dir_No_Write' => 'O diretório selecionado não é gravável.', + 'Function_Disabled' => 'A função %s foi desativado pelo servidor.', // %s = cut or copy + 'File_Permission' => 'Permissão arquivo', + 'File_Permission_Not_Allowed' => 'Mudanças de permissões de %s não são permitidos.', // %s = files or folders + 'File_Permission_Recursive' => 'Aplicar recursivamente?', + 'File_Permission_Wrong_Mode' => "O modo de permissão fornecido está incorreto.", + 'User' => 'Usuário', + 'Group' => 'Grupo', + 'Yes' => 'Sim', + 'No' => 'Não', + 'Lang_Not_Found' => 'Não foi possível encontrar uma linguagem.', + 'Lang_Change' => 'Alterar o idioma', + 'File_Not_Found' => 'Não foi possível encontrar o arquivo.', + 'File_Open_Edit_Not_Allowed' => 'Você não tem permissão para %s este arquivo.', // %s = open or edit + 'Edit' => 'Editar', + 'Edit_File' => "Editar conteúdo do arquivo", + 'File_Save_OK' => "Arquivo salvo com sucesso.", + 'File_Save_Error' => "Houve um erro ao salvar o arquivo.", + 'New_File' => 'Novo Arquivo', + 'No_Extension' => 'Você tem que adicionar uma extensão de arquivo.', + 'Valid_Extensions' => 'Extensões válidas: %s', // %s = txt,log etc. + 'Upload_message' => "Arraste arquivo aqui para enviar", + + 'SERVER ERROR' => "ERRO SERVIDOR", + 'forbiden' => "proibido", + 'wrong path' => "caminho errado", + 'wrong name' => "nome errado", + 'wrong extension' => "extensão errada", + 'wrong option' => "opção errada", + 'wrong data' => "dados errados", + 'wrong action' => "ação errada", + 'wrong sub-action' => "sub-ação errada", + 'no action passed' => "nenhuma ação passada", + 'no path' => "nenhum caminho", + 'no file' => "nenhum arquivo", + 'view type number missing' => "Ver tipo de número faltando", + 'Not enought Memory' => "Memória insuficiente", + 'max_size_reached' => "Sua pasta de imagens atingiu seu tamanho máximo de %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Tamanho total", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php index 0ee705f6..a5a472e2 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/ru.php @@ -1,122 +1,122 @@ - 'Выбрать', - 'Erase' => 'Удалить', - 'Open' => 'Открыть', - 'Confirm_del' => 'Вы уверены, что хотите удалить этот файл?', - 'All' => 'Очистить фильтр', - 'Files' => 'Файлы', - 'Images' => 'Изображения', - 'Archives' => 'Архивы', - 'Error_Upload' => 'Загружаемый файл превышает допустимый размер.', - 'Error_extension' => 'Недопустимый формат файла.', - 'Upload_file' => 'Загрузить файл', - 'Filters' => 'Фильтр', - 'Videos' => 'Видео', - 'Music' => 'Музыка', - 'New_Folder' => 'Новая папка', - 'Folder_Created' => 'Папка успешно создана', - 'Existing_Folder' => 'Существующая папка', - 'Confirm_Folder_del' => 'Вы уверены, что хотите удалить эту папку и все файлы в ней?', - 'Return_Files_List' => 'Вернуться к списку файлов', - 'Preview' => 'Просмотр', - 'Download' => 'Загрузить', - 'Insert_Folder_Name' => 'Введите имя папки:', - 'Root' => 'Корневая папка', - 'Rename' => 'Переименовать', - 'Back' => 'Назад', - 'View' => 'Вид', - 'View_list' => 'Список', - 'View_columns_list' => 'Столбцы', - 'View_boxes' => 'Плитка', - 'Toolbar' => 'Панель', - 'Actions' => 'Действия', - 'Rename_existing_file' => 'Файл уже существует', - 'Rename_existing_folder' => 'Папка уже существует', - 'Empty_name' => 'Не заполнено имя', - 'Text_filter' => 'фильтр', - 'Swipe_help' => 'Наведите на имя файла/папки, чтобы увидеть опции', - 'Upload_base' => 'Основная загрузка', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA загрузка (для файлов больших размеров)', - 'Upload_java_help' => "Если Java-апплет не загружается: 1. Убедитесь, что установлена Java, в противном случае [скачайте] 2. Убедитесь, что фаервол ничего не блокирует", - 'Upload_base_help' => "Перетащите файлы в область выше или щелкните по ней мышкой (для современных браузеров) и выберите файл(ы). После завершения загрузки нажмите кнопку «Вернуться к списку файлов».", - 'Type_dir' => 'папка', - 'Type' => 'Тип', - 'Dimension' => 'Разрешение', - 'Size' => 'Размер', - 'Date' => 'Дата', - 'Filename' => 'Имя файла', - 'Operations' => 'Действие', - 'Date_type' => 'd-m-Y', - 'OK' => 'OK', - 'Cancel' => 'Отмена', - 'Sorting' => 'Сортировка', - 'Show_url' => 'Показать URL', - 'Extract' => 'Распаковать здесь', - 'File_info' => 'Свойства файла', - 'Edit_image' => 'Редактировать', - 'Duplicate' => 'Создать копию', - 'Folders' => 'Папки', - 'Copy' => 'Копировать', - 'Cut' => 'Вырезать', - 'Paste' => 'Вставить', - 'CB' => 'Буфер обмена', // clipboard - 'Paste_Here' => 'Вставить в текущую папку', - 'Paste_Confirm' => 'Вы хотите вставить в эту папку? При совпадении имён файлы будут перезаписаны', - 'Paste_Failed' => 'Не удалось вставить файл(ы).', - 'Clear_Clipboard' => 'Очистить буфер обмена', - 'Clear_Clipboard_Confirm' => 'Очистить буфер обмена?', - 'Files_ON_Clipboard' => 'Есть файлы в буфере обмена.', - 'Copy_Cut_Size_Limit' => 'Выбранные файлы/папки слишком большие для %s. Ограничение: %d Мб за одну операцию', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Выбрано слишком много файлов/папок для %s. Ограничение: %d файлов за одну операцию', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'Вы не можете %s файлы.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Невозможно сохранить изображение.', - 'Zip_No_Extract' => 'Извлечь невозможно. Возможно файл повреждён.', - 'Zip_Invalid' => 'Это расширение не поддерживается. Разрешённые: zip, gz, tar.', - 'Dir_No_Write' => 'Выбранный каталог недоступен для записи.', - 'Function_Disabled' => 'Функция %s была отключена на сервере.', // %s = cut or copy - 'File_Permission' => 'Разрешения на файл', - 'File_Permission_Not_Allowed' => 'Изменение разрешений %s не допускается.', // %s = files or folders - 'File_Permission_Recursive' => 'Применить рекурсивно?', - 'File_Permission_Wrong_Mode' => "Выбранные режим разрешений некорректен.", - 'User' => 'Пользователь', - 'Group' => 'Группа', - 'Yes' => 'Да', - 'No' => 'Нет', - 'Lang_Not_Found' => 'Невозможно найти язык', - 'Lang_Change' => 'Сменить язык', - 'File_Not_Found' => 'Невозможно найти файл', - 'File_Open_Edit_Not_Allowed' => 'Вы не можете %s этот файл.', // %s = open or edit - 'Edit' => 'Редактировать', - 'Edit_File' => "Редактировать содержимое файла", - 'File_Save_OK' => "Файл успешно сохранён", - 'File_Save_Error' => "Произошла ошибка при сохранении файла", - 'New_File' => 'Новый файл', - 'No_Extension' => 'Необходимо добавить расширение файла', - 'Valid_Extensions' => 'Разрешённые расширения файла: %s', // %s = txt,log etc. - 'Upload_message' => "Перетащите файл сюда, чтобы загрузить", - 'SERVER ERROR' => "СЕРВЕРНАЯ ОШИБКА", - 'forbiden' => "Запрещено", - 'wrong path' => "Неверный путь", - 'wrong name' => "Неверное имя", - 'wrong extension' => "Неверное расширение", - 'wrong option' => "Неверная опция", - 'wrong data' => "Неверные данные", - 'wrong action' => "Неверное действие", - 'wrong sub-action' => "Неверное доп.действие", - 'no action passed' => "Действие не сработало", - 'no path' => "Путь не существует", - 'no file' => "Файл не существует", - 'view type number missing' => "Данный тип отсутствует", - 'Not enought Memory' => "Недостаточно памяти", - 'max_size_reached' => "Папка достигла максимального размера в %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Общий размер", -); + 'Выбрать', + 'Erase' => 'Удалить', + 'Open' => 'Открыть', + 'Confirm_del' => 'Вы уверены, что хотите удалить этот файл?', + 'All' => 'Очистить фильтр', + 'Files' => 'Файлы', + 'Images' => 'Изображения', + 'Archives' => 'Архивы', + 'Error_Upload' => 'Загружаемый файл превышает допустимый размер.', + 'Error_extension' => 'Недопустимый формат файла.', + 'Upload_file' => 'Загрузить файл', + 'Filters' => 'Фильтр', + 'Videos' => 'Видео', + 'Music' => 'Музыка', + 'New_Folder' => 'Новая папка', + 'Folder_Created' => 'Папка успешно создана', + 'Existing_Folder' => 'Существующая папка', + 'Confirm_Folder_del' => 'Вы уверены, что хотите удалить эту папку и все файлы в ней?', + 'Return_Files_List' => 'Вернуться к списку файлов', + 'Preview' => 'Просмотр', + 'Download' => 'Загрузить', + 'Insert_Folder_Name' => 'Введите имя папки:', + 'Root' => 'Корневая папка', + 'Rename' => 'Переименовать', + 'Back' => 'Назад', + 'View' => 'Вид', + 'View_list' => 'Список', + 'View_columns_list' => 'Столбцы', + 'View_boxes' => 'Плитка', + 'Toolbar' => 'Панель', + 'Actions' => 'Действия', + 'Rename_existing_file' => 'Файл уже существует', + 'Rename_existing_folder' => 'Папка уже существует', + 'Empty_name' => 'Не заполнено имя', + 'Text_filter' => 'фильтр', + 'Swipe_help' => 'Наведите на имя файла/папки, чтобы увидеть опции', + 'Upload_base' => 'Основная загрузка', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA загрузка (для файлов больших размеров)', + 'Upload_java_help' => "Если Java-апплет не загружается: 1. Убедитесь, что установлена Java, в противном случае [скачайте] 2. Убедитесь, что фаервол ничего не блокирует", + 'Upload_base_help' => "Перетащите файлы в область выше или щелкните по ней мышкой (для современных браузеров) и выберите файл(ы). После завершения загрузки нажмите кнопку «Вернуться к списку файлов».", + 'Type_dir' => 'папка', + 'Type' => 'Тип', + 'Dimension' => 'Разрешение', + 'Size' => 'Размер', + 'Date' => 'Дата', + 'Filename' => 'Имя файла', + 'Operations' => 'Действие', + 'Date_type' => 'd-m-Y', + 'OK' => 'OK', + 'Cancel' => 'Отмена', + 'Sorting' => 'Сортировка', + 'Show_url' => 'Показать URL', + 'Extract' => 'Распаковать здесь', + 'File_info' => 'Свойства файла', + 'Edit_image' => 'Редактировать', + 'Duplicate' => 'Создать копию', + 'Folders' => 'Папки', + 'Copy' => 'Копировать', + 'Cut' => 'Вырезать', + 'Paste' => 'Вставить', + 'CB' => 'Буфер обмена', // clipboard + 'Paste_Here' => 'Вставить в текущую папку', + 'Paste_Confirm' => 'Вы хотите вставить в эту папку? При совпадении имён файлы будут перезаписаны', + 'Paste_Failed' => 'Не удалось вставить файл(ы).', + 'Clear_Clipboard' => 'Очистить буфер обмена', + 'Clear_Clipboard_Confirm' => 'Очистить буфер обмена?', + 'Files_ON_Clipboard' => 'Есть файлы в буфере обмена.', + 'Copy_Cut_Size_Limit' => 'Выбранные файлы/папки слишком большие для %s. Ограничение: %d Мб за одну операцию', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Выбрано слишком много файлов/папок для %s. Ограничение: %d файлов за одну операцию', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'Вы не можете %s файлы.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Невозможно сохранить изображение.', + 'Zip_No_Extract' => 'Извлечь невозможно. Возможно файл повреждён.', + 'Zip_Invalid' => 'Это расширение не поддерживается. Разрешённые: zip, gz, tar.', + 'Dir_No_Write' => 'Выбранный каталог недоступен для записи.', + 'Function_Disabled' => 'Функция %s была отключена на сервере.', // %s = cut or copy + 'File_Permission' => 'Разрешения на файл', + 'File_Permission_Not_Allowed' => 'Изменение разрешений %s не допускается.', // %s = files or folders + 'File_Permission_Recursive' => 'Применить рекурсивно?', + 'File_Permission_Wrong_Mode' => "Выбранные режим разрешений некорректен.", + 'User' => 'Пользователь', + 'Group' => 'Группа', + 'Yes' => 'Да', + 'No' => 'Нет', + 'Lang_Not_Found' => 'Невозможно найти язык', + 'Lang_Change' => 'Сменить язык', + 'File_Not_Found' => 'Невозможно найти файл', + 'File_Open_Edit_Not_Allowed' => 'Вы не можете %s этот файл.', // %s = open or edit + 'Edit' => 'Редактировать', + 'Edit_File' => "Редактировать содержимое файла", + 'File_Save_OK' => "Файл успешно сохранён", + 'File_Save_Error' => "Произошла ошибка при сохранении файла", + 'New_File' => 'Новый файл', + 'No_Extension' => 'Необходимо добавить расширение файла', + 'Valid_Extensions' => 'Разрешённые расширения файла: %s', // %s = txt,log etc. + 'Upload_message' => "Перетащите файл сюда, чтобы загрузить", + 'SERVER ERROR' => "СЕРВЕРНАЯ ОШИБКА", + 'forbiden' => "Запрещено", + 'wrong path' => "Неверный путь", + 'wrong name' => "Неверное имя", + 'wrong extension' => "Неверное расширение", + 'wrong option' => "Неверная опция", + 'wrong data' => "Неверные данные", + 'wrong action' => "Неверное действие", + 'wrong sub-action' => "Неверное доп.действие", + 'no action passed' => "Действие не сработало", + 'no path' => "Путь не существует", + 'no file' => "Файл не существует", + 'view type number missing' => "Данный тип отсутствует", + 'Not enought Memory' => "Недостаточно памяти", + 'max_size_reached' => "Папка достигла максимального размера в %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Общий размер", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php index f5c98410..ea9b8b4a 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/sl.php @@ -1,123 +1,123 @@ - 'Označi', - 'Erase' => 'Izbriši', - 'Open' => 'Odpri', - 'Confirm_del' => 'Ali res želite izbrisati to datoteko?', - 'All' => 'Vse', - 'Files' => 'Datoteke', - 'Images' => 'Slike', - 'Archives' => 'Arhiv', - 'Error_Upload' => 'Velikost datoteke presega maksimalno dovoljeno velikost.', - 'Error_extension' => 'Izbrana vrsta datoteke ni dovoljena.', - 'Upload_file' => 'Naloži datoteke na strežnik', - 'Filters' => 'Filtri', - 'Videos' => 'Video', - 'Music' => 'Glasba', - 'New_Folder' => 'Nova mapa', - 'Folder_Created' => 'Mapa je bila ustvarjena', - 'Existing_Folder' => 'Obstoječa mapa', - 'Confirm_Folder_del' => 'Ali res želite izbrisati mapo in vso vsebino, ki je v mapi?', - 'Return_Files_List' => 'Nazaj na seznam datotek', - 'Preview' => 'Predogled', - 'Download' => 'Prenesi', - 'Insert_Folder_Name' => 'Vpište ime mape:', - 'Root' => 'Domov', - 'Rename' => 'Preimenuj', - 'Back' => 'Nazaj', - 'View' => 'Prikaz', - 'View_list' => 'Seznam', - 'View_columns_list' => 'Stolpci', - 'View_boxes' => 'Okvirji', - 'Toolbar' => 'Orodna vrstica', - 'Actions' => 'Akcije', - 'Rename_existing_file' => 'Datoteka že obstaja', - 'Rename_existing_folder' => 'Mapa že obstaja', - 'Empty_name' => 'Ime je prazno', - 'Text_filter' => 'išči', - 'Swipe_help' => 'Izmakni ime datoteke/mape za prikaz možnosti', - 'Upload_base' => 'Osnovni način', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA prenos (za velike datoteke)', - 'Upload_java_help' => "Če se Java ne zažene, preverite če imate Javo naloženo (če je nimate jo [naložite]) in preverite da je ne blokira vaš požarni zid.", - 'Upload_base_help' => 'Povlecite in spustite datoteke ali kliknite v okvir (pri sodobnih brskalnikih) in izberite datoteke. Ko bo nalaganje končano, kliknite gumb "Nazaj na seznam datotek".', - 'Type_dir' => 'Mapa', - 'Type' => 'Vrsta', - 'Dimension' => 'Dimenzija', - 'Size' => 'Velikost', - 'Date' => 'Datum', - 'Filename' => 'Ime', - 'Operations' => 'Ukazi', - 'Date_type' => 'd.m.y', - 'OK' => 'Potrdi', - 'Cancel' => 'Prekliči', - 'Sorting' => 'Razvrsti po:', - 'Show_url' => 'Prikaži povezavo', - 'Extract' => 'Razširi sem', - 'File_info' => 'Podatki o datoteki', - 'Edit_image' => 'Uredi sliko', - 'Duplicate' => 'Podvoji', - 'Folders' => 'Folders', - 'Copy' => 'Copy', - 'Cut' => 'Cut', - 'Paste' => 'Paste', - 'CB' => 'CB', // clipboard - 'Paste_Here' => 'Paste to this directory', - 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', - 'Paste_Failed' => 'Failed to paste file(s)', - 'Clear_Clipboard' => 'Clear clipboard', - 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', - 'Files_ON_Clipboard' => 'There are files on the clipboard.', - 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Could not save image', - 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', - 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', - 'Dir_No_Write' => 'The directory you selected is not writable.', - 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy - 'File_Permission' => 'File permission', - 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders - 'File_Permission_Recursive' => 'Apply recursively?', - 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", - 'User' => 'User', - 'Group' => 'Group', - 'Yes' => 'Yes', - 'No' => 'No', - 'Lang_Not_Found' => 'Could not find language.', - 'Lang_Change' => 'Change the language', - 'File_Not_Found' => 'Could not find the file.', - 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit - 'Edit' => 'Edit', - 'Edit_File' => "Edit file's content", - 'File_Save_OK' => "File successfully saved.", - 'File_Save_Error' => "There was an error while saving the file.", - 'New_File' => 'New File', - 'No_Extension' => 'You have to add a file extension.', - 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. - 'Upload_message' => "Drop file here to upload", - - 'SERVER ERROR' => "SERVER ERROR", - 'forbiden' => "Forbiden", - 'wrong path' => "Wrong path", - 'wrong name' => "Wrong name", - 'wrong extension' => "Wrong extension", - 'wrong option' => "Wrong option", - 'wrong data' => "Wrong data", - 'wrong action' => "Wrong action", - 'wrong sub-action' => "Wrong sub-actio", - 'no action passed' => "No action passed", - 'no path' => "No path", - 'no file' => "No file", - 'view type number missing' => "View type number missing", - 'Not enought Memory' => "Not enought Memory", - 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size - 'B' => "B", - 'KB' => "KB", - 'MB' => "MB", - 'GB' => "GB", - 'TB' => "TB", - 'total size' => "Total size", -); + 'Označi', + 'Erase' => 'Izbriši', + 'Open' => 'Odpri', + 'Confirm_del' => 'Ali res želite izbrisati to datoteko?', + 'All' => 'Vse', + 'Files' => 'Datoteke', + 'Images' => 'Slike', + 'Archives' => 'Arhiv', + 'Error_Upload' => 'Velikost datoteke presega maksimalno dovoljeno velikost.', + 'Error_extension' => 'Izbrana vrsta datoteke ni dovoljena.', + 'Upload_file' => 'Naloži datoteke na strežnik', + 'Filters' => 'Filtri', + 'Videos' => 'Video', + 'Music' => 'Glasba', + 'New_Folder' => 'Nova mapa', + 'Folder_Created' => 'Mapa je bila ustvarjena', + 'Existing_Folder' => 'Obstoječa mapa', + 'Confirm_Folder_del' => 'Ali res želite izbrisati mapo in vso vsebino, ki je v mapi?', + 'Return_Files_List' => 'Nazaj na seznam datotek', + 'Preview' => 'Predogled', + 'Download' => 'Prenesi', + 'Insert_Folder_Name' => 'Vpište ime mape:', + 'Root' => 'Domov', + 'Rename' => 'Preimenuj', + 'Back' => 'Nazaj', + 'View' => 'Prikaz', + 'View_list' => 'Seznam', + 'View_columns_list' => 'Stolpci', + 'View_boxes' => 'Okvirji', + 'Toolbar' => 'Orodna vrstica', + 'Actions' => 'Akcije', + 'Rename_existing_file' => 'Datoteka že obstaja', + 'Rename_existing_folder' => 'Mapa že obstaja', + 'Empty_name' => 'Ime je prazno', + 'Text_filter' => 'išči', + 'Swipe_help' => 'Izmakni ime datoteke/mape za prikaz možnosti', + 'Upload_base' => 'Osnovni način', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA prenos (za velike datoteke)', + 'Upload_java_help' => "Če se Java ne zažene, preverite če imate Javo naloženo (če je nimate jo [naložite]) in preverite da je ne blokira vaš požarni zid.", + 'Upload_base_help' => 'Povlecite in spustite datoteke ali kliknite v okvir (pri sodobnih brskalnikih) in izberite datoteke. Ko bo nalaganje končano, kliknite gumb "Nazaj na seznam datotek".', + 'Type_dir' => 'Mapa', + 'Type' => 'Vrsta', + 'Dimension' => 'Dimenzija', + 'Size' => 'Velikost', + 'Date' => 'Datum', + 'Filename' => 'Ime', + 'Operations' => 'Ukazi', + 'Date_type' => 'd.m.y', + 'OK' => 'Potrdi', + 'Cancel' => 'Prekliči', + 'Sorting' => 'Razvrsti po:', + 'Show_url' => 'Prikaži povezavo', + 'Extract' => 'Razširi sem', + 'File_info' => 'Podatki o datoteki', + 'Edit_image' => 'Uredi sliko', + 'Duplicate' => 'Podvoji', + 'Folders' => 'Folders', + 'Copy' => 'Copy', + 'Cut' => 'Cut', + 'Paste' => 'Paste', + 'CB' => 'CB', // clipboard + 'Paste_Here' => 'Paste to this directory', + 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', + 'Paste_Failed' => 'Failed to paste file(s)', + 'Clear_Clipboard' => 'Clear clipboard', + 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', + 'Files_ON_Clipboard' => 'There are files on the clipboard.', + 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Could not save image', + 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', + 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', + 'Dir_No_Write' => 'The directory you selected is not writable.', + 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy + 'File_Permission' => 'File permission', + 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders + 'File_Permission_Recursive' => 'Apply recursively?', + 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", + 'User' => 'User', + 'Group' => 'Group', + 'Yes' => 'Yes', + 'No' => 'No', + 'Lang_Not_Found' => 'Could not find language.', + 'Lang_Change' => 'Change the language', + 'File_Not_Found' => 'Could not find the file.', + 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit + 'Edit' => 'Edit', + 'Edit_File' => "Edit file's content", + 'File_Save_OK' => "File successfully saved.", + 'File_Save_Error' => "There was an error while saving the file.", + 'New_File' => 'New File', + 'No_Extension' => 'You have to add a file extension.', + 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. + 'Upload_message' => "Drop file here to upload", + + 'SERVER ERROR' => "SERVER ERROR", + 'forbiden' => "Forbiden", + 'wrong path' => "Wrong path", + 'wrong name' => "Wrong name", + 'wrong extension' => "Wrong extension", + 'wrong option' => "Wrong option", + 'wrong data' => "Wrong data", + 'wrong action' => "Wrong action", + 'wrong sub-action' => "Wrong sub-actio", + 'no action passed' => "No action passed", + 'no path' => "No path", + 'no file' => "No file", + 'view type number missing' => "View type number missing", + 'Not enought Memory' => "Not enought Memory", + 'max_size_reached' => "Your image folder has reach its maximale size of %d MB.", //%d = max overall size + 'B' => "B", + 'KB' => "KB", + 'MB' => "MB", + 'GB' => "GB", + 'TB' => "TB", + 'total size' => "Total size", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php index 221fdcb7..16a188b9 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/lang/uk_UA.php @@ -1,123 +1,123 @@ - 'Вибрати', - 'Erase' => 'Видалити', - 'Open' => 'Відкрити', - 'Confirm_del' => 'Впевнені, що хочете видалити цей файл?', - 'All' => 'Всі', - 'Files' => 'Файли', - 'Images' => 'Зображення', - 'Archives' => 'Архіви', - 'Error_Upload' => 'Файл, що завантажується перевищує дозволений розмір.', - 'Error_extension' => 'Неприпустимий формат файлу.', - 'Upload_file' => 'Завантажити файл', - 'Filters' => 'Фільтр', - 'Videos' => 'Відео', - 'Music' => 'Музика', - 'New_Folder' => 'Нова тека', - 'Folder_Created' => 'Теку успішно створено', - 'Existing_Folder' => 'Існуюча тека', - 'Confirm_Folder_del' => 'Впевнені, що хочете видалити цю теку і всі файли в ній?', - 'Return_Files_List' => 'Повернутися до списку файлів', - 'Preview' => 'Перегляд', - 'Download' => 'Завантажити', - 'Insert_Folder_Name' => 'Введіть ім`я папки:', - 'Root' => 'Коренева тека', - 'Rename' => 'Переіменувати', - 'Back' => 'назад', - 'View' => 'Вигляд', - 'View_list' => 'Список', - 'View_columns_list' => 'Стовпчики', - 'View_boxes' => 'Плиткою', - 'Toolbar' => 'Панель', - 'Actions' => 'Дії', - 'Rename_existing_file' => 'Файл вже існує', - 'Rename_existing_folder' => 'Тека вже існує', - 'Empty_name' => 'Не заповнено ім`я', - 'Text_filter' => 'фільтр', - 'Swipe_help' => 'Наведіть на ім`я файлу/папки, щоб побачити опції', - 'Upload_base' => 'Основне завантаження', - 'Upload_url' => 'URL', - 'Upload_java' => 'JAVA-завантаження (для файлів великих розмірів)', - 'Upload_java_help' => "Якщо Java-апплет не завантажується: 1. переконайтесь, що Java встановлено на вашому комп`ютері, інакше [завантажте] 2. переконайтесь, що фаєрвол нічого не блокує", - 'Upload_base_help' => "Перетягніть файли в область, що вище або клікніть по ній мишкою (для сучасних браузерів), в іншому разі виберіть файл та натисніть кнопку. Коли завантаження закінчиться - натисніть кнопку повернення.", - 'Type_dir' => 'Тека', - 'Type' => 'Тип', - 'Dimension' => 'Розмір', - 'Size' => 'Об`єм', - 'Date' => 'Дата', - 'Filename' => 'Ім`я файлу', - 'Operations' => 'Дії', - 'Date_type' => 'd-m-y', - 'OK' => 'OK', - 'Cancel' => 'Відміна', - 'Sorting' => 'Сортування', - 'Show_url' => 'Показати URL', - 'Extract' => 'Видобути тут', - 'File_info' => 'Інфо файла', - 'Edit_image' => 'Редагувати зображення', - 'Duplicate' => 'Дублікати', - 'Folders' => 'Папки', - 'Copy' => 'Копіювати', - 'Cut' => 'Вирізати', - 'Paste' => 'Вставити', - 'CB' => 'БО', // clipboard - 'Paste_Here' => 'Вставити в цю теку', - 'Paste_Confirm' => 'Ви впевнені, що хочете вставити в цю теку? Це перезапише всі файли/папки, якщо такі будуть.', - 'Paste_Failed' => 'Помилка вставки файлів', - 'Clear_Clipboard' => 'Очистити буфер обміну', - 'Clear_Clipboard_Confirm' => 'Ви впевнені, що хочете очистити буфер обміну?', - 'Files_ON_Clipboard' => 'Немає файлів у буфері обміну.', - 'Copy_Cut_Size_Limit' => 'Вибрані файли/папки завеликі для %s. Обмеження: %d MB/операцію', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'Ви вибрали забагато файлів/папок для %s. Обмеження: %d файлів/операцію', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'У вас немає прав доступу для %s файлів.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Неможливо зберегти зображення', - 'Zip_No_Extract' => 'Неможливо видобути. Файл може бути пошкодженим', - 'Zip_Invalid' => 'Це розширення не підтримується. Можливі: zip, gz, tar.', - 'Dir_No_Write' => 'Обрана тека захищена від запису.', - 'Function_Disabled' => 'Функція %s заборонена сервером.', // %s = cut or copy - 'File_Permission' => 'Права доступу', - 'File_Permission_Not_Allowed' => 'Зміна прав доступу для %s заборонена.', // %s = files or folders - 'File_Permission_Recursive' => 'Застосувати рекурсивно?', - 'File_Permission_Wrong_Mode' => "Наданы права доступу невірні.", - 'User' => 'Користувач', - 'Group' => 'Група', - 'Yes' => 'Так', - 'No' => 'Ні', - 'Lang_Not_Found' => 'Не можу знайти мову.', - 'Lang_Change' => 'Зміна мови', - 'File_Not_Found' => 'Не можу знайти файл.', - 'File_Open_Edit_Not_Allowed' => 'У вас немає прав для відкриття цього файлу %s.', // %s = open or edit - 'Edit' => 'Редагувати', - 'Edit_File' => "Редагувати вміст файлу", - 'File_Save_OK' => "Файл успішно збережено.", - 'File_Save_Error' => "Виникла помилка при збереженні файлу.", - 'New_File' => 'Новий файл', - 'No_Extension' => 'Вам необхідно додати розширення файлу.', - 'Valid_Extensions' => 'Дозволені розширення: %s', // %s = txt,log etc. - 'Upload_message' => "Перетягніть сюди файл для завантаження", - - 'SERVER ERROR' => "ПОМИЛКА СЕРВЕРА", - 'forbiden' => "Заборонено", - 'wrong path' => "Хибний шлях", - 'wrong name' => "Хибне ім`я", - 'wrong extension' => "Хибне розширення", - 'wrong option' => "Хибна операція", - 'wrong data' => "Хибні дані", - 'wrong action' => "Хибна дія", - 'wrong sub-action' => "Хибна під-дія", - 'no action passed' => "Жодної дії не передано", - 'no path' => "Немає шляху", - 'no file' => "Немає файлу", - 'view type number missing' => "Відсутній номер типу перегляду", - 'Not enought Memory' => "Недостатньо пам`яті", - 'max_size_reached' => "Ваша тека досягла максимального ліміту у %d Мб.", //%d = max overall size - 'B' => "Б", - 'KB' => "Кб", - 'MB' => "Мб", - 'GB' => "Гб", - 'TB' => "Тб", - 'total size' => "Загальний розмір", -); + 'Вибрати', + 'Erase' => 'Видалити', + 'Open' => 'Відкрити', + 'Confirm_del' => 'Впевнені, що хочете видалити цей файл?', + 'All' => 'Всі', + 'Files' => 'Файли', + 'Images' => 'Зображення', + 'Archives' => 'Архіви', + 'Error_Upload' => 'Файл, що завантажується перевищує дозволений розмір.', + 'Error_extension' => 'Неприпустимий формат файлу.', + 'Upload_file' => 'Завантажити файл', + 'Filters' => 'Фільтр', + 'Videos' => 'Відео', + 'Music' => 'Музика', + 'New_Folder' => 'Нова тека', + 'Folder_Created' => 'Теку успішно створено', + 'Existing_Folder' => 'Існуюча тека', + 'Confirm_Folder_del' => 'Впевнені, що хочете видалити цю теку і всі файли в ній?', + 'Return_Files_List' => 'Повернутися до списку файлів', + 'Preview' => 'Перегляд', + 'Download' => 'Завантажити', + 'Insert_Folder_Name' => 'Введіть ім`я папки:', + 'Root' => 'Коренева тека', + 'Rename' => 'Переіменувати', + 'Back' => 'назад', + 'View' => 'Вигляд', + 'View_list' => 'Список', + 'View_columns_list' => 'Стовпчики', + 'View_boxes' => 'Плиткою', + 'Toolbar' => 'Панель', + 'Actions' => 'Дії', + 'Rename_existing_file' => 'Файл вже існує', + 'Rename_existing_folder' => 'Тека вже існує', + 'Empty_name' => 'Не заповнено ім`я', + 'Text_filter' => 'фільтр', + 'Swipe_help' => 'Наведіть на ім`я файлу/папки, щоб побачити опції', + 'Upload_base' => 'Основне завантаження', + 'Upload_url' => 'URL', + 'Upload_java' => 'JAVA-завантаження (для файлів великих розмірів)', + 'Upload_java_help' => "Якщо Java-апплет не завантажується: 1. переконайтесь, що Java встановлено на вашому комп`ютері, інакше [завантажте] 2. переконайтесь, що фаєрвол нічого не блокує", + 'Upload_base_help' => "Перетягніть файли в область, що вище або клікніть по ній мишкою (для сучасних браузерів), в іншому разі виберіть файл та натисніть кнопку. Коли завантаження закінчиться - натисніть кнопку повернення.", + 'Type_dir' => 'Тека', + 'Type' => 'Тип', + 'Dimension' => 'Розмір', + 'Size' => 'Об`єм', + 'Date' => 'Дата', + 'Filename' => 'Ім`я файлу', + 'Operations' => 'Дії', + 'Date_type' => 'd-m-y', + 'OK' => 'OK', + 'Cancel' => 'Відміна', + 'Sorting' => 'Сортування', + 'Show_url' => 'Показати URL', + 'Extract' => 'Видобути тут', + 'File_info' => 'Інфо файла', + 'Edit_image' => 'Редагувати зображення', + 'Duplicate' => 'Дублікати', + 'Folders' => 'Папки', + 'Copy' => 'Копіювати', + 'Cut' => 'Вирізати', + 'Paste' => 'Вставити', + 'CB' => 'БО', // clipboard + 'Paste_Here' => 'Вставити в цю теку', + 'Paste_Confirm' => 'Ви впевнені, що хочете вставити в цю теку? Це перезапише всі файли/папки, якщо такі будуть.', + 'Paste_Failed' => 'Помилка вставки файлів', + 'Clear_Clipboard' => 'Очистити буфер обміну', + 'Clear_Clipboard_Confirm' => 'Ви впевнені, що хочете очистити буфер обміну?', + 'Files_ON_Clipboard' => 'Немає файлів у буфері обміну.', + 'Copy_Cut_Size_Limit' => 'Вибрані файли/папки завеликі для %s. Обмеження: %d MB/операцію', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'Ви вибрали забагато файлів/папок для %s. Обмеження: %d файлів/операцію', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'У вас немає прав доступу для %s файлів.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Неможливо зберегти зображення', + 'Zip_No_Extract' => 'Неможливо видобути. Файл може бути пошкодженим', + 'Zip_Invalid' => 'Це розширення не підтримується. Можливі: zip, gz, tar.', + 'Dir_No_Write' => 'Обрана тека захищена від запису.', + 'Function_Disabled' => 'Функція %s заборонена сервером.', // %s = cut or copy + 'File_Permission' => 'Права доступу', + 'File_Permission_Not_Allowed' => 'Зміна прав доступу для %s заборонена.', // %s = files or folders + 'File_Permission_Recursive' => 'Застосувати рекурсивно?', + 'File_Permission_Wrong_Mode' => "Наданы права доступу невірні.", + 'User' => 'Користувач', + 'Group' => 'Група', + 'Yes' => 'Так', + 'No' => 'Ні', + 'Lang_Not_Found' => 'Не можу знайти мову.', + 'Lang_Change' => 'Зміна мови', + 'File_Not_Found' => 'Не можу знайти файл.', + 'File_Open_Edit_Not_Allowed' => 'У вас немає прав для відкриття цього файлу %s.', // %s = open or edit + 'Edit' => 'Редагувати', + 'Edit_File' => "Редагувати вміст файлу", + 'File_Save_OK' => "Файл успішно збережено.", + 'File_Save_Error' => "Виникла помилка при збереженні файлу.", + 'New_File' => 'Новий файл', + 'No_Extension' => 'Вам необхідно додати розширення файлу.', + 'Valid_Extensions' => 'Дозволені розширення: %s', // %s = txt,log etc. + 'Upload_message' => "Перетягніть сюди файл для завантаження", + + 'SERVER ERROR' => "ПОМИЛКА СЕРВЕРА", + 'forbiden' => "Заборонено", + 'wrong path' => "Хибний шлях", + 'wrong name' => "Хибне ім`я", + 'wrong extension' => "Хибне розширення", + 'wrong option' => "Хибна операція", + 'wrong data' => "Хибні дані", + 'wrong action' => "Хибна дія", + 'wrong sub-action' => "Хибна під-дія", + 'no action passed' => "Жодної дії не передано", + 'no path' => "Немає шляху", + 'no file' => "Немає файлу", + 'view type number missing' => "Відсутній номер типу перегляду", + 'Not enought Memory' => "Недостатньо пам`яті", + 'max_size_reached' => "Ваша тека досягла максимального ліміту у %d Мб.", //%d = max overall size + 'B' => "Б", + 'KB' => "Кб", + 'MB' => "Мб", + 'GB' => "Гб", + 'TB' => "Тб", + 'total size' => "Загальний розмір", +); diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php index aadb9594..146a9829 100755 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/index.php @@ -1,166 +1,166 @@ -We are in the 'handle_uploaded_files' callback function, in the index.php script. To avoid double coding, we " - . "just call the default behavior of the JUpload PHP class. Just replace this by your code...

" - . $juploadPhpSupportClass->defaultAfterUploadManagement();; - -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// - - -//First: the applet parameters -// -// Default value should work nice on most configuration. In this sample, we use some specific parameters, to show -// how to use this array. -// See comment for the parameters used on this demo page. -// -// You can use all applet parameters in this array. -// see all details http://jupload.sourceforge.net/howto-customization.html -// -$appletParameters = array( - //Default value is ... maximum size for a file on the current FS. 2G is problably too much already. - 'maxFileSize' => $JAVAMaxSizeUpload . 'G', - // - //In the sourceforge project structure, the applet jar file is one folder below. Default - //configuration is ok, if wjhk.jupload.jar is in the same folder as the script containing this call. - 'archive' => 'wjhk.jupload.jar', - 'showLogWindow' => 'false', - 'width' => '100%', - 'height' => '358px', - 'name' => 'No limit Uploader', - 'allowedFileExtensions' => implode('/', $ext), - //To manage, other jar files, like the ftp jar files if postURL is an FTP URL: - //'archive' => 'wjhk.jupload.jar,jakarta-commons-oro.jar,jakarta-commons-net.jar', - // - //Default afterUploadURL displays the list of uploaded files above the applet (in the markers, see below) - //You can use any page you want, to manage the uploaded files. Here is a sample, that also only shows the list of files. - 'afterUploadURL' => 'success.php?path=' . $_GET['path'], - // - //This demo expects the md5sum to be sent by the applet. But the parameter is not mandatory - //This value should be set to false (or the line commented), for big files, as md5 calculation - //may be long (Note this must be string and *not* boolean true/false) - 'sendMD5Sum' => 'false', - // - 'debugLevel' => 0 // 100 disables redirect after upload, so we keep it below. This still gives a lot of information, in case of problem. -); - -// for htaccess protected folders -if ((isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] != '') && $_SERVER['PHP_AUTH_USER'] != '' && $_SERVER['PHP_AUTH_USER'] != '') -{ - $appletParameters['specificHeaders'] = 'Authorization: Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ":" . $_SERVER['PHP_AUTH_PW']); -} - -// -//Then: the jupload PHP class parameters -$classParameters = array( - //Files won't be stored on the server. Useful for first tests of the applet behavior ... and sourceforge demo site ! - 'demo_mode' => false, - // - //Allow creation of subdirectories, when uploading several folders/files (drag and drop a folder on the applet to use it). - 'allow_subdirs' => true, - // - // The callbackAfterUploadManagement function will be called, once all files are uploaded, with the list - //of uploaded files as an argument. See the above sample, and change it according to your needs. - //'callbackAfterUploadManagement' => 'handle_uploaded_files', - // - //I work on windows. The default configuration is /var/tmp/jupload_test - 'destdir' => $path //Where to store the files on the web - //'errormail' => 'me@my.domain.org', -); -if ( ! empty($convert_spaces)) -{ - $classParameters['convert_spaces'] = true; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////// -// Instantiate and initialize JUpload : integration of the applet in your web site. -$juploadPhpSupportClass = new JUpload($appletParameters, $classParameters); -//////////////////////////////////////////////////////////////////////////////////////////////////////// - - -//Then, a simple HTML page, for the demo -// -// "" is the tag where the list of uploaded files will be written. -// "" is the place where the applet will be integrated, in the web page. -?> - - - - JUpload RESPONSIVE filemanager - - - -
-
- +We are in the 'handle_uploaded_files' callback function, in the index.php script. To avoid double coding, we " + . "just call the default behavior of the JUpload PHP class. Just replace this by your code...

" + . $juploadPhpSupportClass->defaultAfterUploadManagement();; + +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////// + + +//First: the applet parameters +// +// Default value should work nice on most configuration. In this sample, we use some specific parameters, to show +// how to use this array. +// See comment for the parameters used on this demo page. +// +// You can use all applet parameters in this array. +// see all details http://jupload.sourceforge.net/howto-customization.html +// +$appletParameters = array( + //Default value is ... maximum size for a file on the current FS. 2G is problably too much already. + 'maxFileSize' => $JAVAMaxSizeUpload . 'G', + // + //In the sourceforge project structure, the applet jar file is one folder below. Default + //configuration is ok, if wjhk.jupload.jar is in the same folder as the script containing this call. + 'archive' => 'wjhk.jupload.jar', + 'showLogWindow' => 'false', + 'width' => '100%', + 'height' => '358px', + 'name' => 'No limit Uploader', + 'allowedFileExtensions' => implode('/', $ext), + //To manage, other jar files, like the ftp jar files if postURL is an FTP URL: + //'archive' => 'wjhk.jupload.jar,jakarta-commons-oro.jar,jakarta-commons-net.jar', + // + //Default afterUploadURL displays the list of uploaded files above the applet (in the markers, see below) + //You can use any page you want, to manage the uploaded files. Here is a sample, that also only shows the list of files. + 'afterUploadURL' => 'success.php?path=' . $_GET['path'], + // + //This demo expects the md5sum to be sent by the applet. But the parameter is not mandatory + //This value should be set to false (or the line commented), for big files, as md5 calculation + //may be long (Note this must be string and *not* boolean true/false) + 'sendMD5Sum' => 'false', + // + 'debugLevel' => 0 // 100 disables redirect after upload, so we keep it below. This still gives a lot of information, in case of problem. +); + +// for htaccess protected folders +if ((isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] != '') && $_SERVER['PHP_AUTH_USER'] != '' && $_SERVER['PHP_AUTH_USER'] != '') +{ + $appletParameters['specificHeaders'] = 'Authorization: Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ":" . $_SERVER['PHP_AUTH_PW']); +} + +// +//Then: the jupload PHP class parameters +$classParameters = array( + //Files won't be stored on the server. Useful for first tests of the applet behavior ... and sourceforge demo site ! + 'demo_mode' => false, + // + //Allow creation of subdirectories, when uploading several folders/files (drag and drop a folder on the applet to use it). + 'allow_subdirs' => true, + // + // The callbackAfterUploadManagement function will be called, once all files are uploaded, with the list + //of uploaded files as an argument. See the above sample, and change it according to your needs. + //'callbackAfterUploadManagement' => 'handle_uploaded_files', + // + //I work on windows. The default configuration is /var/tmp/jupload_test + 'destdir' => $path //Where to store the files on the web + //'errormail' => 'me@my.domain.org', +); +if ( ! empty($convert_spaces)) +{ + $classParameters['convert_spaces'] = true; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////// +// Instantiate and initialize JUpload : integration of the applet in your web site. +$juploadPhpSupportClass = new JUpload($appletParameters, $classParameters); +//////////////////////////////////////////////////////////////////////////////////////////////////////// + + +//Then, a simple HTML page, for the demo +// +// "" is the tag where the list of uploaded files will be written. +// "" is the place where the applet will be integrated, in the web page. +?> + + + + JUpload RESPONSIVE filemanager + + + +
+
+ \ No newline at end of file diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php index 5b654209..cbc25822 100755 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/jupload.php @@ -1,772 +1,772 @@ -$value. - * The available keys are: - * - name: the filename, as it is now stored on the system. - * - size: the file size - * - path: the absolute path, where the file has been stored. - * - fullName: the canonical file name (i.e. including the absolute path) - * - md5sum: the md5sum of the file, if further control is needed. - * - mimetype: the calculated mime type of the file - * - If the formData applet parameter is used: all attributes (key and value) uploaded by the applet, are put here, - * repeated for each file. - * - * Note: if you are using a callback function (i.e. callbackAfterUploadManagement) and you do not see a global 'object' you - * are expecting then it might have been destroyed by PHP - c.f. http://bugs.php.net/bug.php?id=39693 - * - */ - -class JUpload { - - var $appletparams; - var $classparams; - var $files; - - public function JUpload($appletparams = array(), $classparams = array()) { - if (gettype($classparams) != 'array') - $this->abort('Invalid type of parameter classparams: Expecting an array'); - if (gettype($appletparams) != 'array') - $this->abort('Invalid type of parameter appletparams: Expecting an array'); - - // set some defaults for the applet params - if (!isset($appletparams['afterUploadURL'])) - $appletparams['afterUploadURL'] = $_SERVER['PHP_SELF'] . '?afterupload=1'; - if (!isset($appletparams['name'])) - $appletparams['name'] = 'JUpload'; - if (!isset($appletparams['archive'])) - $appletparams['archive'] = 'wjhk.jupload.jar'; - if (!isset($appletparams['code'])) - $appletparams['code'] = 'wjhk.jupload2.JUploadApplet'; - if (!isset($appletparams['debugLevel'])) - $appletparams['debugLevel'] = 0; - if (!isset($appletparams['httpUploadParameterType'])) - $appletparams['httpUploadParameterType'] = 'array'; - if (!isset($appletparams['showLogWindow'])) - $appletparams['showLogWindow'] = ($appletparams['debugLevel'] > 0) ? 'true' : 'false'; - if (!isset($appletparams['width'])) - $appletparams['width'] = 640; - if (!isset($appletparams['height'])) - $appletparams['height'] = ($appletparams['showLogWindow'] == 'true') ? 500 : 300; - if (!isset($appletparams['mayscript'])) - $appletparams['mayscript'] = 'true'; - if (!isset($appletparams['scriptable'])) - $appletparams['scriptable'] = 'false'; - //if (!isset($appletparams['stringUploadSuccess'])) - $appletparams['stringUploadSuccess'] = 'SUCCESS'; - //if (!isset($appletparams['stringUploadError'])) - $appletparams['stringUploadError'] = 'ERROR: (.*)'; - $maxpost = $this->tobytes(ini_get('post_max_size')); - $maxmem = $this->tobytes(ini_get('memory_limit')); - $maxfs = $this->tobytes(ini_get('upload_max_filesize')); - $obd = ini_get('open_basedir'); - if (!isset($appletparams['maxChunkSize'])) { - $maxchunk = ($maxpost < $maxmem) ? $maxpost : $maxmem; - $maxchunk = ($maxchunk < $maxfs) ? $maxchunk : $maxfs; - $maxchunk /= 4; - $optchunk = (500000 > $maxchunk) ? $maxchunk : 500000; - $appletparams['maxChunkSize'] = $optchunk; - } - $appletparams['maxChunkSize'] = $this->tobytes($appletparams['maxChunkSize']); - if (!isset($appletparams['maxFileSize'])) - $appletparams['maxFileSize'] = $maxfs; - $appletparams['maxFileSize'] = $this->tobytes($appletparams['maxFileSize']); - if (isset($classparams['errormail'])) { - $appletparams['urlToSendErrorTo'] = $_SERVER["PHP_SELF"] . '?errormail'; - } - - // Same for class parameters - if (!isset($classparams['demo_mode'])) - $classparams['demo_mode'] = false; - if ($classparams['demo_mode']) { - $classparams['create_destdir'] = false; - $classparams['allow_subdirs'] = true; - $classparams['allow_zerosized'] = true; - $classparams['duplicate'] = 'overwrite'; - } - if (!isset($classparams['debug_php'])) // set true to log some messages in PHP log - $classparams['debug_php'] = false; - if (!isset($this->classparams['allowed_mime_types'])) // array of allowed MIME type - $classparams['allowed_mime_types'] = 'all'; - if (!isset($this->classparams['allowed_file_extensions'])) // array of allowed file extensions - $classparams['allowed_file_extensions'] = 'all'; - if (!isset($classparams['verbose_errors'])) // shouldn't display server info on a production site! - $classparams['verbose_errors'] = true; - if (!isset($classparams['session_regenerate'])) - $classparams['session_regenerate'] = false; - if (!isset($classparams['create_destdir'])) - $classparams['create_destdir'] = true; - if (!isset($classparams['allow_subdirs'])) - $classparams['allow_subdirs'] = false; - if (!isset($classparams['spaces_in_subdirs'])) - $classparams['spaces_in_subdirs'] = false; - if (!isset($classparams['convert_spaces'])) // set to true to convert spaces in filenames to _ - $classparams['convert_spaces'] = false; - if (!isset($classparams['allow_zerosized'])) - $classparams['allow_zerosized'] = false; - if (!isset($classparams['duplicate'])) - $classparams['duplicate'] = 'rename'; - if (!isset($classparams['dirperm'])) - $classparams['dirperm'] = 0755; - if (!isset($classparams['fileperm'])) - $classparams['fileperm'] = 0644; - if (!isset($classparams['destdir'])) { - if ($obd != '') - $classparams['destdir'] = $obd; - else - $classparams['destdir'] = '/var/tmp/jupload_test'; - }else{ - $classparams['destdir']=str_replace('~',' ',$classparams['destdir']); - } - if ($classparams['create_destdir']) { - $_umask = umask(0); // override the system mask - @mkdir($classparams['destdir'], $classparams['dirperm']); - umask($_umask); - } - if (!is_dir($classparams['destdir']) && is_writable($classparams['destdir'])) - $this->abort('Destination dir not accessible'); - if (!isset($classparams['tmp_prefix'])) - $classparams['tmp_prefix'] = 'jutmp.'; - if (!isset($classparams['var_prefix'])) - $classparams['var_prefix'] = 'juvar.'; - if (!isset($classparams['jscript_wrapper'])) - $classparams['jscript_wrapper'] = 'JUploadSetProperty'; - if (!isset($classparams['tag_jscript'])) - $classparams['tag_jscript'] = ''; - if (!isset($classparams['tag_applet'])) - $classparams['tag_applet'] = ''; - if (!isset($classparams['tag_flist'])) - $classparams['tag_flist'] = ''; - if (!isset($classparams['http_flist_start'])) - $classparams['http_flist_start'] = - ""; - if (!isset($classparams['http_flist_end'])) - $classparams['http_flist_end'] = "
Filenamefile sizeRelative pathFull namemd5sumSpecific parameters
\n"; - if (!isset($classparams['http_flist_file_before'])) - $classparams['http_flist_file_before'] = ""; - if (!isset($classparams['http_flist_file_between'])) - $classparams['http_flist_file_between'] = ""; - if (!isset($classparams['http_flist_file_after'])) - $classparams['http_flist_file_after'] = "\n"; - - $this->appletparams = $appletparams; - $this->classparams = $classparams; - $this->page_start(); - } - - /** - * Return an array of uploaded files * The array contains: name, size, tmp_name, error, - * relativePath, md5sum, mimetype, fullName, path - */ - public function uploadedfiles() { - return $this->files; - } - - /** - * Log a message on the current output, as a HTML comment. - */ - protected function logDebug($function, $msg, $htmlComment=true) { - $output = "[DEBUG] [$function] $msg"; - if ($htmlComment) { - echo("\r\n"); - } else { - echo("$output\r\n"); - } - } - - /** - * Log a message to the PHP log. - * Declared "protected" so it may be Extended if you require customised logging (e.g. particular log file location). - */ - protected function logPHPDebug($function, $msg) { - if ($this->classparams['debug_php'] === true) { - $output = "[DEBUG] [$function] ".$this->arrayexpand($msg); - error_log($output); - } - } - - private function arrayexpand($array) { - $output = ''; - if (is_array($array)) { - foreach ($array as $key => $value) { - $output .= "\n ".$key.' => '.$this->arrayexpand($value); - } - } else { - $output .= $array; - } - return $output; - } - - - /** - * Convert a value ending in 'G','M' or 'K' to bytes - * - */ - private function tobytes($val) { - $val = trim($val); - $last = fix_strtolower($val{strlen($val)-1}); - switch($last) { - case 'g': - $val *= 1024; - case 'm': - $val *= 1024; - case 'k': - $val *= 1024; - } - return $val; - } - - /** - * Build a string, containing a javascript wrapper function - * for setting applet properties via JavaScript. This is necessary, - * because we use the "modern" method of including the applet (using - * resp. tags) in order to trigger automatic JRE downloading. - * Therefore, in Netscape-like browsers, the applet is accessible via - * the document.embeds[] array while in others, it is accessible via the - * document.applets[] array. - * - * @return A string, containing the necessary wrapper function (named JUploadSetProperty) - */ - private function str_jsinit() { - $N = "\n"; - $name = $this->appletparams['name']; - $ret = ''; - return $ret; - } - - /** - * Build a string, containing the applet tag with all parameters. - * - * @return A string, containing the applet tag - */ - private function str_applet() { - $N = "\n"; - $params = $this->appletparams; - // return the actual applet tag - $ret = ''.$N; - foreach ($params as $key => $val) { - if ($key != 'width' && $key != 'height') - $ret .= ' '.$N; - } - $ret .= ' '.$N; - $ret .= ' $val) - $ret .= ' '.$key.' = "'.$val.'"'.$N; - $ret .= ' pluginspage = "http://java.sun.com/products/plugin/index.html#download">'.$N; - $ret .= ' '.$N; - $ret .= ' Java 1.5 or higher plugin required.'.$N; - $ret .= ' '.$N; - $ret .= ' '.$N; - $ret .= ' '.$N; - $ret .= ''; - return $ret; - } - - private function abort($msg = '') { - $this->cleanup(); - if ($msg != '') - die(str_replace('(.*)',$msg,$this->appletparams['stringUploadError'])."\n"); - exit; - } - - private function warning($msg = '') { - $this->cleanup(); - if ($msg != '') - echo('WARNING: '.$msg."\n"); - echo $this->appletparams['stringUploadSuccess']."\n"; - exit; - } - - private function cleanup() { - // remove all uploaded files of *this* request - if (isset($_FILES)) { - foreach ($_FILES as $key => $val) - @unlink($val['tmp_name']); - } - // remove accumulated file, if any. - @unlink($this->classparams['destdir'].'/'.$this->classparams['tmp_prefix'].session_id()); - @unlink($this->classparams['destdir'].'/'.$this->classparams['tmp_prefix'].'tmp'.session_id()); - // reset session var - $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; - return; - } - - private function mkdirp($path) { - // create subdir (hierary) below destdir; - $dirs = explode('/', $path); - $path = $this->classparams['destdir']; - foreach ($dirs as $dir) { - $path .= '/'.$dir; - if (!file_exists($path)) { // @ does NOT always supress the error! - $_umask = umask(0); // override the system mask - @mkdir($path, $this->classparams['dirperm']); - umask($_umask); - } - } - if (!is_dir($path) && is_writable($path)) - $this->abort('Destination dir not accessible'); - } - - /** - * This method: - * - Replaces some potentially dangerous characters by '_' (in the given name an relative path) - * - Checks if a files of the same name already exists. - * - If no: no problem. - * - If yes, and the duplicate class param is set to rename, the file is renamed. - * - If yes, and the duplicate class param is set to overwrite, the file is not renamed. The existing one will be erased. - * - If yes, and the duplicate class param is set to reject, an error is thrown. - */ - private function dstfinal(&$name, &$subdir) { - $name = preg_replace('![`$\\\\/|]!', '_', $name); - if ($this->classparams['convert_spaces']) { - $name = str_replace(' ', '_', $name); - } - if ($this->classparams['allow_subdirs'] && ($subdir != '')) { - $subdir = trim(preg_replace('!\\\\!','/',$subdir),'/'); - $subdir = preg_replace('![`$|]!', '_', $subdir); - if (!$this->classparams['spaces_in_subdirs']) { - $subdir = str_replace(' ','_',$subdir); - } - // recursively create subdir - if (!$this->classparams['demo_mode']) - $this->mkdirp($subdir); - // append a slash - $subdir .= '/'; - } else { - $subdir = ''; - } - $ret = $this->classparams['destdir'].'/'.$subdir.$name; - if (file_exists($ret)) { - if ($this->classparams['duplicate'] == 'overwrite') { - return $ret; - } - if ($this->classparams['duplicate'] == 'reject') { - $this->abort('A file with the same name already exists'); - } - if ($this->classparams['duplicate'] == 'warning') { - $this->warning("File $name already exists - rejected"); - } - if ($this->classparams['duplicate'] == 'rename') { - $cnt = 1; - $dir = $this->classparams['destdir'].'/'.$subdir; - $ext = strrchr($name, '.'); - if ($ext) { - $nameWithoutExtension = substr($name, 0, strlen($name) - strlen($ext)); - } else { - $ext = ''; - $nameWithoutExtension = $name; - } - - $rtry = $dir.$nameWithoutExtension.'_'.$cnt.$ext; - while (file_exists($rtry)) { - $cnt++; - $rtry = $dir.$nameWithoutExtension.'._'.$cnt.$ext; - } - //We store the result name in the byReference name parameter. - $name = $nameWithoutExtension.'_'.$cnt.$ext; - $ret = $rtry; - } - } - return $ret; - } - - /** - * Example function to process the files uploaded. This one simply displays the files' data. - * - */ - public function defaultAfterUploadManagement() { - $flist = '[defaultAfterUploadManagement] Nb uploaded files is: ' . sizeof($this->files); - $flist = $this->classparams['http_flist_start']; - foreach ($this->files as $f) { - //$f is an array, that contains all info about the uploaded file. - $this->logDebug('defaultAfterUploadManagement', " Reading file ${f['name']}"); - $flist .= $this->classparams['http_flist_file_before']; - $flist .= $f['name']; - $flist .= $this->classparams['http_flist_file_between']; - $flist .= $f['size']; - $flist .= $this->classparams['http_flist_file_between']; - $flist .= $f['relativePath']; - $flist .= $this->classparams['http_flist_file_between']; - $flist .= $f['fullName']; - $flist .= $this->classparams['http_flist_file_between']; - $flist .= $f['md5sum']; - $addBR = false; - foreach ($f as $key=>$value) { - //If it's a specific key, let's display it: - if ($key != 'name' && $key != 'size' && $key != 'relativePath' && $key != 'fullName' && $key != 'md5sum') { - if ($addBR) { - $flist .= "
"; - } else { - // First line. We must add a new 'official' list separator. - $flist .= $this->classparams['http_flist_file_between']; - $addBR = true; - } - $flist .= "$key => $value"; - } - } - $flist .= $this->classparams['http_flist_file_after']; - } - $flist .= $this->classparams['http_flist_end']; - - return $flist; -} - -/** - * Generation of the applet tag, and necessary things around (js content). Insertion of this into the content of the - * page. - * See the tag_jscript and tag_applet class parameters. - */ -private function generateAppletTag($str) { - $this->logDebug('generateAppletTag', 'Entering function'); - $str = preg_replace('/'.$this->classparams['tag_jscript'].'/', $this->str_jsinit(), $str); - return preg_replace('/'.$this->classparams['tag_applet'].'/', $this->str_applet(), $str); -} - -/** - * This function is called when constructing the page, when we're not reveiving uploaded files. It 'just' construct - * the applet tag, by calling the relevant function. - * - * This *must* be public, because it is called from PHP's output buffering - */ -public function interceptBeforeUpload($str) { - $this->logDebug('interceptBeforeUpload', 'Entering function'); - return $this->generateAppletTag($str); -} - -/** - * This function displays the uploaded files description in the current page (see tag_flist class parameter) - * - * This *must* be public, because it is called from PHP's output buffering. - */ -public function interceptAfterUpload($str) { - $this->logDebug('interceptAfterUpload', 'Entering function'); - $this->logPHPDebug('interceptAfterUpload', $this->files); - - if (count($this->files) > 0) { - if (isset($this->classparams['callbackAfterUploadManagement'])) { - $this->logDebug('interceptAfterUpload', 'Before call of ' .$this->classparams['callbackAfterUploadManagement']); - $strForFListContent = call_user_func($this->classparams['callbackAfterUploadManagement'], $this, $this->files); - } else { - $strForFListContent = $this->defaultAfterUploadManagement(); - } - $str = preg_replace('/'.$this->classparams['tag_flist'].'/', $strForFListContent, $str); - } - return $this->generateAppletTag($str); -} - -/** - * This method manages the receiving of the debug log, when an error occurs. - */ -private function receive_debug_log() { - // handle error report - if (isset($_POST['description']) && isset($_POST['log'])) { - $msg = $_POST['log']; - mail($this->classparams['errormail'], $_POST['description'], $msg); - } else { - if (isset($_SERVER['SERVER_ADMIN'])) - mail($_SERVER['SERVER_ADMIN'], 'Empty jupload error log', - 'An empty log has just been posted.'); - $this->logPHPDebug('receive_debug_log', 'Empty error log received'); - } - exit; -} - -/** - * This method is the heart of the system. It manage the files sent by the applet, check the incoming parameters (md5sum) and - * reconstruct the files sent in chunk mode. - * - * The result is stored in the $files array, and can then be managed by the function given in the callbackAfterUploadManagement - * class parameter, or within the page whose URL is given in the afterUploadURL applet parameter. - * Or you can Extend the class and redeclare defaultAfterUploadManagement() to your needs. - */ -private function receive_uploaded_files() { - $this->logDebug('receive_uploaded_files', 'Entering POST management'); - - if (session_id() == '') { - session_start(); - } - // we check for the session *after* handling possible error log - // because an error could have happened because the session-id is missing. - if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'size'])) { - $this->abort('Invalid session (in afterupload, POST, check of size)'); - } - if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'files'])) { - $this->abort('Invalid session (in afterupload, POST, check of files)'); - } - $this->files = $_SESSION['RF'][$this->classparams['var_prefix'].'files']; - if (!is_array($this->files)) { - $this->abort('Invalid session (in afterupload, POST, is_array(files))'); - } - if ($this->appletparams['sendMD5Sum'] == 'true' && !isset($_POST['md5sum'])) { - $this->abort('Required POST variable md5sum is missing'); - } - $cnt = 0; - foreach ($_FILES as $key => $value) { - //Let's read the $_FILES data - if (isset($files_data)) { - unset($files_data); - } - $jupart = (isset($_POST['jupart'])) ? (int)$_POST['jupart'] : 0; - $jufinal = (isset($_POST['jufinal'])) ? (int)$_POST['jufinal'] : 1; - $relpaths = (isset($_POST['relpathinfo'])) ? $_POST['relpathinfo'] : null; - $md5sums = (isset($_POST['md5sum'])) ? $_POST['md5sum'] : null; - $mimetypes = (isset($_POST['mimetype'])) ? $_POST['mimetype'] : null; - //$relpaths = (isset($_POST["relpathinfo$cnt"])) ? $_POST["relpathinfo$cnt"] : null; - //$md5sums = (isset($_POST["md5sum$cnt"])) ? $_POST["md5sum$cnt"] : null; - - if (gettype($relpaths) == 'string') { - $relpaths = array($relpaths); - } - if (gettype($md5sums) == 'string') { - $md5sums = array($md5sums); - } - if ($this->appletparams['sendMD5Sum'] == 'true' && !is_array($md5sums)) { - $this->abort('Expecting an array of MD5 checksums'); - } - if (!is_array($relpaths)) { - $this->abort('Expecting an array of relative paths'); - } - if (!is_array($mimetypes)) { - $this->abort('Expecting an array of MIME types'); - } - // Check the MIME type (note: this is easily forged!) - if (isset($this->classparams['allowed_mime_types']) && is_array($this->classparams['allowed_mime_types'])) { - if (!in_array($mimetypes[$cnt], $this->classparams['allowed_mime_types'])) { - $this->abort('MIME type '.$mimetypes[$cnt].' not allowed'); - } - } - if (isset($this->classparams['allowed_file_extensions']) && is_array($this->classparams['allowed_file_extensions'])) { - $fileExtension = substr(strrchr($value['name'][$cnt], "."), 1); - if (!in_array($fileExtension, $this->classparams['allowed_file_extensions'])) { - $this->abort('File extension '.$fileExtension.' not allowed'); - } - } - - $dstdir = $this->classparams['destdir']; - $dstname = $dstdir.'/'.$this->classparams['tmp_prefix'].session_id(); - $tmpname = $dstdir.'/'.$this->classparams['tmp_prefix'].'tmp'.session_id(); - - // Controls are now done. Let's store the current uploaded files properties in an array, for future use. - $files_data['name'] = $value['name'][$cnt]; - $files_data['size'] = 'not calculated yet'; - $files_data['tmp_name'] = $value['tmp_name'][$cnt]; - $files_data['error'] = $value['error'][$cnt]; - $files_data['relativePath'] = $relpaths[$cnt]; - $files_data['md5sum'] = $md5sums[$cnt]; - $files_data['mimetype'] = $mimetypes[$cnt]; - - if (!move_uploaded_file($files_data['tmp_name'], $tmpname)) { - if ($classparams['verbose_errors']) { - $this->abort("Unable to move uploaded file (from ${files_data['tmp_name']} to $tmpname)"); - } else { - trigger_error("Unable to move uploaded file (from ${files_data['tmp_name']} to $tmpname)",E_USER_WARNING); - $this->abort("Unable to move uploaded file"); - } -} - -// In demo mode, no file storing is done. We just delete the newly uploaded file. -if ($this->classparams['demo_mode']) { - if ($jufinal || (!$jupart)) { - if ($jupart) { - $files_data['size'] = ($jupart-1) * $this->appletparams['maxChunkSize'] + filesize($tmpname); - } else { - $files_data['size'] = filesize($tmpname); - } - $files_data['fullName'] = 'Demo mode
No file storing'; - array_push($this->files, $files_data); - } - unlink($tmpname); - $cnt++; - continue; -} -//If we get here, the upload is a real one (no demo) -if ($jupart) { - // got a chunk of a multi-part upload - $len = filesize($tmpname); - $_SESSION['RF'][$this->classparams['var_prefix'].'size'] += $len; - if ($len > 0) { - $src = fopen($tmpname, 'rb'); - $dst = fopen($dstname, ($jupart == 1) ? 'wb' : 'ab'); - while ($len > 0) { - $rlen = ($len > 8192) ? 8192 : $len; - $buf = fread($src, $rlen); - if (!$buf) { - fclose($src); - fclose($dst); - unlink($dstname); - $this->abort('read IO error'); - } - if (!fwrite($dst, $buf, $rlen)) { - fclose($src); - fclose($dst); - unlink($dstname); - $this->abort('write IO error'); - } - $len -= $rlen; - } - fclose($src); - fclose($dst); - unlink($tmpname); - } - if ($jufinal) { - // This is the last chunk. Check total lenght and - // rename it to it's final name. - $dlen = filesize($dstname); - if ($dlen != $_SESSION['RF'][$this->classparams['var_prefix'].'size']) - $this->abort('file size mismatch'); - if ($this->appletparams['sendMD5Sum'] == 'true' ) { - if ($md5sums[$cnt] != md5_file($dstname)) - $this->abort('MD5 checksum mismatch'); - } - // remove zero sized files - if (($dlen > 0) || $this->classparams['allow_zerosized']) { - $dstfinal = $this->dstfinal($files_data['name'],$files_data['relativePath']); - if (!rename($dstname, $dstfinal)) - $this->abort('rename IO error'); - $_umask = umask(0); // override the system mask - if (!chmod($dstfinal, $this->classparams['fileperm'])) - $this->abort('chmod IO error'); - umask($_umask); - $files_data['size'] = filesize($dstfinal); - $files_data['fullName'] = $dstfinal; - $files_data['path'] = fix_dirname($dstfinal); - array_push($this->files, $files_data); - } else { - unlink($dstname); - } - // reset session var - $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; - } -} else { - // Got a single file upload. Trivial. - if ($this->appletparams['sendMD5Sum'] == 'true' ) { - if ($md5sums[$cnt] != md5_file($tmpname)) - $this->abort('MD5 checksum mismatch'); - } - $dstfinal = $this->dstfinal($files_data['name'],$files_data['relativePath']); - if (!rename($tmpname, $dstfinal)) - $this->abort('rename IO error'); - $_umask = umask(0); // override the system mask - if (!chmod($dstfinal, $this->classparams['fileperm'])) - $this->abort('chmod IO error'); - umask($_umask); - $files_data['size'] = filesize($dstfinal); - $files_data['fullName'] = $dstfinal; - $files_data['path'] = fix_dirname($dstfinal); - array_push($this->files, $files_data); -} -$cnt++; -} - -echo $this->appletparams['stringUploadSuccess']."\n"; -$_SESSION['RF'][$this->classparams['var_prefix'].'files'] = $this->files; -session_write_close(); -exit; -} - -/** - * - * - */ -private function page_start() { - $this->logDebug('page_start', 'Entering function'); - - // If the applet checks for the serverProtocol, it issues a HEAD request - // -> Simply return an empty doc. - if ($_SERVER['REQUEST_METHOD'] == 'HEAD') { - // Nothing to do - - } else if ($_SERVER['REQUEST_METHOD'] == 'GET') { - // A GET request means: return upload page - $this->logDebug('page_start', 'Entering GET management'); - - if (session_id() == '') { - session_start(); - } - if (isset($_GET['afterupload'])) { - $this->logDebug('page_start', 'afterupload is set'); - if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'files'])) { - $this->abort('Invalid session (in afterupload, GET, check of $_SESSION["RF"]): files array is not set'); - } - $this->files = $_SESSION['RF'][$this->classparams['var_prefix'].'files']; - if (!is_array($this->files)) { - $this->abort('Invalid session (in afterupload, GET, check of is_array(files)): files is not an array'); - } - // clear session data ready for new upload - $_SESSION['RF'][$this->classparams['var_prefix'].'files'] = array(); - - // start intercepting the content of the calling page, to display the upload result. - ob_start(array(& $this, 'interceptAfterUpload')); - - } else { - $this->logDebug('page_start', 'afterupload is not set'); - if ($this->classparams['session_regenerate']) { - session_regenerate_id(true); - } - $this->files = array(); - $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; - $_SESSION['RF'][$this->classparams['var_prefix'].'files'] = $this->files; - // start intercepting the content of the calling page, to display the applet tag. - ob_start(array(& $this, 'interceptBeforeUpload')); - } - - } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { - // If we got a POST request, this is the real work. - if (isset($_GET['errormail'])) { - //Hum, an error occurs on server side. Let's manage the debug log, that we just received. - $this->receive_debug_log(); - } else { - $this->receive_uploaded_files(); - } - } -} -} - -// PHP end tag omitted intentionally!! +$value. + * The available keys are: + * - name: the filename, as it is now stored on the system. + * - size: the file size + * - path: the absolute path, where the file has been stored. + * - fullName: the canonical file name (i.e. including the absolute path) + * - md5sum: the md5sum of the file, if further control is needed. + * - mimetype: the calculated mime type of the file + * - If the formData applet parameter is used: all attributes (key and value) uploaded by the applet, are put here, + * repeated for each file. + * + * Note: if you are using a callback function (i.e. callbackAfterUploadManagement) and you do not see a global 'object' you + * are expecting then it might have been destroyed by PHP - c.f. http://bugs.php.net/bug.php?id=39693 + * + */ + +class JUpload { + + var $appletparams; + var $classparams; + var $files; + + public function JUpload($appletparams = array(), $classparams = array()) { + if (gettype($classparams) != 'array') + $this->abort('Invalid type of parameter classparams: Expecting an array'); + if (gettype($appletparams) != 'array') + $this->abort('Invalid type of parameter appletparams: Expecting an array'); + + // set some defaults for the applet params + if (!isset($appletparams['afterUploadURL'])) + $appletparams['afterUploadURL'] = $_SERVER['PHP_SELF'] . '?afterupload=1'; + if (!isset($appletparams['name'])) + $appletparams['name'] = 'JUpload'; + if (!isset($appletparams['archive'])) + $appletparams['archive'] = 'wjhk.jupload.jar'; + if (!isset($appletparams['code'])) + $appletparams['code'] = 'wjhk.jupload2.JUploadApplet'; + if (!isset($appletparams['debugLevel'])) + $appletparams['debugLevel'] = 0; + if (!isset($appletparams['httpUploadParameterType'])) + $appletparams['httpUploadParameterType'] = 'array'; + if (!isset($appletparams['showLogWindow'])) + $appletparams['showLogWindow'] = ($appletparams['debugLevel'] > 0) ? 'true' : 'false'; + if (!isset($appletparams['width'])) + $appletparams['width'] = 640; + if (!isset($appletparams['height'])) + $appletparams['height'] = ($appletparams['showLogWindow'] == 'true') ? 500 : 300; + if (!isset($appletparams['mayscript'])) + $appletparams['mayscript'] = 'true'; + if (!isset($appletparams['scriptable'])) + $appletparams['scriptable'] = 'false'; + //if (!isset($appletparams['stringUploadSuccess'])) + $appletparams['stringUploadSuccess'] = 'SUCCESS'; + //if (!isset($appletparams['stringUploadError'])) + $appletparams['stringUploadError'] = 'ERROR: (.*)'; + $maxpost = $this->tobytes(ini_get('post_max_size')); + $maxmem = $this->tobytes(ini_get('memory_limit')); + $maxfs = $this->tobytes(ini_get('upload_max_filesize')); + $obd = ini_get('open_basedir'); + if (!isset($appletparams['maxChunkSize'])) { + $maxchunk = ($maxpost < $maxmem) ? $maxpost : $maxmem; + $maxchunk = ($maxchunk < $maxfs) ? $maxchunk : $maxfs; + $maxchunk /= 4; + $optchunk = (500000 > $maxchunk) ? $maxchunk : 500000; + $appletparams['maxChunkSize'] = $optchunk; + } + $appletparams['maxChunkSize'] = $this->tobytes($appletparams['maxChunkSize']); + if (!isset($appletparams['maxFileSize'])) + $appletparams['maxFileSize'] = $maxfs; + $appletparams['maxFileSize'] = $this->tobytes($appletparams['maxFileSize']); + if (isset($classparams['errormail'])) { + $appletparams['urlToSendErrorTo'] = $_SERVER["PHP_SELF"] . '?errormail'; + } + + // Same for class parameters + if (!isset($classparams['demo_mode'])) + $classparams['demo_mode'] = false; + if ($classparams['demo_mode']) { + $classparams['create_destdir'] = false; + $classparams['allow_subdirs'] = true; + $classparams['allow_zerosized'] = true; + $classparams['duplicate'] = 'overwrite'; + } + if (!isset($classparams['debug_php'])) // set true to log some messages in PHP log + $classparams['debug_php'] = false; + if (!isset($this->classparams['allowed_mime_types'])) // array of allowed MIME type + $classparams['allowed_mime_types'] = 'all'; + if (!isset($this->classparams['allowed_file_extensions'])) // array of allowed file extensions + $classparams['allowed_file_extensions'] = 'all'; + if (!isset($classparams['verbose_errors'])) // shouldn't display server info on a production site! + $classparams['verbose_errors'] = true; + if (!isset($classparams['session_regenerate'])) + $classparams['session_regenerate'] = false; + if (!isset($classparams['create_destdir'])) + $classparams['create_destdir'] = true; + if (!isset($classparams['allow_subdirs'])) + $classparams['allow_subdirs'] = false; + if (!isset($classparams['spaces_in_subdirs'])) + $classparams['spaces_in_subdirs'] = false; + if (!isset($classparams['convert_spaces'])) // set to true to convert spaces in filenames to _ + $classparams['convert_spaces'] = false; + if (!isset($classparams['allow_zerosized'])) + $classparams['allow_zerosized'] = false; + if (!isset($classparams['duplicate'])) + $classparams['duplicate'] = 'rename'; + if (!isset($classparams['dirperm'])) + $classparams['dirperm'] = 0755; + if (!isset($classparams['fileperm'])) + $classparams['fileperm'] = 0644; + if (!isset($classparams['destdir'])) { + if ($obd != '') + $classparams['destdir'] = $obd; + else + $classparams['destdir'] = '/var/tmp/jupload_test'; + }else{ + $classparams['destdir']=str_replace('~',' ',$classparams['destdir']); + } + if ($classparams['create_destdir']) { + $_umask = umask(0); // override the system mask + @mkdir($classparams['destdir'], $classparams['dirperm']); + umask($_umask); + } + if (!is_dir($classparams['destdir']) && is_writable($classparams['destdir'])) + $this->abort('Destination dir not accessible'); + if (!isset($classparams['tmp_prefix'])) + $classparams['tmp_prefix'] = 'jutmp.'; + if (!isset($classparams['var_prefix'])) + $classparams['var_prefix'] = 'juvar.'; + if (!isset($classparams['jscript_wrapper'])) + $classparams['jscript_wrapper'] = 'JUploadSetProperty'; + if (!isset($classparams['tag_jscript'])) + $classparams['tag_jscript'] = ''; + if (!isset($classparams['tag_applet'])) + $classparams['tag_applet'] = ''; + if (!isset($classparams['tag_flist'])) + $classparams['tag_flist'] = ''; + if (!isset($classparams['http_flist_start'])) + $classparams['http_flist_start'] = + ""; + if (!isset($classparams['http_flist_end'])) + $classparams['http_flist_end'] = "
Filenamefile sizeRelative pathFull namemd5sumSpecific parameters
\n"; + if (!isset($classparams['http_flist_file_before'])) + $classparams['http_flist_file_before'] = ""; + if (!isset($classparams['http_flist_file_between'])) + $classparams['http_flist_file_between'] = ""; + if (!isset($classparams['http_flist_file_after'])) + $classparams['http_flist_file_after'] = "\n"; + + $this->appletparams = $appletparams; + $this->classparams = $classparams; + $this->page_start(); + } + + /** + * Return an array of uploaded files * The array contains: name, size, tmp_name, error, + * relativePath, md5sum, mimetype, fullName, path + */ + public function uploadedfiles() { + return $this->files; + } + + /** + * Log a message on the current output, as a HTML comment. + */ + protected function logDebug($function, $msg, $htmlComment=true) { + $output = "[DEBUG] [$function] $msg"; + if ($htmlComment) { + echo("\r\n"); + } else { + echo("$output\r\n"); + } + } + + /** + * Log a message to the PHP log. + * Declared "protected" so it may be Extended if you require customised logging (e.g. particular log file location). + */ + protected function logPHPDebug($function, $msg) { + if ($this->classparams['debug_php'] === true) { + $output = "[DEBUG] [$function] ".$this->arrayexpand($msg); + error_log($output); + } + } + + private function arrayexpand($array) { + $output = ''; + if (is_array($array)) { + foreach ($array as $key => $value) { + $output .= "\n ".$key.' => '.$this->arrayexpand($value); + } + } else { + $output .= $array; + } + return $output; + } + + + /** + * Convert a value ending in 'G','M' or 'K' to bytes + * + */ + private function tobytes($val) { + $val = trim($val); + $last = fix_strtolower($val{strlen($val)-1}); + switch($last) { + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + case 'k': + $val *= 1024; + } + return $val; + } + + /** + * Build a string, containing a javascript wrapper function + * for setting applet properties via JavaScript. This is necessary, + * because we use the "modern" method of including the applet (using + * resp. tags) in order to trigger automatic JRE downloading. + * Therefore, in Netscape-like browsers, the applet is accessible via + * the document.embeds[] array while in others, it is accessible via the + * document.applets[] array. + * + * @return A string, containing the necessary wrapper function (named JUploadSetProperty) + */ + private function str_jsinit() { + $N = "\n"; + $name = $this->appletparams['name']; + $ret = ''; + return $ret; + } + + /** + * Build a string, containing the applet tag with all parameters. + * + * @return A string, containing the applet tag + */ + private function str_applet() { + $N = "\n"; + $params = $this->appletparams; + // return the actual applet tag + $ret = ''.$N; + foreach ($params as $key => $val) { + if ($key != 'width' && $key != 'height') + $ret .= ' '.$N; + } + $ret .= ' '.$N; + $ret .= ' $val) + $ret .= ' '.$key.' = "'.$val.'"'.$N; + $ret .= ' pluginspage = "http://java.sun.com/products/plugin/index.html#download">'.$N; + $ret .= ' '.$N; + $ret .= ' Java 1.5 or higher plugin required.'.$N; + $ret .= ' '.$N; + $ret .= ' '.$N; + $ret .= ' '.$N; + $ret .= ''; + return $ret; + } + + private function abort($msg = '') { + $this->cleanup(); + if ($msg != '') + die(str_replace('(.*)',$msg,$this->appletparams['stringUploadError'])."\n"); + exit; + } + + private function warning($msg = '') { + $this->cleanup(); + if ($msg != '') + echo('WARNING: '.$msg."\n"); + echo $this->appletparams['stringUploadSuccess']."\n"; + exit; + } + + private function cleanup() { + // remove all uploaded files of *this* request + if (isset($_FILES)) { + foreach ($_FILES as $key => $val) + @unlink($val['tmp_name']); + } + // remove accumulated file, if any. + @unlink($this->classparams['destdir'].'/'.$this->classparams['tmp_prefix'].session_id()); + @unlink($this->classparams['destdir'].'/'.$this->classparams['tmp_prefix'].'tmp'.session_id()); + // reset session var + $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; + return; + } + + private function mkdirp($path) { + // create subdir (hierary) below destdir; + $dirs = explode('/', $path); + $path = $this->classparams['destdir']; + foreach ($dirs as $dir) { + $path .= '/'.$dir; + if (!file_exists($path)) { // @ does NOT always supress the error! + $_umask = umask(0); // override the system mask + @mkdir($path, $this->classparams['dirperm']); + umask($_umask); + } + } + if (!is_dir($path) && is_writable($path)) + $this->abort('Destination dir not accessible'); + } + + /** + * This method: + * - Replaces some potentially dangerous characters by '_' (in the given name an relative path) + * - Checks if a files of the same name already exists. + * - If no: no problem. + * - If yes, and the duplicate class param is set to rename, the file is renamed. + * - If yes, and the duplicate class param is set to overwrite, the file is not renamed. The existing one will be erased. + * - If yes, and the duplicate class param is set to reject, an error is thrown. + */ + private function dstfinal(&$name, &$subdir) { + $name = preg_replace('![`$\\\\/|]!', '_', $name); + if ($this->classparams['convert_spaces']) { + $name = str_replace(' ', '_', $name); + } + if ($this->classparams['allow_subdirs'] && ($subdir != '')) { + $subdir = trim(preg_replace('!\\\\!','/',$subdir),'/'); + $subdir = preg_replace('![`$|]!', '_', $subdir); + if (!$this->classparams['spaces_in_subdirs']) { + $subdir = str_replace(' ','_',$subdir); + } + // recursively create subdir + if (!$this->classparams['demo_mode']) + $this->mkdirp($subdir); + // append a slash + $subdir .= '/'; + } else { + $subdir = ''; + } + $ret = $this->classparams['destdir'].'/'.$subdir.$name; + if (file_exists($ret)) { + if ($this->classparams['duplicate'] == 'overwrite') { + return $ret; + } + if ($this->classparams['duplicate'] == 'reject') { + $this->abort('A file with the same name already exists'); + } + if ($this->classparams['duplicate'] == 'warning') { + $this->warning("File $name already exists - rejected"); + } + if ($this->classparams['duplicate'] == 'rename') { + $cnt = 1; + $dir = $this->classparams['destdir'].'/'.$subdir; + $ext = strrchr($name, '.'); + if ($ext) { + $nameWithoutExtension = substr($name, 0, strlen($name) - strlen($ext)); + } else { + $ext = ''; + $nameWithoutExtension = $name; + } + + $rtry = $dir.$nameWithoutExtension.'_'.$cnt.$ext; + while (file_exists($rtry)) { + $cnt++; + $rtry = $dir.$nameWithoutExtension.'._'.$cnt.$ext; + } + //We store the result name in the byReference name parameter. + $name = $nameWithoutExtension.'_'.$cnt.$ext; + $ret = $rtry; + } + } + return $ret; + } + + /** + * Example function to process the files uploaded. This one simply displays the files' data. + * + */ + public function defaultAfterUploadManagement() { + $flist = '[defaultAfterUploadManagement] Nb uploaded files is: ' . sizeof($this->files); + $flist = $this->classparams['http_flist_start']; + foreach ($this->files as $f) { + //$f is an array, that contains all info about the uploaded file. + $this->logDebug('defaultAfterUploadManagement', " Reading file ${f['name']}"); + $flist .= $this->classparams['http_flist_file_before']; + $flist .= $f['name']; + $flist .= $this->classparams['http_flist_file_between']; + $flist .= $f['size']; + $flist .= $this->classparams['http_flist_file_between']; + $flist .= $f['relativePath']; + $flist .= $this->classparams['http_flist_file_between']; + $flist .= $f['fullName']; + $flist .= $this->classparams['http_flist_file_between']; + $flist .= $f['md5sum']; + $addBR = false; + foreach ($f as $key=>$value) { + //If it's a specific key, let's display it: + if ($key != 'name' && $key != 'size' && $key != 'relativePath' && $key != 'fullName' && $key != 'md5sum') { + if ($addBR) { + $flist .= "
"; + } else { + // First line. We must add a new 'official' list separator. + $flist .= $this->classparams['http_flist_file_between']; + $addBR = true; + } + $flist .= "$key => $value"; + } + } + $flist .= $this->classparams['http_flist_file_after']; + } + $flist .= $this->classparams['http_flist_end']; + + return $flist; +} + +/** + * Generation of the applet tag, and necessary things around (js content). Insertion of this into the content of the + * page. + * See the tag_jscript and tag_applet class parameters. + */ +private function generateAppletTag($str) { + $this->logDebug('generateAppletTag', 'Entering function'); + $str = preg_replace('/'.$this->classparams['tag_jscript'].'/', $this->str_jsinit(), $str); + return preg_replace('/'.$this->classparams['tag_applet'].'/', $this->str_applet(), $str); +} + +/** + * This function is called when constructing the page, when we're not reveiving uploaded files. It 'just' construct + * the applet tag, by calling the relevant function. + * + * This *must* be public, because it is called from PHP's output buffering + */ +public function interceptBeforeUpload($str) { + $this->logDebug('interceptBeforeUpload', 'Entering function'); + return $this->generateAppletTag($str); +} + +/** + * This function displays the uploaded files description in the current page (see tag_flist class parameter) + * + * This *must* be public, because it is called from PHP's output buffering. + */ +public function interceptAfterUpload($str) { + $this->logDebug('interceptAfterUpload', 'Entering function'); + $this->logPHPDebug('interceptAfterUpload', $this->files); + + if (count($this->files) > 0) { + if (isset($this->classparams['callbackAfterUploadManagement'])) { + $this->logDebug('interceptAfterUpload', 'Before call of ' .$this->classparams['callbackAfterUploadManagement']); + $strForFListContent = call_user_func($this->classparams['callbackAfterUploadManagement'], $this, $this->files); + } else { + $strForFListContent = $this->defaultAfterUploadManagement(); + } + $str = preg_replace('/'.$this->classparams['tag_flist'].'/', $strForFListContent, $str); + } + return $this->generateAppletTag($str); +} + +/** + * This method manages the receiving of the debug log, when an error occurs. + */ +private function receive_debug_log() { + // handle error report + if (isset($_POST['description']) && isset($_POST['log'])) { + $msg = $_POST['log']; + mail($this->classparams['errormail'], $_POST['description'], $msg); + } else { + if (isset($_SERVER['SERVER_ADMIN'])) + mail($_SERVER['SERVER_ADMIN'], 'Empty jupload error log', + 'An empty log has just been posted.'); + $this->logPHPDebug('receive_debug_log', 'Empty error log received'); + } + exit; +} + +/** + * This method is the heart of the system. It manage the files sent by the applet, check the incoming parameters (md5sum) and + * reconstruct the files sent in chunk mode. + * + * The result is stored in the $files array, and can then be managed by the function given in the callbackAfterUploadManagement + * class parameter, or within the page whose URL is given in the afterUploadURL applet parameter. + * Or you can Extend the class and redeclare defaultAfterUploadManagement() to your needs. + */ +private function receive_uploaded_files() { + $this->logDebug('receive_uploaded_files', 'Entering POST management'); + + if (session_id() == '') { + session_start(); + } + // we check for the session *after* handling possible error log + // because an error could have happened because the session-id is missing. + if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'size'])) { + $this->abort('Invalid session (in afterupload, POST, check of size)'); + } + if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'files'])) { + $this->abort('Invalid session (in afterupload, POST, check of files)'); + } + $this->files = $_SESSION['RF'][$this->classparams['var_prefix'].'files']; + if (!is_array($this->files)) { + $this->abort('Invalid session (in afterupload, POST, is_array(files))'); + } + if ($this->appletparams['sendMD5Sum'] == 'true' && !isset($_POST['md5sum'])) { + $this->abort('Required POST variable md5sum is missing'); + } + $cnt = 0; + foreach ($_FILES as $key => $value) { + //Let's read the $_FILES data + if (isset($files_data)) { + unset($files_data); + } + $jupart = (isset($_POST['jupart'])) ? (int)$_POST['jupart'] : 0; + $jufinal = (isset($_POST['jufinal'])) ? (int)$_POST['jufinal'] : 1; + $relpaths = (isset($_POST['relpathinfo'])) ? $_POST['relpathinfo'] : null; + $md5sums = (isset($_POST['md5sum'])) ? $_POST['md5sum'] : null; + $mimetypes = (isset($_POST['mimetype'])) ? $_POST['mimetype'] : null; + //$relpaths = (isset($_POST["relpathinfo$cnt"])) ? $_POST["relpathinfo$cnt"] : null; + //$md5sums = (isset($_POST["md5sum$cnt"])) ? $_POST["md5sum$cnt"] : null; + + if (gettype($relpaths) == 'string') { + $relpaths = array($relpaths); + } + if (gettype($md5sums) == 'string') { + $md5sums = array($md5sums); + } + if ($this->appletparams['sendMD5Sum'] == 'true' && !is_array($md5sums)) { + $this->abort('Expecting an array of MD5 checksums'); + } + if (!is_array($relpaths)) { + $this->abort('Expecting an array of relative paths'); + } + if (!is_array($mimetypes)) { + $this->abort('Expecting an array of MIME types'); + } + // Check the MIME type (note: this is easily forged!) + if (isset($this->classparams['allowed_mime_types']) && is_array($this->classparams['allowed_mime_types'])) { + if (!in_array($mimetypes[$cnt], $this->classparams['allowed_mime_types'])) { + $this->abort('MIME type '.$mimetypes[$cnt].' not allowed'); + } + } + if (isset($this->classparams['allowed_file_extensions']) && is_array($this->classparams['allowed_file_extensions'])) { + $fileExtension = substr(strrchr($value['name'][$cnt], "."), 1); + if (!in_array($fileExtension, $this->classparams['allowed_file_extensions'])) { + $this->abort('File extension '.$fileExtension.' not allowed'); + } + } + + $dstdir = $this->classparams['destdir']; + $dstname = $dstdir.'/'.$this->classparams['tmp_prefix'].session_id(); + $tmpname = $dstdir.'/'.$this->classparams['tmp_prefix'].'tmp'.session_id(); + + // Controls are now done. Let's store the current uploaded files properties in an array, for future use. + $files_data['name'] = $value['name'][$cnt]; + $files_data['size'] = 'not calculated yet'; + $files_data['tmp_name'] = $value['tmp_name'][$cnt]; + $files_data['error'] = $value['error'][$cnt]; + $files_data['relativePath'] = $relpaths[$cnt]; + $files_data['md5sum'] = $md5sums[$cnt]; + $files_data['mimetype'] = $mimetypes[$cnt]; + + if (!move_uploaded_file($files_data['tmp_name'], $tmpname)) { + if ($classparams['verbose_errors']) { + $this->abort("Unable to move uploaded file (from ${files_data['tmp_name']} to $tmpname)"); + } else { + trigger_error("Unable to move uploaded file (from ${files_data['tmp_name']} to $tmpname)",E_USER_WARNING); + $this->abort("Unable to move uploaded file"); + } +} + +// In demo mode, no file storing is done. We just delete the newly uploaded file. +if ($this->classparams['demo_mode']) { + if ($jufinal || (!$jupart)) { + if ($jupart) { + $files_data['size'] = ($jupart-1) * $this->appletparams['maxChunkSize'] + filesize($tmpname); + } else { + $files_data['size'] = filesize($tmpname); + } + $files_data['fullName'] = 'Demo mode
No file storing'; + array_push($this->files, $files_data); + } + unlink($tmpname); + $cnt++; + continue; +} +//If we get here, the upload is a real one (no demo) +if ($jupart) { + // got a chunk of a multi-part upload + $len = filesize($tmpname); + $_SESSION['RF'][$this->classparams['var_prefix'].'size'] += $len; + if ($len > 0) { + $src = fopen($tmpname, 'rb'); + $dst = fopen($dstname, ($jupart == 1) ? 'wb' : 'ab'); + while ($len > 0) { + $rlen = ($len > 8192) ? 8192 : $len; + $buf = fread($src, $rlen); + if (!$buf) { + fclose($src); + fclose($dst); + unlink($dstname); + $this->abort('read IO error'); + } + if (!fwrite($dst, $buf, $rlen)) { + fclose($src); + fclose($dst); + unlink($dstname); + $this->abort('write IO error'); + } + $len -= $rlen; + } + fclose($src); + fclose($dst); + unlink($tmpname); + } + if ($jufinal) { + // This is the last chunk. Check total lenght and + // rename it to it's final name. + $dlen = filesize($dstname); + if ($dlen != $_SESSION['RF'][$this->classparams['var_prefix'].'size']) + $this->abort('file size mismatch'); + if ($this->appletparams['sendMD5Sum'] == 'true' ) { + if ($md5sums[$cnt] != md5_file($dstname)) + $this->abort('MD5 checksum mismatch'); + } + // remove zero sized files + if (($dlen > 0) || $this->classparams['allow_zerosized']) { + $dstfinal = $this->dstfinal($files_data['name'],$files_data['relativePath']); + if (!rename($dstname, $dstfinal)) + $this->abort('rename IO error'); + $_umask = umask(0); // override the system mask + if (!chmod($dstfinal, $this->classparams['fileperm'])) + $this->abort('chmod IO error'); + umask($_umask); + $files_data['size'] = filesize($dstfinal); + $files_data['fullName'] = $dstfinal; + $files_data['path'] = fix_dirname($dstfinal); + array_push($this->files, $files_data); + } else { + unlink($dstname); + } + // reset session var + $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; + } +} else { + // Got a single file upload. Trivial. + if ($this->appletparams['sendMD5Sum'] == 'true' ) { + if ($md5sums[$cnt] != md5_file($tmpname)) + $this->abort('MD5 checksum mismatch'); + } + $dstfinal = $this->dstfinal($files_data['name'],$files_data['relativePath']); + if (!rename($tmpname, $dstfinal)) + $this->abort('rename IO error'); + $_umask = umask(0); // override the system mask + if (!chmod($dstfinal, $this->classparams['fileperm'])) + $this->abort('chmod IO error'); + umask($_umask); + $files_data['size'] = filesize($dstfinal); + $files_data['fullName'] = $dstfinal; + $files_data['path'] = fix_dirname($dstfinal); + array_push($this->files, $files_data); +} +$cnt++; +} + +echo $this->appletparams['stringUploadSuccess']."\n"; +$_SESSION['RF'][$this->classparams['var_prefix'].'files'] = $this->files; +session_write_close(); +exit; +} + +/** + * + * + */ +private function page_start() { + $this->logDebug('page_start', 'Entering function'); + + // If the applet checks for the serverProtocol, it issues a HEAD request + // -> Simply return an empty doc. + if ($_SERVER['REQUEST_METHOD'] == 'HEAD') { + // Nothing to do + + } else if ($_SERVER['REQUEST_METHOD'] == 'GET') { + // A GET request means: return upload page + $this->logDebug('page_start', 'Entering GET management'); + + if (session_id() == '') { + session_start(); + } + if (isset($_GET['afterupload'])) { + $this->logDebug('page_start', 'afterupload is set'); + if (!isset($_SESSION['RF'][$this->classparams['var_prefix'].'files'])) { + $this->abort('Invalid session (in afterupload, GET, check of $_SESSION["RF"]): files array is not set'); + } + $this->files = $_SESSION['RF'][$this->classparams['var_prefix'].'files']; + if (!is_array($this->files)) { + $this->abort('Invalid session (in afterupload, GET, check of is_array(files)): files is not an array'); + } + // clear session data ready for new upload + $_SESSION['RF'][$this->classparams['var_prefix'].'files'] = array(); + + // start intercepting the content of the calling page, to display the upload result. + ob_start(array(& $this, 'interceptAfterUpload')); + + } else { + $this->logDebug('page_start', 'afterupload is not set'); + if ($this->classparams['session_regenerate']) { + session_regenerate_id(true); + } + $this->files = array(); + $_SESSION['RF'][$this->classparams['var_prefix'].'size'] = 0; + $_SESSION['RF'][$this->classparams['var_prefix'].'files'] = $this->files; + // start intercepting the content of the calling page, to display the applet tag. + ob_start(array(& $this, 'interceptBeforeUpload')); + } + + } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { + // If we got a POST request, this is the real work. + if (isset($_GET['errormail'])) { + //Hum, an error occurs on server side. Let's manage the debug log, that we just received. + $this->receive_debug_log(); + } else { + $this->receive_uploaded_files(); + } + } +} +} + +// PHP end tag omitted intentionally!! diff --git a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php index 65d04331..d327653b 100755 --- a/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php +++ b/local/modules/Tinymce/Resources/js/tinymce/filemanager/uploader/success.php @@ -1,19 +1,19 @@ - - - - JUpload RESPONSIVE filemanager - - "> - - -


- success -
- + + + + JUpload RESPONSIVE filemanager + + "> + + +


+ success +
+ \ No newline at end of file diff --git a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js index 2c915945..6ece6bb9 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js +++ b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/langs/ru.js @@ -1,10 +1,10 @@ -tinymce.addI18n('ru',{ - 'YouTube Title' : "Вставить видео YouTube", - 'Youtube URL' : 'Ссылка', - 'Youtube ID' : 'Формат ссылки: http://youtu.be/xxxxxxxx или http://www.youtube.com/watch?v=xxxxxxxx', - 'width' : 'Ширина', - 'height' : 'Высота', - 'autoplay' : 'Автозапуск', - 'Related video' : 'Похожие видео', - 'HD video' : 'В формате HD' +tinymce.addI18n('ru',{ + 'YouTube Title' : "Вставить видео YouTube", + 'Youtube URL' : 'Ссылка', + 'Youtube ID' : 'Формат ссылки: http://youtu.be/xxxxxxxx или http://www.youtube.com/watch?v=xxxxxxxx', + 'width' : 'Ширина', + 'height' : 'Высота', + 'autoplay' : 'Автозапуск', + 'Related video' : 'Похожие видео', + 'HD video' : 'В формате HD' }); \ No newline at end of file diff --git a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html index 4f04a952..fb7f1ea2 100644 --- a/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html +++ b/local/modules/Tinymce/Resources/js/tinymce/plugins/youtube/youtube.html @@ -4,13 +4,13 @@ YouTube - + - +
diff --git a/local/session/.gitkeep b/local/session/.gitkeep new file mode 100755 index 00000000..e69de29b diff --git a/local/session/sess_dcejcpi07k2hfj328kc4ucau9h b/local/session/sess_dcejcpi07k2hfj328kc4ucau9h new file mode 100644 index 00000000..f27d2a28 Binary files /dev/null and b/local/session/sess_dcejcpi07k2hfj328kc4ucau9h differ diff --git a/local/session/sess_dtg3carrrrbjt61hkb7h56sh29 b/local/session/sess_dtg3carrrrbjt61hkb7h56sh29 new file mode 100644 index 00000000..8adcb935 Binary files /dev/null and b/local/session/sess_dtg3carrrrbjt61hkb7h56sh29 differ diff --git a/local/session/sess_g4pff7fq2360h2gp15v6hdvm00 b/local/session/sess_g4pff7fq2360h2gp15v6hdvm00 new file mode 100644 index 00000000..a2a78baf Binary files /dev/null and b/local/session/sess_g4pff7fq2360h2gp15v6hdvm00 differ diff --git a/local/session/sess_j0fl8ngs404vqtlsq5jf1g0324 b/local/session/sess_j0fl8ngs404vqtlsq5jf1g0324 new file mode 100644 index 00000000..682afdc8 Binary files /dev/null and b/local/session/sess_j0fl8ngs404vqtlsq5jf1g0324 differ diff --git a/local/session/sess_ma2oto2q18iicqqidbudml3c4u b/local/session/sess_ma2oto2q18iicqqidbudml3c4u new file mode 100644 index 00000000..2e2a14c8 Binary files /dev/null and b/local/session/sess_ma2oto2q18iicqqidbudml3c4u differ diff --git a/local/session/sess_r59hd4euiabrjq95t0ig3ipq7c b/local/session/sess_r59hd4euiabrjq95t0ig3ipq7c new file mode 100644 index 00000000..3661df36 Binary files /dev/null and b/local/session/sess_r59hd4euiabrjq95t0ig3ipq7c differ diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.BezierCurveRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.BezierCurveRenderer.min.js index fb360573..94c6fc5e 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.BezierCurveRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.BezierCurveRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(b){b.jqplot.BezierCurveRenderer=function(){b.jqplot.LineRenderer.call(this)};b.jqplot.BezierCurveRenderer.prototype=new b.jqplot.LineRenderer();b.jqplot.BezierCurveRenderer.prototype.constructor=b.jqplot.BezierCurveRenderer;b.jqplot.BezierCurveRenderer.prototype.setGridData=function(h){var e=this._xaxis.series_u2p;var g=this._yaxis.series_u2p;var f=this.data;this.gridData=[];this._prevGridData=[];var d=this.index;if(f.length==2){if(d==0){this.gridData=[[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,f[0][1])],[e.call(this._xaxis,f[1][0]),g.call(this._yaxis,f[1][1]),e.call(this._xaxis,f[1][2]),g.call(this._yaxis,f[1][3]),e.call(this._xaxis,f[1][4]),g.call(this._yaxis,f[1][5])],[e.call(this._xaxis,f[1][4]),g.call(this._yaxis,this._yaxis.min)],[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,this._yaxis.min)]]}else{var c=h.series[d-1].data;this.gridData=[[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,f[0][1])],[e.call(this._xaxis,f[1][0]),g.call(this._yaxis,f[1][1]),e.call(this._xaxis,f[1][2]),g.call(this._yaxis,f[1][3]),e.call(this._xaxis,f[1][4]),g.call(this._yaxis,f[1][5])],[e.call(this._xaxis,c[1][4]),g.call(this._yaxis,c[1][5])],[e.call(this._xaxis,c[1][2]),g.call(this._yaxis,c[1][3]),e.call(this._xaxis,c[1][0]),g.call(this._yaxis,c[1][1]),e.call(this._xaxis,c[0][0]),g.call(this._yaxis,c[0][1])]]}}else{if(d==0){this.gridData=[[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,f[0][1])],[e.call(this._xaxis,f[1][0]),g.call(this._yaxis,f[1][1]),e.call(this._xaxis,f[2][0]),g.call(this._yaxis,f[2][1]),e.call(this._xaxis,f[3][0]),g.call(this._yaxis,f[3][1])],[e.call(this._xaxis,f[3][1]),g.call(this._yaxis,this._yaxis.min)],[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,this._yaxis.min)]]}else{var c=h.series[d-1].data;this.gridData=[[e.call(this._xaxis,f[0][0]),g.call(this._yaxis,f[0][1])],[e.call(this._xaxis,f[1][0]),g.call(this._yaxis,f[1][1]),e.call(this._xaxis,f[2][0]),g.call(this._yaxis,f[2][1]),e.call(this._xaxis,f[3][0]),g.call(this._yaxis,f[3][1])],[e.call(this._xaxis,c[3][0]),g.call(this._yaxis,c[3][1])],[e.call(this._xaxis,c[2][0]),g.call(this._yaxis,c[2][1]),e.call(this._xaxis,c[1][0]),g.call(this._yaxis,c[1][1]),e.call(this._xaxis,c[0][0]),g.call(this._yaxis,c[0][1])]]}}};b.jqplot.BezierCurveRenderer.prototype.makeGridData=function(g,i){var f=this._xaxis.series_u2p;var h=this._yaxis.series_u2p;var e=[];var j=[];var d=this.index;if(g.length==2){if(d==0){e=[[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,g[0][1])],[f.call(this._xaxis,g[1][0]),h.call(this._yaxis,g[1][1]),f.call(this._xaxis,g[1][2]),h.call(this._yaxis,g[1][3]),f.call(this._xaxis,g[1][4]),h.call(this._yaxis,g[1][5])],[f.call(this._xaxis,g[1][4]),h.call(this._yaxis,this._yaxis.min)],[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,this._yaxis.min)]]}else{var c=i.series[d-1].data;e=[[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,g[0][1])],[f.call(this._xaxis,g[1][0]),h.call(this._yaxis,g[1][1]),f.call(this._xaxis,g[1][2]),h.call(this._yaxis,g[1][3]),f.call(this._xaxis,g[1][4]),h.call(this._yaxis,g[1][5])],[f.call(this._xaxis,c[1][4]),h.call(this._yaxis,c[1][5])],[f.call(this._xaxis,c[1][2]),h.call(this._yaxis,c[1][3]),f.call(this._xaxis,c[1][0]),h.call(this._yaxis,c[1][1]),f.call(this._xaxis,c[0][0]),h.call(this._yaxis,c[0][1])]]}}else{if(d==0){e=[[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,g[0][1])],[f.call(this._xaxis,g[1][0]),h.call(this._yaxis,g[1][1]),f.call(this._xaxis,g[2][0]),h.call(this._yaxis,g[2][1]),f.call(this._xaxis,g[3][0]),h.call(this._yaxis,g[3][1])],[f.call(this._xaxis,g[3][1]),h.call(this._yaxis,this._yaxis.min)],[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,this._yaxis.min)]]}else{var c=i.series[d-1].data;e=[[f.call(this._xaxis,g[0][0]),h.call(this._yaxis,g[0][1])],[f.call(this._xaxis,g[1][0]),h.call(this._yaxis,g[1][1]),f.call(this._xaxis,g[2][0]),h.call(this._yaxis,g[2][1]),f.call(this._xaxis,g[3][0]),h.call(this._yaxis,g[3][1])],[f.call(this._xaxis,c[3][0]),h.call(this._yaxis,c[3][1])],[f.call(this._xaxis,c[2][0]),h.call(this._yaxis,c[2][1]),f.call(this._xaxis,c[1][0]),h.call(this._yaxis,c[1][1]),f.call(this._xaxis,c[0][0]),h.call(this._yaxis,c[0][1])]]}}return e};b.jqplot.BezierCurveRenderer.prototype.draw=function(c,g,d){var e;c.save();if(g.length){if(this.showLine){c.save();var f=(d!=null)?d:{};c.fillStyle=f.fillStyle||this.color;c.beginPath();c.moveTo(g[0][0],g[0][1]);c.bezierCurveTo(g[1][0],g[1][1],g[1][2],g[1][3],g[1][4],g[1][5]);c.lineTo(g[2][0],g[2][1]);if(g[3].length==2){c.lineTo(g[3][0],g[3][1])}else{c.bezierCurveTo(g[3][0],g[3][1],g[3][2],g[3][3],g[3][4],g[3][5])}c.closePath();c.fill();c.restore()}}c.restore()};b.jqplot.BezierCurveRenderer.prototype.drawShadow=function(c,e,d){};b.jqplot.BezierAxisRenderer=function(){b.jqplot.LinearAxisRenderer.call(this)};b.jqplot.BezierAxisRenderer.prototype=new b.jqplot.LinearAxisRenderer();b.jqplot.BezierAxisRenderer.prototype.constructor=b.jqplot.BezierAxisRenderer;b.jqplot.BezierAxisRenderer.prototype.init=function(f){b.extend(true,this,f);var c=this._dataBounds;for(var g=0;gc.max||c.max==null){c.max=k[e][0]}}else{if(k[e][1]c.max||c.max==null){c.max=k[e][1]}}}}else{if(this.name=="xaxis"||this.name=="x2axis"){if(k[0][0]c.max||c.max==null){c.max=k[0][0]}for(var e=0;e<5;e+=2){if(k[1][e]c.max||c.max==null){c.max=k[1][e]}}}else{if(k[0][1]c.max||c.max==null){c.max=k[0][1]}for(var e=1;e<6;e+=2){if(k[1][e]c.max||c.max==null){c.max=k[1][e]}}}}}};function a(g,f,d){d=d||{};d.axesDefaults=b.extend(true,{pad:0},d.axesDefaults);d.seriesDefaults=d.seriesDefaults||{};d.legend=b.extend(true,{placement:"outside"},d.legend);var c=false;if(d.seriesDefaults.renderer==b.jqplot.BezierCurveRenderer){c=true}else{if(d.series){for(var e=0;e0){this.data[q][u]+=this.data[q-1][u]}}this.data[this.data.length]=(u==1)?[this.data.length+1,s]:[s,this.data.length+1];this._data[this._data.length]=(u==1)?[this._data.length+1,s]:[s,this._data.length+1]}if(this.rendererOptions.groups>1){this.breakOnNull=true;var n=this.data.length;var v=parseInt(n/this.rendererOptions.groups,10);var r=0;for(var q=v;q570)?n[p]*0.8:n[p]+0.3*(255-n[p]);n[p]=parseInt(n[p],10)}q.push("rgb("+n[0]+","+n[1]+","+n[2]+")")}return q}function i(v,u,s,t,o){var q=v,w=v-1,n,p,r=(o==="x")?0:1;if(q>0){p=t.series[w]._plotData[u][r];if((s*p)<0){n=i(w,u,s,t,o)}else{n=t.series[w].gridData[u][r]}}else{n=(r===0)?t.series[q]._xaxis.series_u2p(0):t.series[q]._yaxis.series_u2p(0)}return n}d.jqplot.BarRenderer.prototype.draw=function(E,L,q,G){var I;var A=d.extend({},q);var w=(A.shadow!=undefined)?A.shadow:this.shadow;var O=(A.showLine!=undefined)?A.showLine:this.showLine;var F=(A.fill!=undefined)?A.fill:this.fill;var p=this.xaxis;var J=this.yaxis;var y=this._xaxis.series_u2p;var K=this._yaxis.series_u2p;var D,C;this._dataColors=[];this._barPoints=[];if(this.barWidth==null){this.renderer.setBarWidth.call(this)}var N=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);var x=N[0];var v=N[1];var s=N[2];var H=[];if(this._stack){this._barNudge=0}else{this._barNudge=(-Math.abs(v/2-0.5)+s)*(this.barWidth+this.barPadding)}if(O){var u=new d.jqplot.ColorGenerator(this.negativeSeriesColors);var B=new d.jqplot.ColorGenerator(this.seriesColors);var M=u.get(this.index);if(!this.useNegativeColors){M=A.fillStyle}var t=A.fillStyle;var r;var P;var o;if(this.barDirection=="vertical"){for(var I=0;I0&&I=0){o=this._yaxis.series_u2p(0)}else{if(this._yaxis.min>0){o=E.canvas.height}else{o=0}}}else{if(this.waterfall&&I==this.gridData.length-1){if(this._yaxis.min<=0&&this._yaxis.max>=0){o=this._yaxis.series_u2p(0)}else{if(this._yaxis.min>0){o=E.canvas.height}else{o=0}}}else{o=E.canvas.height}}}}}if((this.fillToZero&&this._plotData[I][1]<0)||(this.waterfall&&this._data[I][1]<0)){if(this.varyBarColor&&!this._stack){if(this.useNegativeColors){A.fillStyle=u.next()}else{A.fillStyle=B.next()}}else{A.fillStyle=M}}else{if(this.varyBarColor&&!this._stack){A.fillStyle=B.next()}else{A.fillStyle=t}}if(!this.fillToZero||this._plotData[I][1]>=0){H.push([r-this.barWidth/2,o]);H.push([r-this.barWidth/2,L[I][1]]);H.push([r+this.barWidth/2,L[I][1]]);H.push([r+this.barWidth/2,o])}else{H.push([r-this.barWidth/2,L[I][1]]);H.push([r-this.barWidth/2,o]);H.push([r+this.barWidth/2,o]);H.push([r+this.barWidth/2,L[I][1]])}this._barPoints.push(H);if(w&&!this._stack){var z=d.extend(true,{},A);delete z.fillStyle;this.renderer.shadowRenderer.draw(E,H,z)}var n=A.fillStyle||this.color;this._dataColors.push(n);this.renderer.shapeRenderer.draw(E,H,A)}}else{if(this.barDirection=="horizontal"){for(var I=0;I0&&I=0){P=this._xaxis.series_u2p(0)}else{if(this._xaxis.min>0){P=0}else{P=0}}}else{if(this.waterfall&&I==this.gridData.length-1){if(this._xaxis.min<=0&&this._xaxis.max>=0){P=this._xaxis.series_u2p(0)}else{if(this._xaxis.min>0){P=0}else{P=E.canvas.width}}}else{P=0}}}}}if((this.fillToZero&&this._plotData[I][0]<0)||(this.waterfall&&this._data[I][0]<0)){if(this.varyBarColor&&!this._stack){if(this.useNegativeColors){A.fillStyle=u.next()}else{A.fillStyle=B.next()}}else{A.fillStyle=M}}else{if(this.varyBarColor&&!this._stack){A.fillStyle=B.next()}else{A.fillStyle=t}}if(!this.fillToZero||this._plotData[I][0]>=0){H.push([P,r+this.barWidth/2]);H.push([P,r-this.barWidth/2]);H.push([L[I][0],r-this.barWidth/2]);H.push([L[I][0],r+this.barWidth/2])}else{H.push([L[I][0],r+this.barWidth/2]);H.push([L[I][0],r-this.barWidth/2]);H.push([P,r-this.barWidth/2]);H.push([P,r+this.barWidth/2])}this._barPoints.push(H);if(w&&!this._stack){var z=d.extend(true,{},A);delete z.fillStyle;this.renderer.shadowRenderer.draw(E,H,z)}var n=A.fillStyle||this.color;this._dataColors.push(n);this.renderer.shapeRenderer.draw(E,H,A)}}}}if(this.highlightColors.length==0){this.highlightColors=d.jqplot.computeHighlightColors(this._dataColors)}else{if(typeof(this.highlightColors)=="string"){var N=this.highlightColors;this.highlightColors=[];for(var I=0;I")}k=a.extend(true,{},this.css,k);c=a('
');this.canvas._elem.append(c);this.escapeHtml?c.text(p):c.html(p);delete k.position;delete k.marginRight;delete k.marginLeft;if(!k.background&&!k.backgroundColor&&!k.backgroundImage){k.background=j.next()}c.css(k);n=c.outerWidth();g=c.outerHeight();e=o[0]-n/2+"px";m=o[1]-g/2+"px";c.css({left:e,top:m});c=null}};a.jqplot.BlockCanvas=function(){a.jqplot.ElemContainer.call(this);this._ctx};a.jqplot.BlockCanvas.prototype=new a.jqplot.ElemContainer();a.jqplot.BlockCanvas.prototype.constructor=a.jqplot.BlockCanvas;a.jqplot.BlockCanvas.prototype.createElement=function(i,e,c){this._offsets=i;var b="jqplot-blockCanvas";if(e!=undefined){b=e}var g;if(this._elem){g=this._elem.get(0)}else{g=document.createElement("div")}if(c!=undefined){this._plotDimensions=c}var d=this._plotDimensions.width-this._offsets.left-this._offsets.right+"px";var f=this._plotDimensions.height-this._offsets.top-this._offsets.bottom+"px";this._elem=a(g);this._elem.css({position:"absolute",width:d,height:f,left:this._offsets.left,top:this._offsets.top});this._elem.addClass(b);return this._elem};a.jqplot.BlockCanvas.prototype.setContext=function(){this._ctx={canvas:{width:0,height:0},clearRect:function(){return null}};return this._ctx}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.bubbleRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.bubbleRenderer.min.js index d44a7cde..dc0c1ef0 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.bubbleRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.bubbleRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(f){var d=function(m){return Math.max.apply(Math,m)};var j=function(m){return Math.min.apply(Math,m)};f.jqplot.BubbleRenderer=function(){f.jqplot.LineRenderer.call(this)};f.jqplot.BubbleRenderer.prototype=new f.jqplot.LineRenderer();f.jqplot.BubbleRenderer.prototype.constructor=f.jqplot.BubbleRenderer;f.jqplot.BubbleRenderer.prototype.init=function(w,t){this.varyBubbleColors=true;this.autoscaleBubbles=true;this.autoscaleMultiplier=1;this.autoscalePointsFactor=-0.07;this.escapeHtml=true;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.bubbleAlpha=1;this.highlightAlpha=null;this.bubbleGradients=false;this.showLabels=true;this.radii=[];this.maxRadius=0;this._highlightedPoint=null;this.labels=[];this.bubbleCanvases=[];this._type="bubble";if(w.highlightMouseDown&&w.highlightMouseOver==null){w.highlightMouseOver=false}f.extend(true,this,w);if(this.highlightAlpha==null){this.highlightAlpha=this.bubbleAlpha;if(this.bubbleGradients){this.highlightAlpha=0.35}}this.autoscaleMultiplier=this.autoscaleMultiplier*Math.pow(this.data.length,this.autoscalePointsFactor);this._highlightedPoint=null;var n;for(var r=0;r570)?u[q]*0.8:u[q]+0.3*(255-u[q]);u[q]=parseInt(u[q],10)}this.highlightColors.push("rgba("+u[0]+","+u[1]+","+u[2]+", "+this.highlightAlpha+")")}}this.highlightColorGenerator=new f.jqplot.ColorGenerator(this.highlightColors);var m={fill:true,isarc:true,angle:this.shadowAngle,alpha:this.shadowAlpha,closePath:true};this.renderer.shadowRenderer.init(m);this.canvas=new f.jqplot.DivCanvas();this.canvas._plotDimensions=this._plotDimensions;t.eventListenerHooks.addOnce("jqplotMouseMove",a);t.eventListenerHooks.addOnce("jqplotMouseDown",b);t.eventListenerHooks.addOnce("jqplotMouseUp",k);t.eventListenerHooks.addOnce("jqplotClick",g);t.eventListenerHooks.addOnce("jqplotRightClick",l);t.postDrawHooks.addOnce(h)};f.jqplot.BubbleRenderer.prototype.setGridData=function(w){var q=this._xaxis.series_u2p;var m=this._yaxis.series_u2p;var t=this._plotData;this.gridData=[];var s=[];this.radii=[];var v=Math.min(w._height,w._width);for(var u=0;u
');if(this.escapeHtml){p.text(z)}else{p.html(z)}this.canvas._elem.append(p);var H=f(p).outerHeight();var v=f(p).outerWidth();var B=J[1]-0.5*H;var o=J[0]-0.5*v;p.css({top:B,left:o});this.labels[C]=f(p)}}};f.jqplot.DivCanvas=function(){f.jqplot.ElemContainer.call(this);this._ctx};f.jqplot.DivCanvas.prototype=new f.jqplot.ElemContainer();f.jqplot.DivCanvas.prototype.constructor=f.jqplot.DivCanvas;f.jqplot.DivCanvas.prototype.createElement=function(s,p,n){this._offsets=s;var m="jqplot-DivCanvas";if(p!=undefined){m=p}var r;if(this._elem){r=this._elem.get(0)}else{r=document.createElement("div")}if(n!=undefined){this._plotDimensions=n}var o=this._plotDimensions.width-this._offsets.left-this._offsets.right+"px";var q=this._plotDimensions.height-this._offsets.top-this._offsets.bottom+"px";this._elem=f(r);this._elem.css({position:"absolute",width:o,height:q,left:this._offsets.left,top:this._offsets.top});this._elem.addClass(m);return this._elem};f.jqplot.DivCanvas.prototype.setContext=function(){this._ctx={canvas:{width:0,height:0},clearRect:function(){return null}};return this._ctx};f.jqplot.BubbleCanvas=function(){f.jqplot.ElemContainer.call(this);this._ctx};f.jqplot.BubbleCanvas.prototype=new f.jqplot.ElemContainer();f.jqplot.BubbleCanvas.prototype.constructor=f.jqplot.BubbleCanvas;f.jqplot.BubbleCanvas.prototype.createElement=function(n,u,s){var m="jqplot-bubble-point";var q;if(this._elem){q=this._elem.get(0)}else{q=document.createElement("canvas")}q.width=(s!=null)?2*s:q.width;q.height=(s!=null)?2*s:q.height;this._elem=f(q);var o=(n!=null&&s!=null)?n-s:this._elem.css("left");var p=(u!=null&&s!=null)?u-s:this._elem.css("top");this._elem.css({position:"absolute",left:o,top:p});this._elem.addClass(m);if(f.jqplot.use_excanvas){window.G_vmlCanvasManager.init_(document);q=window.G_vmlCanvasManager.initElement(q)}return this._elem};f.jqplot.BubbleCanvas.prototype.draw=function(m,s,v,p){var D=this._ctx;var B=D.canvas.width/2;var z=D.canvas.height/2;D.save();if(v&&!f.jqplot.use_excanvas){m=m*1.04;var o=f.jqplot.getColorComponents(s);var u="rgba("+Math.round(o[0]+0.8*(255-o[0]))+", "+Math.round(o[1]+0.8*(255-o[1]))+", "+Math.round(o[2]+0.8*(255-o[2]))+", "+o[3]+")";var t="rgba("+o[0]+", "+o[1]+", "+o[2]+", 0)";var C=0.35*m;var A=B-Math.cos(p)*0.33*m;var n=z-Math.sin(p)*0.33*m;var w=D.createRadialGradient(A,n,C,B,z,m);w.addColorStop(0,u);w.addColorStop(0.93,s);w.addColorStop(0.96,t);w.addColorStop(1,t);D.fillStyle=w;D.fillRect(0,0,D.canvas.width,D.canvas.height)}else{D.fillStyle=s;D.strokeStyle=s;D.lineWidth=1;D.beginPath();var q=2*Math.PI;D.arc(B,z,m,0,q,0);D.closePath();D.fill()}D.restore()};f.jqplot.BubbleCanvas.prototype.setContext=function(){this._ctx=this._elem.get(0).getContext("2d");return this._ctx};f.jqplot.BubbleAxisRenderer=function(){f.jqplot.LinearAxisRenderer.call(this)};f.jqplot.BubbleAxisRenderer.prototype=new f.jqplot.LinearAxisRenderer();f.jqplot.BubbleAxisRenderer.prototype.constructor=f.jqplot.BubbleAxisRenderer;f.jqplot.BubbleAxisRenderer.prototype.init=function(n){f.extend(true,this,n);var I=this._dataBounds;var H=0,v=0,m=0,y=0,q=0,r=0,D=0,t=0,F=0,z=0;for(var E=0;EI.max||I.max==null){I.max=G[B][0];m=E;y=B;q=G[B][2];t=x.maxRadius;F=x.autoscaleMultiplier}}else{if(G[B][1]I.max||I.max==null){I.max=G[B][1];m=E;y=B;q=G[B][2];t=x.maxRadius;F=x.autoscaleMultiplier}}}}var o=r/D;var w=q/t;var C=I.max-I.min;var A=Math.min(this._plotDimensions.width,this._plotDimensions.height);var p=o*z/3*C;var u=w*F/3*C;I.max+=u;I.min-=p};function e(p,v,q){p.plugins.bubbleRenderer.highlightLabelCanvas.empty();var z=p.series[v];var n=p.plugins.bubbleRenderer.highlightCanvas;var w=n._ctx;w.clearRect(0,0,w.canvas.width,w.canvas.height);z._highlightedPoint=q;p.plugins.bubbleRenderer.highlightedSeriesIndex=v;var o=z.highlightColorGenerator.get(q);var u=z.gridData[q][0],t=z.gridData[q][1],m=z.gridData[q][2];w.save();w.fillStyle=o;w.strokeStyle=o;w.lineWidth=1;w.beginPath();w.arc(u,t,m,0,2*Math.PI,0);w.closePath();w.fill();w.restore();if(z.labels[q]){p.plugins.bubbleRenderer.highlightLabel=z.labels[q].clone();p.plugins.bubbleRenderer.highlightLabel.appendTo(p.plugins.bubbleRenderer.highlightLabelCanvas);p.plugins.bubbleRenderer.highlightLabel.addClass("jqplot-bubble-label-highlight")}}function i(p){var m=p.plugins.bubbleRenderer.highlightCanvas;var o=p.plugins.bubbleRenderer.highlightedSeriesIndex;p.plugins.bubbleRenderer.highlightLabelCanvas.empty();m._ctx.clearRect(0,0,m._ctx.canvas.width,m._ctx.canvas.height);for(var n=0;n');var q=this._gridPadding.top;var p=this._gridPadding.left;var n=this._plotDimensions.width-this._gridPadding.left-this._gridPadding.right;var m=this._plotDimensions.height-this._gridPadding.top-this._gridPadding.bottom;this.plugins.bubbleRenderer.highlightLabelCanvas.css({top:q,left:p,width:n+"px",height:m+"px"});this.eventCanvas._elem.before(this.plugins.bubbleRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-bubbleRenderer-highlight-canvas",this._plotDimensions,this));this.eventCanvas._elem.before(this.plugins.bubbleRenderer.highlightLabelCanvas);var o=this.plugins.bubbleRenderer.highlightCanvas.setContext()}function c(q,p,n){n=n||{};n.axesDefaults=n.axesDefaults||{};n.seriesDefaults=n.seriesDefaults||{};var m=false;if(n.seriesDefaults.renderer==f.jqplot.BubbleRenderer){m=true}else{if(n.series){for(var o=0;ot){y=w;w=t;t=y}if(v>s){y=v;v=s;s=y}var u=(o>=w&&o<=t&&n>=v&&n<=s);return u}function a(z,w,r,A,x){var y=x.plugins.canvasOverlay;var v=y.objects;var s=v.length;var u,o=false;var q;for(var t=0;t-1){return c/this.pt2px}else{if(b.indexOf("pt")>-1){return c}else{if(b.indexOf("em")>-1){return c*12}else{if(b.indexOf("%")>-1){return c*12/100}else{return c/this.pt2px}}}}};a.jqplot.CanvasTextRenderer.prototype.fontWeight2Float=function(b){if(Number(b)){return b/400}else{switch(b){case"normal":return 1;break;case"bold":return 1.75;break;case"bolder":return 2.25;break;case"lighter":return 0.75;break;default:return 1;break}}};a.jqplot.CanvasTextRenderer.prototype.getText=function(){return this.text};a.jqplot.CanvasTextRenderer.prototype.setText=function(c,b){this.text=c;this.setWidth(b);return this};a.jqplot.CanvasTextRenderer.prototype.getWidth=function(b){return this.width};a.jqplot.CanvasTextRenderer.prototype.setWidth=function(c,b){if(!b){this.width=this.measure(c,this.text)}else{this.width=b}return this};a.jqplot.CanvasTextRenderer.prototype.getHeight=function(b){return this.height};a.jqplot.CanvasTextRenderer.prototype.setHeight=function(b){if(!b){this.height=this.normalizedFontSize*this.pt2px}else{this.height=b}return this};a.jqplot.CanvasTextRenderer.prototype.letter=function(b){return this.letters[b]};a.jqplot.CanvasTextRenderer.prototype.ascent=function(){return this.normalizedFontSize};a.jqplot.CanvasTextRenderer.prototype.descent=function(){return 7*this.normalizedFontSize/25};a.jqplot.CanvasTextRenderer.prototype.measure=function(d,g){var f=0;var b=g.length;for(var e=0;e30)?2:2+(30-this.normalizedFontSize)/20;s.lineWidth=t*k*this.fontWeight2Float(this.fontWeight);for(var g=0;g":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};a.jqplot.CanvasFontRenderer=function(b){b=b||{};if(!b.pt2px){b.pt2px=1.5}a.jqplot.CanvasTextRenderer.call(this,b)};a.jqplot.CanvasFontRenderer.prototype=new a.jqplot.CanvasTextRenderer({});a.jqplot.CanvasFontRenderer.prototype.constructor=a.jqplot.CanvasFontRenderer;a.jqplot.CanvasFontRenderer.prototype.measure=function(c,e){var d=this.fontSize+" "+this.fontFamily;c.save();c.font=d;var b=c.measureText(e).width;c.restore();return b};a.jqplot.CanvasFontRenderer.prototype.draw=function(e,g){var c=0;var h=this.height*0.72;e.save();var d,b;if((-Math.PI/2<=this.angle&&this.angle<=0)||(Math.PI*3/2<=this.angle&&this.angle<=Math.PI*2)){d=0;b=-Math.sin(this.angle)*this.width}else{if((0b.max||b.max==null){b.max=h[c][0]}}else{if(h[c][1]b.max||b.max==null){b.max=h[c][1]}}}}if(this.groupLabels.length){this.groups=this.groupLabels.length}};a.jqplot.CategoryAxisRenderer.prototype.createTicks=function(){var D=this._ticks;var z=this.ticks;var F=this.name;var C=this._dataBounds;var v,A;var q,w;var d,c;var b,x;if(z.length){if(this.groups>1&&!this._grouped){var r=z.length;var p=parseInt(r/this.groups,10);var e=0;for(var x=p;x1&&!this._grouped){var r=y.length;var p=parseInt(r/this.groups,10);var e=0;for(var x=p;x0&&o');if(this.name=="xaxis"||this.name=="x2axis"){this._elem.width(this._plotDimensions.width)}else{this._elem.height(this._plotDimensions.height)}this.labelOptions.axis=this.name;this._label=new this.labelRenderer(this.labelOptions);if(this._label.show){var g=this._label.draw(b,j);g.appendTo(this._elem)}var f=this._ticks;for(var e=0;e');g.html(this.groupLabels[e]);this._groupLabels.push(g);g.appendTo(this._elem)}}return this._elem};a.jqplot.CategoryAxisRenderer.prototype.set=function(){var e=0;var m;var k=0;var f=0;var d=(this._label==null)?false:this._label.show;if(this.show){var n=this._ticks;for(var c=0;ce){e=m}}}var j=0;for(var c=0;cj){j=m}}if(d){k=this._label._elem.outerWidth(true);f=this._label._elem.outerHeight(true)}if(this.name=="xaxis"){e+=j+f;this._elem.css({height:e+"px",left:"0px",bottom:"0px"})}else{if(this.name=="x2axis"){e+=j+f;this._elem.css({height:e+"px",left:"0px",top:"0px"})}else{if(this.name=="yaxis"){e+=j+k;this._elem.css({width:e+"px",left:"0px",top:"0px"});if(d&&this._label.constructor==a.jqplot.AxisLabelRenderer){this._label._elem.css("width",k+"px")}}else{e+=j+k;this._elem.css({width:e+"px",right:"0px",top:"0px"});if(d&&this._label.constructor==a.jqplot.AxisLabelRenderer){this._label._elem.css("width",k+"px")}}}}}};a.jqplot.CategoryAxisRenderer.prototype.pack=function(e,c){var C=this._ticks;var v=this.max;var s=this.min;var n=c.max;var l=c.min;var q=(this._label==null)?false:this._label.show;var x;for(var r in e){this._elem.css(r,e[r])}this._offsets=c;var g=n-l;var k=v-s;if(!this.reverse){this.u2p=function(h){return(h-s)*g/k+l};this.p2u=function(h){return(h-l)*k/g+s};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(h){return(h-s)*g/k};this.series_p2u=function(h){return h*k/g+s}}else{this.series_u2p=function(h){return(h-v)*g/k};this.series_p2u=function(h){return h*k/g+v}}}else{this.u2p=function(h){return l+(v-h)*g/k};this.p2u=function(h){return s+(h-l)*k/g};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(h){return(v-h)*g/k};this.series_p2u=function(h){return h*k/g+v}}else{this.series_u2p=function(h){return(s-h)*g/k};this.series_p2u=function(h){return h*k/g+s}}}if(this.show){if(this.name=="xaxis"||this.name=="x2axis"){for(x=0;x=this._ticks.length-1){continue}if(this._ticks[u]._elem&&this._ticks[u].label!=" "){var o=this._ticks[u]._elem;var r=o.position();B+=r.left+o.outerWidth(true)/2;f++}}B=B/f;this._groupLabels[x].css({left:(B-this._groupLabels[x].outerWidth(true)/2)});this._groupLabels[x].css(z[0],z[1])}}else{for(x=0;x0){b=-o._textRenderer.height*Math.cos(-o._textRenderer.angle)/2}else{b=-o.getHeight()+o._textRenderer.height*Math.cos(o._textRenderer.angle)/2}break;case"middle":b=-o.getHeight()/2;break;default:b=-o.getHeight()/2;break}}else{b=-o.getHeight()/2}var D=this.u2p(o.value)+b+"px";o._elem.css("top",D);o.pack()}}var z=["left",0];if(q){var y=this._label._elem.outerHeight(true);this._label._elem.css("top",n-g/2-y/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px");z=["left",this._label._elem.outerWidth(true)]}else{this._label._elem.css("right","0px");z=["right",this._label._elem.outerWidth(true)]}this._label.pack()}var d=parseInt(this._ticks.length/this.groups,10)+1;for(x=0;x=this._ticks.length-1){continue}if(this._ticks[u]._elem&&this._ticks[u].label!=" "){var o=this._ticks[u]._elem;var r=o.position();B+=r.top+o.outerHeight()/2;f++}}B=B/f;this._groupLabels[x].css({top:B-this._groupLabels[x].outerHeight()/2});this._groupLabels[x].css(z[0],z[1])}}}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.ciParser.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.ciParser.min.js index e17e7921..08f46c85 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.ciParser.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.ciParser.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(a){a.jqplot.ciParser=function(g,l){var m=[],o,n,h,f,e,c;if(typeof(g)=="string"){g=a.jqplot.JSON.parse(g,d)}else{if(typeof(g)=="object"){for(e in g){for(h=0;h=0){i=/^\/Date\((-?[0-9]+)\)\/$/.exec(k);if(i){return parseInt(i[1],10)}}return k}}for(var b in g){o=[];n=g[b];switch(b){case"PriceTicks":for(h=0;h6&&Math.abs(G.y-I._zoom.start[1])>6)||(I.constrainZoomTo=="x"&&Math.abs(G.x-I._zoom.start[0])>6)||(I.constrainZoomTo=="y"&&Math.abs(G.y-I._zoom.start[1])>6)){if(!C.plugins.cursor.zoomProxy){for(var y in t){if(I._zoom.axes[y]==undefined){I._zoom.axes[y]={};I._zoom.axes[y].numberTicks=F[y].numberTicks;I._zoom.axes[y].tickInterval=F[y].tickInterval;I._zoom.axes[y].daTickInterval=F[y].daTickInterval;I._zoom.axes[y].min=F[y].min;I._zoom.axes[y].max=F[y].max;I._zoom.axes[y].tickFormatString=(F[y].tickOptions!=null)?F[y].tickOptions.formatString:""}if((I.constrainZoomTo=="none")||(I.constrainZoomTo=="x"&&y.charAt(0)=="x")||(I.constrainZoomTo=="y"&&y.charAt(0)=="y")){z=t[y];if(z!=null){if(z>w[y]){v=w[y];x=z}else{D=w[y]-z;v=z;x=w[y]}q=F[y];H=null;if(q.alignTicks){if(q.name==="x2axis"&&C.axes.xaxis.show){H=C.axes.xaxis.numberTicks}else{if(q.name.charAt(0)==="y"&&q.name!=="yaxis"&&q.name!=="yMidAxis"&&C.axes.yaxis.show){H=C.axes.yaxis.numberTicks}}}if(this.looseZoom&&(F[y].renderer.constructor===j.jqplot.LinearAxisRenderer||F[y].renderer.constructor===j.jqplot.LogAxisRenderer)){J=j.jqplot.LinearTickGenerator(v,x,q._scalefact,H);if(F[y].tickInset&&J[0]F[y].max-F[y].tickInset*F[y].tickInterval){J[1]-=J[4];J[2]-=1}if(F[y].renderer.constructor===j.jqplot.LogAxisRenderer&&J[0]"}if(J.useAxesFormatters){for(var D=0;D"}w+=j.jqplot.sprintf(J.tooltipFormatString,t,z,x);N=true}}}}J._tooltipElem.html(w)}function g(C,A){var E=A.plugins.cursor;var z=E.cursorCanvas._ctx;z.clearRect(0,0,z.canvas.width,z.canvas.height);if(E.showVerticalLine){E.shapeRenderer.draw(z,[[C.x,0],[C.x,z.canvas.height]])}if(E.showHorizontalLine){E.shapeRenderer.draw(z,[[0,C.y],[z.canvas.width,C.y]])}var G=d(A,C.x,C.y);if(E.showCursorLegend){var r=j(A.targetId+" td.jqplot-cursor-legend-label");for(var B=0;B0;r--){s=v[r-1];if(q[s].show){u[s]=q[s].series_p2u(w[s.charAt(0)])}}return{offsets:t,gridPos:w,dataPos:u}}function h(z){var x=z.data.plot;var y=x.plugins.cursor;if(y.show&&y.zoom&&y._zoom.started&&!y.zoomTarget){z.preventDefault();var B=y.zoomCanvas._ctx;var v=o(z);var w=v.gridPos;var t=v.dataPos;y._zoom.gridpos=w;y._zoom.datapos=t;y._zoom.zooming=true;var u=w.x;var s=w.y;var A=B.canvas.height;var q=B.canvas.width;if(y.showTooltip&&!y.onGrid&&y.showTooltipOutsideZoom){e(w,t,x);if(y.followMouse){n(w,x)}}if(y.constrainZoomTo=="x"){y._zoom.end=[u,A]}else{if(y.constrainZoomTo=="y"){y._zoom.end=[q,s]}else{y._zoom.end=[u,s]}}var r=window.getSelection;if(document.selection&&document.selection.empty){document.selection.empty()}else{if(r&&!r().isCollapsed){r().collapse()}}l.call(y);B=null}}function a(w,s,r,x,t){var v=t.plugins.cursor;if(t.plugins.mobile){j(document).one("vmouseup.jqplot_cursor",{plot:t},p)}else{j(document).one("mouseup.jqplot_cursor",{plot:t},p)}var u=t.axes;if(document.onselectstart!=undefined){v._oldHandlers.onselectstart=document.onselectstart;document.onselectstart=function(){return false}}if(document.ondrag!=undefined){v._oldHandlers.ondrag=document.ondrag;document.ondrag=function(){return false}}if(document.onmousedown!=undefined){v._oldHandlers.onmousedown=document.onmousedown;document.onmousedown=function(){return false}}if(v.zoom){if(!v.zoomProxy){var y=v.zoomCanvas._ctx;y.clearRect(0,0,y.canvas.width,y.canvas.height);y=null}if(v.constrainZoomTo=="x"){v._zoom.start=[s.x,0]}else{if(v.constrainZoomTo=="y"){v._zoom.start=[0,s.y]}else{v._zoom.start=[s.x,s.y]}}v._zoom.started=true;for(var q in r){v._zoom.axes.start[q]=r[q]}if(t.plugins.mobile){j(document).bind("vmousemove.jqplotCursor",{plot:t},h)}else{j(document).bind("mousemove.jqplotCursor",{plot:t},h)}}}function p(y){var v=y.data.plot;var x=v.plugins.cursor;if(x.zoom&&x._zoom.zooming&&!x.zoomTarget){var u=x._zoom.gridpos.x;var r=x._zoom.gridpos.y;var t=x._zoom.datapos;var z=x.zoomCanvas._ctx.canvas.height;var q=x.zoomCanvas._ctx.canvas.width;var w=v.axes;if(x.constrainOutsideZoom&&!x.onGrid){if(u<0){u=0}else{if(u>q){u=q}}if(r<0){r=0}else{if(r>z){r=z}}for(var s in t){if(t[s]){if(s.charAt(0)=="x"){t[s]=w[s].series_p2u(u)}else{t[s]=w[s].series_p2u(r)}}}}if(x.constrainZoomTo=="x"){r=z}else{if(x.constrainZoomTo=="y"){u=q}}x._zoom.end=[u,r];x._zoom.gridpos={x:u,y:r};x.doZoom(x._zoom.gridpos,t,v,x)}x._zoom.started=false;x._zoom.zooming=false;j(document).unbind("mousemove.jqplotCursor",h);if(document.onselectstart!=undefined&&x._oldHandlers.onselectstart!=null){document.onselectstart=x._oldHandlers.onselectstart;x._oldHandlers.onselectstart=null}if(document.ondrag!=undefined&&x._oldHandlers.ondrag!=null){document.ondrag=x._oldHandlers.ondrag;x._oldHandlers.ondrag=null}if(document.onmousedown!=undefined&&x._oldHandlers.onmousedown!=null){document.onmousedown=x._oldHandlers.onmousedown;x._oldHandlers.onmousedown=null}}function l(){var y=this._zoom.start;var u=this._zoom.end;var s=this.zoomCanvas._ctx;var r,v,x,q;if(u[0]>y[0]){r=y[0];q=u[0]-y[0]}else{r=u[0];q=y[0]-u[0]}if(u[1]>y[1]){v=y[1];x=u[1]-y[1]}else{v=u[1];x=y[1]-u[1]}s.fillStyle="rgba(0,0,0,0.2)";s.strokeStyle="#999999";s.lineWidth=1;s.clearRect(0,0,s.canvas.width,s.canvas.height);s.fillRect(0,0,s.canvas.width,s.canvas.height);s.clearRect(r,v,q,x);s.strokeRect(r,v,q,x);s=null}j.jqplot.CursorLegendRenderer=function(q){j.jqplot.TableLegendRenderer.call(this,q);this.formatString="%s"};j.jqplot.CursorLegendRenderer.prototype=new j.jqplot.TableLegendRenderer();j.jqplot.CursorLegendRenderer.prototype.constructor=j.jqplot.CursorLegendRenderer;j.jqplot.CursorLegendRenderer.prototype.draw=function(){if(this._elem){this._elem.emptyForce();this._elem=null}if(this.show){var w=this._series,A;var r=document.createElement("table");this._elem=j(r);r=null;this._elem.addClass("jqplot-legend jqplot-cursor-legend");this._elem.css("position","absolute");var q=false;for(var x=0;x').appendTo(this._elem);E.data("seriesIndex",s);j('
').appendTo(E);var G=j('');G.appendTo(E);G.data("seriesIndex",s);if(this.escapeHtml){G.text(D)}else{G.html(D)}E=null;G=null}return this._elem}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.dateAxisRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.dateAxisRenderer.min.js index a295489b..74178015 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.dateAxisRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.dateAxisRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(h){h.jqplot.DateAxisRenderer=function(){h.jqplot.LinearAxisRenderer.call(this);this.date=new h.jsDate()};var c=1000;var e=60*c;var f=60*e;var l=24*f;var b=7*l;var j=30.4368499*l;var k=365.242199*l;var g=[31,28,31,30,31,30,31,30,31,30,31,30];var i=["%M:%S.%#N","%M:%S.%#N","%M:%S.%#N","%M:%S","%M:%S","%M:%S","%M:%S","%H:%M:%S","%H:%M:%S","%H:%M","%H:%M","%H:%M","%H:%M","%H:%M","%H:%M","%a %H:%M","%a %H:%M","%b %e %H:%M","%b %e %H:%M","%b %e %H:%M","%b %e %H:%M","%v","%v","%v","%v","%v","%v","%v"];var m=[0.1*c,0.2*c,0.5*c,c,2*c,5*c,10*c,15*c,30*c,e,2*e,5*e,10*e,15*e,30*e,f,2*f,4*f,6*f,8*f,12*f,l,2*l,3*l,4*l,5*l,b,2*b];var d=[];function a(p,s,t){var o=Number.MAX_VALUE;var u,r,v;for(var q=0,n=m.length;qC.max)||C.max==null){C.max=y[r][0]}if(r>0){o=Math.abs(y[r][0]-y[r-1][0]);u.intervals.push(o);if(u.frequencies.hasOwnProperty(o)){u.frequencies[o]+=1}else{u.frequencies[o]=1}}x+=o}else{y[r][1]=new h.jsDate(y[r][1]).getTime();A[r][1]=new h.jsDate(y[r][1]).getTime();z[r][1]=new h.jsDate(y[r][1]).getTime();if((y[r][1]!=null&&y[r][1]C.max)||C.max==null){C.max=y[r][1]}if(r>0){o=Math.abs(y[r][1]-y[r-1][1]);u.intervals.push(o);if(u.frequencies.hasOwnProperty(o)){u.frequencies[o]+=1}else{u.frequencies[o]=1}}}x+=o}if(D.renderer.bands){if(D.renderer.bands.hiData.length){var w=D.renderer.bands.hiData;for(var r=0,q=w.length;rC.max)||C.max==null){C.max=w[r][0]}}else{w[r][1]=new h.jsDate(w[r][1]).getTime();if((w[r][1]!=null&&w[r][1]>C.max)||C.max==null){C.max=w[r][1]}}}}if(D.renderer.bands.lowData.length){var w=D.renderer.bands.lowData;for(var r=0,q=w.length;r6){D=6}}var V=new h.jsDate(ae).setDate(1).setHours(0,0,0,0);var q=new h.jsDate(J);var z=new h.jsDate(J).setDate(1).setHours(0,0,0,0);if(q.getTime()!==z.getTime()){z=z.add(1,"month")}var S=z.diff(V,"month");ab=Math.ceil(S/D)+1;this.min=V.getTime();this.max=V.clone().add((ab-1)*D,"month").getTime();this.numberTicks=ab;for(var aa=0;aa200){this.numberTicks=parseInt(3+(n-200)/100,10)}else{this.numberTicks=2}}}O=B/(this.numberTicks-1)/1000;if(this.daTickInterval==null){this.daTickInterval=[O,"seconds"]}for(var aa=0;aa570)?n[o]*0.8:n[o]+0.3*(255-n[o]);n[o]=parseInt(n[o],10)}this.highlightColors.push("rgb("+n[0]+","+n[1]+","+n[2]+")")}}t.postParseOptionsHooks.addOnce(l);t.postInitHooks.addOnce(g);t.eventListenerHooks.addOnce("jqplotMouseMove",b);t.eventListenerHooks.addOnce("jqplotMouseDown",a);t.eventListenerHooks.addOnce("jqplotMouseUp",j);t.eventListenerHooks.addOnce("jqplotClick",f);t.eventListenerHooks.addOnce("jqplotRightClick",m);t.postDrawHooks.addOnce(h)};e.jqplot.DonutRenderer.prototype.setGridData=function(s){var o=[];var t=[];var n=this.startAngle/180*Math.PI;var r=0;this._drawData=false;for(var q=0;q0){o[q]+=o[q-1]}r+=this.data[q][1]}var p=Math.PI*2/o[o.length-1];for(var q=0;q0){o[q]+=o[q-1]}r+=s[q][1]}var p=Math.PI*2/o[o.length-1];for(var q=0;q6.282+this.startAngle){t=6.282+this.startAngle;if(u>t){u=6.281+this.startAngle}}if(u>=t){return}x.beginPath();x.fillStyle=p;x.strokeStyle=p;x.arc(0,0,n,u,t,false);x.lineTo(v*Math.cos(t),v*Math.sin(t));x.arc(0,0,v,t,u,true);x.closePath();if(w){x.fill()}else{x.stroke()}}if(s){for(var q=0;q1&&this.index>0)?this._previousSeries[0]._diameter:this._diameter;this._thickness=this.thickness||(M-this.innerDiameter-2*X*this._numberSeries)/this._numberSeries/2}else{this._thickness=this.thickness||v/2/(this._numberSeries+1)*0.85}var K=this._radius=this._diameter/2;this._innerRadius=this._radius-this._thickness;var o=this.startAngle/180*Math.PI;this._center=[(s-u*q)/2+u*q,(H-u*p)/2+u*p];if(this.shadow){var L="rgba(0,0,0,"+this.shadowAlpha+")";for(var Q=0;Q=this.dataLabelThreshold){var S,U=(A+z)/2,C;if(this.dataLabels=="label"){S=this.dataLabelFormatString||"%s";C=e.jqplot.sprintf(S,V[Q][0])}else{if(this.dataLabels=="value"){S=this.dataLabelFormatString||"%d";C=e.jqplot.sprintf(S,this.data[Q][1])}else{if(this.dataLabels=="percent"){S=this.dataLabelFormatString||"%d%%";C=e.jqplot.sprintf(S,V[Q][2]*100)}else{if(this.dataLabels.constructor==Array){S=this.dataLabelFormatString||"%s";C=e.jqplot.sprintf(S,this.dataLabels[Q])}}}}var n=this._innerRadius+this._thickness*this.dataLabelPositionFactor+this.sliceMargin+this.dataLabelNudge;var F=this._center[0]+Math.cos(U)*n+this.canvas._offsets.left;var E=this._center[1]+Math.sin(U)*n+this.canvas._offsets.top;var D=e(''+C+"").insertBefore(P.eventCanvas._elem);F-=D.width()/2;E-=D.height()/2;F=Math.round(F);E=Math.round(E);D.css({left:F,top:E})}}};e.jqplot.DonutAxisRenderer=function(){e.jqplot.LinearAxisRenderer.call(this)};e.jqplot.DonutAxisRenderer.prototype=new e.jqplot.LinearAxisRenderer();e.jqplot.DonutAxisRenderer.prototype.constructor=e.jqplot.DonutAxisRenderer;e.jqplot.DonutAxisRenderer.prototype.init=function(n){this.tickRenderer=e.jqplot.DonutTickRenderer;e.extend(true,this,n);this._dataBounds={min:0,max:100};this.min=0;this.max=100;this.showTicks=false;this.ticks=[];this.showMark=false;this.show=false};e.jqplot.DonutLegendRenderer=function(){e.jqplot.TableLegendRenderer.call(this)};e.jqplot.DonutLegendRenderer.prototype=new e.jqplot.TableLegendRenderer();e.jqplot.DonutLegendRenderer.prototype.constructor=e.jqplot.DonutLegendRenderer;e.jqplot.DonutLegendRenderer.prototype.init=function(n){this.numberRows=null;this.numberColumns=null;e.extend(true,this,n)};e.jqplot.DonutLegendRenderer.prototype.draw=function(){var q=this;if(this.show){var y=this._series;var B="position:absolute;";B+=(this.background)?"background:"+this.background+";":"";B+=(this.border)?"border:"+this.border+";":"";B+=(this.fontSize)?"font-size:"+this.fontSize+";":"";B+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";B+=(this.textColor)?"color:"+this.textColor+";":"";B+=(this.marginTop!=null)?"margin-top:"+this.marginTop+";":"";B+=(this.marginBottom!=null)?"margin-bottom:"+this.marginBottom+";":"";B+=(this.marginLeft!=null)?"margin-left:"+this.marginLeft+";":"";B+=(this.marginRight!=null)?"margin-right:"+this.marginRight+";":"";this._elem=e('
');var F=false,x=false,n,v;var z=y[0];var o=new e.jqplot.ColorGenerator(z.seriesColors);if(z.show){var G=z.data;if(this.numberRows){n=this.numberRows;if(!this.numberColumns){v=Math.ceil(G.length/n)}else{v=this.numberColumns}}else{if(this.numberColumns){v=this.numberColumns;n=Math.ceil(G.length/this.numberColumns)}else{n=G.length;v=1}}var E,D,p,t,r,u,w,C;var A=0;for(E=0;E').prependTo(this._elem)}else{p=e('').appendTo(this._elem)}for(D=0;D0){F=true}else{F=false}}else{if(E==n-1){F=false}else{F=true}}w=(F)?this.rowSpacing:"0";t=e('
');r=e('');if(this.escapeHtml){r.text(u)}else{r.html(u)}if(x){r.prependTo(p);t.prependTo(p)}else{t.appendTo(p);r.appendTo(p)}F=true}A++}}}}return this._elem};function c(r,q,o){o=o||{};o.axesDefaults=o.axesDefaults||{};o.legend=o.legend||{};o.seriesDefaults=o.seriesDefaults||{};var n=false;if(o.seriesDefaults.renderer==e.jqplot.DonutRenderer){n=true}else{if(o.series){for(var p=0;p=0.6)?l[3]*0.6:l[3]*(2-l[3]);m.color="rgba("+o[0]+","+o[1]+","+o[2]+","+k+")"}i.color=m.color;i.init();var g=(p.pointIndex>0)?p.pointIndex-1:0;var j=p.pointIndex+2;m._gridData=q.gridData.slice(g,j)}function e(o,l,h,t,m){if(m.plugins.dragable.dragCanvas.isDragging){var u=m.plugins.dragable.dragCanvas;var i=u._neighbor;var w=m.series[i.seriesIndex];var k=w.plugins.dragable;var r=w.gridData;var p=(k.constrainTo=="y")?i.gridData[0]:l.x;var n=(k.constrainTo=="x")?i.gridData[1]:l.y;var g=w._xaxis.series_p2u(p);var q=w._yaxis.series_p2u(n);var v=u._ctx;v.clearRect(0,0,v.canvas.width,v.canvas.height);if(i.pointIndex>0){k._gridData[1]=[p,n]}else{k._gridData[0]=[p,n]}m.series[i.seriesIndex].draw(u._ctx,{gridData:k._gridData,shadow:false,preventJqPlotSeriesDrawTrigger:true,color:k.color,markerOptions:{color:k.color,shadow:false},trendline:{show:false}});m.target.trigger("jqplotSeriesPointChange",[i.seriesIndex,i.pointIndex,[g,q],[p,n]])}else{if(t!=null){var j=m.series[t.seriesIndex];if(j.isDragable){var u=m.plugins.dragable.dragCanvas;if(!u.isOver){u._cursors.push(o.target.style.cursor);o.target.style.cursor="pointer"}u.isOver=true}}else{if(t==null){var u=m.plugins.dragable.dragCanvas;if(u.isOver){o.target.style.cursor=u._cursors.pop();u.isOver=false}}}}}function c(k,i,g,l,j){var m=j.plugins.dragable.dragCanvas;m._cursors.push(k.target.style.cursor);if(l!=null){var o=j.series[l.seriesIndex];var h=o.plugins.dragable;if(o.isDragable&&!m.isDragging){m._neighbor=l;m.isDragging=true;f(j,l);h.markerRenderer.draw(o.gridData[l.pointIndex][0],o.gridData[l.pointIndex][1],m._ctx);k.target.style.cursor="move";j.target.trigger("jqplotDragStart",[l.seriesIndex,l.pointIndex,i,g])}}else{var n=m._ctx;n.clearRect(0,0,n.canvas.width,n.canvas.height);m.isDragging=false}}function a(m,j,g,o,k){if(k.plugins.dragable.dragCanvas.isDragging){var p=k.plugins.dragable.dragCanvas;var q=p._ctx;q.clearRect(0,0,q.canvas.width,q.canvas.height);p.isDragging=false;var h=p._neighbor;var r=k.series[h.seriesIndex];var i=r.plugins.dragable;var n=(i.constrainTo=="y")?h.data[0]:g[r.xaxis];var l=(i.constrainTo=="x")?h.data[1]:g[r.yaxis];r.data[h.pointIndex][0]=n;r.data[h.pointIndex][1]=l;k.drawSeries({preventJqPlotSeriesDrawTrigger:true},h.seriesIndex);p._neighbor=null;m.target.style.cursor=p._cursors.pop();k.target.trigger("jqplotDragStop",[j,g])}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js index dc40b3c4..968e77cd 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.enhancedLegendRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(c){c.jqplot.EnhancedLegendRenderer=function(){c.jqplot.TableLegendRenderer.call(this)};c.jqplot.EnhancedLegendRenderer.prototype=new c.jqplot.TableLegendRenderer();c.jqplot.EnhancedLegendRenderer.prototype.constructor=c.jqplot.EnhancedLegendRenderer;c.jqplot.EnhancedLegendRenderer.prototype.init=function(d){this.numberRows=null;this.numberColumns=null;this.seriesToggle="normal";this.seriesToggleReplot=false;this.disableIEFading=true;c.extend(true,this,d);if(this.seriesToggle){c.jqplot.postDrawHooks.push(b)}};c.jqplot.EnhancedLegendRenderer.prototype.draw=function(m,y){var f=this;if(this.show){var r=this._series;var u;var w="position:absolute;";w+=(this.background)?"background:"+this.background+";":"";w+=(this.border)?"border:"+this.border+";":"";w+=(this.fontSize)?"font-size:"+this.fontSize+";":"";w+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";w+=(this.textColor)?"color:"+this.textColor+";":"";w+=(this.marginTop!=null)?"margin-top:"+this.marginTop+";":"";w+=(this.marginBottom!=null)?"margin-bottom:"+this.marginBottom+";":"";w+=(this.marginLeft!=null)?"margin-left:"+this.marginLeft+";":"";w+=(this.marginRight!=null)?"margin-right:"+this.marginRight+";":"";this._elem=c('
');if(this.seriesToggle){this._elem.css("z-index","3")}var C=false,q=false,d,o;if(this.numberRows){d=this.numberRows;if(!this.numberColumns){o=Math.ceil(r.length/d)}else{o=this.numberColumns}}else{if(this.numberColumns){o=this.numberColumns;d=Math.ceil(r.length/this.numberColumns)}else{d=r.length;o=1}}var B,z,e,l,k,n,p,t,h,g;var v=0;for(B=r.length-1;B>=0;B--){if(o==1&&r[B]._stack||r[B].renderer.constructor==c.jqplot.BezierCurveRenderer){q=true}}for(B=0;B0){C=true}else{C=false}}else{if(B==d-1){C=false}else{C=true}}p=(C)?this.rowSpacing:"0";l=c(document.createElement("td"));l.addClass("jqplot-table-legend jqplot-table-legend-swatch");l.css({textAlign:"center",paddingTop:p});h=c(document.createElement("div"));h.addClass("jqplot-table-legend-swatch-outline");g=c(document.createElement("div"));g.addClass("jqplot-table-legend-swatch");g.css({backgroundColor:x,borderColor:x});l.append(h.append(g));k=c(document.createElement("td"));k.addClass("jqplot-table-legend jqplot-table-legend-label");k.css("paddingTop",p);if(this.escapeHtml){k.text(n)}else{k.html(n)}if(q){if(this.showLabels){k.prependTo(e)}if(this.showSwatches){l.prependTo(e)}}else{if(this.showSwatches){l.appendTo(e)}if(this.showLabels){k.appendTo(e)}}if(this.seriesToggle){var A;if(typeof(this.seriesToggle)==="string"||typeof(this.seriesToggle)==="number"){if(!c.jqplot.use_excanvas||!this.disableIEFading){A=this.seriesToggle}}if(this.showSwatches){l.bind("click",{series:u,speed:A,plot:y,replot:this.seriesToggleReplot},a);l.addClass("jqplot-seriesToggle")}if(this.showLabels){k.bind("click",{series:u,speed:A,plot:y,replot:this.seriesToggleReplot},a);k.addClass("jqplot-seriesToggle")}if(!u.show&&u.showLabel){l.addClass("jqplot-series-hidden");k.addClass("jqplot-series-hidden")}}C=true}}v++}l=k=h=g=null}}return this._elem};var a=function(j){var i=j.data,m=i.series,k=i.replot,h=i.plot,f=i.speed,l=m.index,g=false;if(m.canvas._elem.is(":hidden")||!m.show){g=true}var e=function(){if(k){var n={};if(c.isPlainObject(k)){c.extend(true,n,k)}h.replot(n);if(g&&f){var d=h.series[l];if(d.shadowCanvas._elem){d.shadowCanvas._elem.hide().fadeIn(f)}d.canvas._elem.hide().fadeIn(f);d.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+d.index).hide().fadeIn(f)}}else{var d=h.series[l];if(d.canvas._elem.is(":hidden")||!d.show){if(typeof h.options.legend.showSwatches==="undefined"||h.options.legend.showSwatches===true){h.legend._elem.find("td").eq(l*2).addClass("jqplot-series-hidden")}if(typeof h.options.legend.showLabels==="undefined"||h.options.legend.showLabels===true){h.legend._elem.find("td").eq((l*2)+1).addClass("jqplot-series-hidden")}}else{if(typeof h.options.legend.showSwatches==="undefined"||h.options.legend.showSwatches===true){h.legend._elem.find("td").eq(l*2).removeClass("jqplot-series-hidden")}if(typeof h.options.legend.showLabels==="undefined"||h.options.legend.showLabels===true){h.legend._elem.find("td").eq((l*2)+1).removeClass("jqplot-series-hidden")}}}};m.toggleDisplay(j,e)};var b=function(){if(this.legend.renderer.constructor==c.jqplot.EnhancedLegendRenderer&&this.legend.seriesToggle){var d=this.legend._elem.detach();this.eventCanvas._elem.after(d)}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.funnelRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.funnelRenderer.min.js index 8a705dea..af0dabac 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.funnelRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.funnelRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(e){e.jqplot.FunnelRenderer=function(){e.jqplot.LineRenderer.call(this)};e.jqplot.FunnelRenderer.prototype=new e.jqplot.LineRenderer();e.jqplot.FunnelRenderer.prototype.constructor=e.jqplot.FunnelRenderer;e.jqplot.FunnelRenderer.prototype.init=function(p,t){this.padding={top:20,right:20,bottom:20,left:20};this.sectionMargin=6;this.fill=true;this.shadowOffset=2;this.shadowAlpha=0.07;this.shadowDepth=5;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.widthRatio=0.2;this.lineWidth=2;this.dataLabels="percent";this.showDataLabels=false;this.dataLabelFormatString=null;this.dataLabelThreshold=3;this._type="funnel";this.tickRenderer=e.jqplot.FunnelTickRenderer;if(p.highlightMouseDown&&p.highlightMouseOver==null){p.highlightMouseOver=false}e.extend(true,this,p);this._highlightedPoint=null;this._bases=[];this._atot;this._areas=[];this._lengths=[];this._angle;this._dataIndices=[];this._unorderedData=e.extend(true,[],this.data);var o=e.extend(true,[],this.data);for(var r=0;r570)?m[n]*0.8:m[n]+0.4*(255-m[n]);m[n]=parseInt(m[n],10)}this.highlightColors.push("rgb("+m[0]+","+m[1]+","+m[2]+")")}}t.postParseOptionsHooks.addOnce(k);t.postInitHooks.addOnce(g);t.eventListenerHooks.addOnce("jqplotMouseMove",a);t.eventListenerHooks.addOnce("jqplotMouseDown",b);t.eventListenerHooks.addOnce("jqplotMouseUp",j);t.eventListenerHooks.addOnce("jqplotClick",f);t.eventListenerHooks.addOnce("jqplotRightClick",l);t.postDrawHooks.addOnce(h)};e.jqplot.FunnelRenderer.prototype.setGridData=function(o){var n=0;var p=[];for(var m=0;mthis._lengths[Y]*n&&W<100){this._lengths[Y]=this._areas[Y]/(this._bases[Y]-this._lengths[Y]*Math.tan(this._angle));aa=Math.abs(this._lengths[Y]-E);this._bases[Y+1]=this._bases[Y]-(2*this._lengths[Y]*Math.tan(this._angle));E=this._lengths[Y];W++}Q+=this._lengths[Y]}this._vertices=new Array(B.length);var ae=[t,F],ad=[t+this._bases[0],F],ac=[t+(this._bases[0]-this._bases[this._bases.length-1])/2,F+this._length],ab=[ac[0]+this._bases[this._bases.length-1],ac[1]];function V(ag){var x=(ae[1]-ac[1])/(ae[0]-ac[0]);var v=ae[1]-x*ae[0];var ah=ag+ae[1];return[(ah-v)/x,ah]}function D(ag){var x=(ad[1]-ab[1])/(ad[0]-ab[0]);var v=ad[1]-x*ad[0];var ah=ag+ad[1];return[(ah-v)/x,ah]}var T=w,S=u;var Z=0,m=0;for(Y=0;Y0&&Y0&&Y=this.dataLabelThreshold){var K,X;if(this.dataLabels=="label"){K=this.dataLabelFormatString||"%s";X=e.jqplot.sprintf(K,B[Y][0])}else{if(this.dataLabels=="value"){K=this.dataLabelFormatString||"%d";X=e.jqplot.sprintf(K,this.data[Y][1])}else{if(this.dataLabels=="percent"){K=this.dataLabelFormatString||"%d%%";X=e.jqplot.sprintf(K,B[Y][1]*100)}else{if(this.dataLabels.constructor==Array){K=this.dataLabelFormatString||"%s";X=e.jqplot.sprintf(K,this.dataLabels[this._dataIndices[Y]])}}}}var s=(this._radius)*this.dataLabelPositionFactor+this.sliceMargin+this.dataLabelNudge;var T=(U[0][0]+U[1][0])/2+this.canvas._offsets.left;var S=(U[1][1]+U[2][1])/2+this.canvas._offsets.top;var z=e(''+X+"").insertBefore(p.eventCanvas._elem);T-=z.width()/2;S-=z.height()/2;T=Math.round(T);S=Math.round(S);z.css({left:T,top:S})}}};e.jqplot.FunnelAxisRenderer=function(){e.jqplot.LinearAxisRenderer.call(this)};e.jqplot.FunnelAxisRenderer.prototype=new e.jqplot.LinearAxisRenderer();e.jqplot.FunnelAxisRenderer.prototype.constructor=e.jqplot.FunnelAxisRenderer;e.jqplot.FunnelAxisRenderer.prototype.init=function(m){this.tickRenderer=e.jqplot.FunnelTickRenderer;e.extend(true,this,m);this._dataBounds={min:0,max:100};this.min=0;this.max=100;this.showTicks=false;this.ticks=[];this.showMark=false;this.show=false};e.jqplot.FunnelLegendRenderer=function(){e.jqplot.TableLegendRenderer.call(this)};e.jqplot.FunnelLegendRenderer.prototype=new e.jqplot.TableLegendRenderer();e.jqplot.FunnelLegendRenderer.prototype.constructor=e.jqplot.FunnelLegendRenderer;e.jqplot.FunnelLegendRenderer.prototype.init=function(m){this.numberRows=null;this.numberColumns=null;e.extend(true,this,m)};e.jqplot.FunnelLegendRenderer.prototype.draw=function(){var p=this;if(this.show){var x=this._series;var A="position:absolute;";A+=(this.background)?"background:"+this.background+";":"";A+=(this.border)?"border:"+this.border+";":"";A+=(this.fontSize)?"font-size:"+this.fontSize+";":"";A+=(this.fontFamily)?"font-family:"+this.fontFamily+";":"";A+=(this.textColor)?"color:"+this.textColor+";":"";A+=(this.marginTop!=null)?"margin-top:"+this.marginTop+";":"";A+=(this.marginBottom!=null)?"margin-bottom:"+this.marginBottom+";":"";A+=(this.marginLeft!=null)?"margin-left:"+this.marginLeft+";":"";A+=(this.marginRight!=null)?"margin-right:"+this.marginRight+";":"";this._elem=e('
');var E=false,w=false,m,u;var y=x[0];var n=new e.jqplot.ColorGenerator(y.seriesColors);if(y.show){var F=y.data;if(this.numberRows){m=this.numberRows;if(!this.numberColumns){u=Math.ceil(F.length/m)}else{u=this.numberColumns}}else{if(this.numberColumns){u=this.numberColumns;m=Math.ceil(F.length/this.numberColumns)}else{m=F.length;u=1}}var D,C,o,r,q,t,v,B;var z=0;for(D=0;D').prependTo(this._elem)}else{o=e('').appendTo(this._elem)}for(C=0;C0){E=true}else{E=false}}else{if(D==m-1){E=false}else{E=true}}v=(E)?this.rowSpacing:"0";r=e('
');q=e('');if(this.escapeHtml){q.text(t)}else{q.html(t)}if(w){q.prependTo(o);r.prependTo(o)}else{r.appendTo(o);q.appendTo(o)}E=true}z++}}}}return this._elem};function c(q,p,n){n=n||{};n.axesDefaults=n.axesDefaults||{};n.legend=n.legend||{};n.seriesDefaults=n.seriesDefaults||{};var m=false;if(n.seriesDefaults.renderer==e.jqplot.FunnelRenderer){m=true}else{if(n.series){for(var o=0;o=0.6)?l[3]*0.6:l[3]*(2-l[3]);i.color="rgba("+n[0]+","+n[1]+","+n[2]+","+k+")";i.init();i.draw(p.gridData[o.pointIndex][0],p.gridData[o.pointIndex][1],j.highlightCanvas._ctx)}function g(A,q,m){var k=A.plugins.highlighter;var D=k._tooltipElem;var r=q.highlighter||{};var t=d.extend(true,{},k,r);if(t.useAxesFormatters){var w=q._xaxis._ticks[0].formatter;var h=q._yaxis._ticks[0].formatter;var E=q._xaxis._ticks[0].formatString;var s=q._yaxis._ticks[0].formatString;var z;var u=w(E,m.data[0]);var l=[];for(var B=1;B140){h=Math.round(Math.log(this.max/this.min)/Math.log(this.base)+1);if(h<2){h=2}if(C===0){var o=b/(h-1);if(o<100){C=0}else{if(o<190){C=1}else{if(o<250){C=3}else{if(o<600){C=4}else{C=9}}}}}}else{h=2;if(C===0){C=1}C=0}}else{h=this.numberTicks}if(E>=0&&C!==3){this._autoFormatString="%d"}else{if(E<=0&&C===3){var o=-(E-1);this._autoFormatString="%."+Math.abs(E-1)+"f"}else{if(E<0){var o=-E;this._autoFormatString="%."+Math.abs(E)+"f"}else{this._autoFormatString="%d"}}}var O,H,z,p,n,k;for(var K=0;K=0;J--){z=p-k*(J+1);H=new this.tickRenderer(this.tickOptions);if(this._overrideFormatString&&this._autoFormatString!=""){H.formatString=this._autoFormatString}if(!this.showTicks){H.showLabel=false;H.showMark=false}else{if(!this.showTickMarks){H.showMark=false}}H.setTick(z,this.name);this._ticks.push(H)}}}}else{if(this.min!=null&&this.max!=null){var y=a.extend(true,{},this.tickOptions,{name:this.name,value:null});var I,e;if(this.numberTicks==null&&this.tickInterval==null){var D=Math.max(b,g+1);var L=Math.ceil((D-g)/35+1);var B=a.jqplot.LinearTickGenerator.bestConstrainedInterval(this.min,this.max,L);this._autoFormatString=B[3];I=B[2];e=B[4];for(var K=0;K0){c=-n._textRenderer.height*Math.cos(-n._textRenderer.angle)/2}else{c=-n.getHeight()+n._textRenderer.height*Math.cos(n._textRenderer.angle)/2}break;case"middle":c=-n.getHeight()/2;break;default:c=-n.getHeight()/2;break}}else{c=-n.getHeight()/2}var z=this.u2p(n.value)+c+"px";n._elem.css("top",z);n.pack()}}if(o){var x=this._label._elem.outerHeight(true);this._label._elem.css("top",m-g/2-x/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px")}else{this._label._elem.css("right","0px")}this._label.pack()}}}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js index 420dd13d..7969de73 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoAxisRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(a){a.jqplot.MekkoAxisRenderer=function(){};a.jqplot.MekkoAxisRenderer.prototype.init=function(c){this.tickMode;this.barLabelRenderer=a.jqplot.AxisLabelRenderer;this.barLabels=this.barLabels||[];this.barLabelOptions={};this.tickOptions=a.extend(true,{showGridline:false},this.tickOptions);this._barLabels=[];a.extend(true,this,c);if(this.name=="yaxis"){this.tickOptions.formatString=this.tickOptions.formatString||"%d%"}var b=this._dataBounds;b.min=0;if(this.name=="yaxis"||this.name=="y2axis"){b.max=100;this.tickMode="even"}else{if(this.name=="xaxis"){this.tickMode=(this.tickMode==null)?"bar":this.tickMode;for(var d=0;dk){k=d}}}if(b){c=this._label._elem.outerWidth(true);j=this._label._elem.outerHeight(true)}if(this.name=="xaxis"){k=k+j;this._elem.css({height:k+"px",left:"0px",bottom:"0px"})}else{if(this.name=="x2axis"){k=k+j;this._elem.css({height:k+"px",left:"0px",top:"0px"})}else{if(this.name=="yaxis"){k=k+c;this._elem.css({width:k+"px",left:"0px",top:"0px"});if(b&&this._label.constructor==a.jqplot.AxisLabelRenderer){this._label._elem.css("width",c+"px")}}else{k=k+c;this._elem.css({width:k+"px",right:"0px",top:"0px"});if(b&&this._label.constructor==a.jqplot.AxisLabelRenderer){this._label._elem.css("width",c+"px")}}}}}};a.jqplot.MekkoAxisRenderer.prototype.createTicks=function(){var z=this._ticks;var w=this.ticks;var B=this.name;var y=this._dataBounds;var p,x;var n,r;var d,c;var h,b,s,q;if(w.length){for(s=0;s0){g=Math.max(Math.log(n)/Math.LN10,0.05)}n-=g;r+=g}var k=r-n;var m,o;var v,l,u;var f=[3,5,6,11,21];if(this.name=="yaxis"||this.name=="y2axis"){this.min=0;this.max=100;if(!this.numberTicks){if(this.tickInterval){this.numberTicks=3+Math.ceil(k/this.tickInterval)}else{v=2+Math.ceil((p-(this.tickSpacing-1))/this.tickSpacing);for(s=0;s1){l=u;continue}else{if(u<1){if(Math.abs(l-1)v){h=new this.tickRenderer(this.tickOptions);if(!this.showTicks){h.showLabel=false;h.showMark=false}else{if(!this.showTickMarks){h.showMark=false}}h.setTick(this.max,this.name);this._ticks.push(h)}}else{if(this.tickMode=="even"){this.min=0;this.max=this.max||y.max;var A=2+Math.ceil((p-(this.tickSpacing-1))/this.tickSpacing);k=this.max-this.min;this.numberTicks=A;this.tickInterval=k/(this.numberTicks-1);for(s=0;s0){c=-n._textRenderer.height*Math.cos(-n._textRenderer.angle)/2}else{c=-n.getHeight()+n._textRenderer.height*Math.cos(n._textRenderer.angle)/2}break;case"middle":c=-n.getHeight()/2;break;default:c=-n.getHeight()/2;break}}else{c=-n.getHeight()/2}var D=this.u2p(n.value)+c+"px";n._elem.css("top",D);n.pack()}}if(o){var z=this._label._elem.outerHeight(true);this._label._elem.css("top",m-f/2-z/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px")}else{this._label._elem.css("right","0px")}this._label.pack()}}}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoRenderer.min.js index cece3cd7..18dc3a12 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.mekkoRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(b){b.jqplot.MekkoRenderer=function(){this.shapeRenderer=new b.jqplot.ShapeRenderer();this.borderColor=null;this.showBorders=true};b.jqplot.MekkoRenderer.prototype.init=function(c,e){this.fill=false;this.fillRect=true;this.strokeRect=true;this.shadow=false;this._xwidth=0;this._xstart=0;b.extend(true,this.renderer,c);var d={lineJoin:"miter",lineCap:"butt",isarc:false,fillRect:this.fillRect,strokeRect:this.strokeRect};this.renderer.shapeRenderer.init(d);e.axes.x2axis._series.push(this);this._type="mekko"};b.jqplot.MekkoRenderer.prototype.setGridData=function(h){var e=this._xaxis.series_u2p;var c=this._yaxis.series_u2p;var g=this._plotData;this.gridData=[];this._xwidth=e(this._sumy)-e(0);if(this.index>0){this._xstart=h.series[this.index-1]._xstart+h.series[this.index-1]._xwidth}var l=this.canvas.getHeight();var d=0;var k;var j;for(var f=0;f');var w=false,n=true,c,l;var p=o[0];var d=new b.jqplot.ColorGenerator(p.seriesColors);if(p.show){var x=p.data;if(this.numberRows){c=this.numberRows;if(!this.numberColumns){l=Math.ceil(x.length/c)}else{l=this.numberColumns}}else{if(this.numberColumns){l=this.numberColumns;c=Math.ceil(x.length/this.numberColumns)}else{c=x.length;l=1}}var v,u,e,h,g,k,m,t;var q=0;for(v=0;v').prependTo(this._elem)}else{e=b('').appendTo(this._elem)}for(u=0;u0){w=true}else{w=false}}else{if(v==c-1){w=false}else{w=true}}m=(w)?this.rowSpacing:"0";h=b('
');g=b('');if(this.escapeHtml){g.text(k)}else{g.html(k)}if(n){g.prependTo(e);h.prependTo(e)}else{h.appendTo(e);g.appendTo(e)}w=true}q++}}e=null;h=null;g=null}}return this._elem};b.jqplot.MekkoLegendRenderer.prototype.pack=function(f){if(this.show){var e={_top:f.top,_left:f.left,_right:f.right,_bottom:this._plotDimensions.height-f.bottom};if(this.placement=="insideGrid"){switch(this.location){case"nw":var d=e._left+this.xoffset;var c=e._top+this.yoffset;this._elem.css("left",d);this._elem.css("top",c);break;case"n":var d=(f.left+(this._plotDimensions.width-f.right))/2-this.getWidth()/2;var c=e._top+this.yoffset;this._elem.css("left",d);this._elem.css("top",c);break;case"ne":var d=f.right+this.xoffset;var c=e._top+this.yoffset;this._elem.css({right:d,top:c});break;case"e":var d=f.right+this.xoffset;var c=(f.top+(this._plotDimensions.height-f.bottom))/2-this.getHeight()/2;this._elem.css({right:d,top:c});break;case"se":var d=f.right+this.xoffset;var c=f.bottom+this.yoffset;this._elem.css({right:d,bottom:c});break;case"s":var d=(f.left+(this._plotDimensions.width-f.right))/2-this.getWidth()/2;var c=f.bottom+this.yoffset;this._elem.css({left:d,bottom:c});break;case"sw":var d=e._left+this.xoffset;var c=f.bottom+this.yoffset;this._elem.css({left:d,bottom:c});break;case"w":var d=e._left+this.xoffset;var c=(f.top+(this._plotDimensions.height-f.bottom))/2-this.getHeight()/2;this._elem.css({left:d,top:c});break;default:var d=e._right-this.xoffset;var c=e._bottom+this.yoffset;this._elem.css({right:d,bottom:c});break}}else{switch(this.location){case"nw":var d=this._plotDimensions.width-e._left+this.xoffset;var c=e._top+this.yoffset;this._elem.css("right",d);this._elem.css("top",c);break;case"n":var d=(f.left+(this._plotDimensions.width-f.right))/2-this.getWidth()/2;var c=this._plotDimensions.height-e._top+this.yoffset;this._elem.css("left",d);this._elem.css("bottom",c);break;case"ne":var d=this._plotDimensions.width-f.right+this.xoffset;var c=e._top+this.yoffset;this._elem.css({left:d,top:c});break;case"e":var d=this._plotDimensions.width-f.right+this.xoffset;var c=(f.top+(this._plotDimensions.height-f.bottom))/2-this.getHeight()/2;this._elem.css({left:d,top:c});break;case"se":var d=this._plotDimensions.width-f.right+this.xoffset;var c=f.bottom+this.yoffset;this._elem.css({left:d,bottom:c});break;case"s":var d=(f.left+(this._plotDimensions.width-f.right))/2-this.getWidth()/2;var c=this._plotDimensions.height-f.bottom+this.yoffset;this._elem.css({left:d,top:c});break;case"sw":var d=this._plotDimensions.width-e._left+this.xoffset;var c=f.bottom+this.yoffset;this._elem.css({right:d,bottom:c});break;case"w":var d=this._plotDimensions.width-e._left+this.xoffset;var c=(f.top+(this._plotDimensions.height-f.bottom))/2-this.getHeight()/2;this._elem.css({right:d,top:c});break;default:var d=e._right-this.xoffset;var c=e._bottom+this.yoffset;this._elem.css({right:d,bottom:c});break}}}};function a(g,f,d){d=d||{};d.axesDefaults=d.axesDefaults||{};d.legend=d.legend||{};d.seriesDefaults=d.seriesDefaults||{};var c=false;if(d.seriesDefaults.renderer==b.jqplot.MekkoRenderer){c=true}else{if(d.series){for(var e=0;e=this.data[0][1]){this.max=this.intervals[this.intervals.length-1][0];this.setmax=false}}else{this.setmax=false}}else{this.min=(this.min==null)?0:this.min;this.setmin=false;if(this.max==null){this.max=this.data[0][1]*1.25;this.setmax=true}else{this.setmax=false}}}};c.jqplot.MeterGaugeRenderer.prototype.setGridData=function(j){var f=[];var k=[];var e=this.startAngle;for(var h=0;h0){f[h]+=f[h-1]}}var g=Math.PI*2/f[f.length-1];for(var h=0;h0){f[h]+=f[h-1]}}var g=Math.PI*2/f[f.length-1];for(var h=0;h=0;h--){e=f/(j[h]*Math.pow(10,g));if(e==4||e==5){return e-1}}return null}c.jqplot.MeterGaugeRenderer.prototype.draw=function(X,aC,ap){var aa;var aM=(ap!=undefined)?ap:{};var ai=0;var ah=0;var at=1;if(ap.legendInfo&&ap.legendInfo.placement=="inside"){var aI=ap.legendInfo;switch(aI.location){case"nw":ai=aI.width+aI.xoffset;break;case"w":ai=aI.width+aI.xoffset;break;case"sw":ai=aI.width+aI.xoffset;break;case"ne":ai=aI.width+aI.xoffset;at=-1;break;case"e":ai=aI.width+aI.xoffset;at=-1;break;case"se":ai=aI.width+aI.xoffset;at=-1;break;case"n":ah=aI.height+aI.yoffset;break;case"s":ah=aI.height+aI.yoffset;at=-1;break;default:break}}if(this.label){this._labelElem=c('
'+this.label+"
");this.canvas._elem.after(this._labelElem)}var m=(aM.shadow!=undefined)?aM.shadow:this.shadow;var N=(aM.showLine!=undefined)?aM.showLine:this.showLine;var I=(aM.fill!=undefined)?aM.fill:this.fill;var K=X.canvas.width;var S=X.canvas.height;if(this.padding==null){this.padding=Math.round(Math.min(K,S)/30)}var Q=K-ai-2*this.padding;var ab=S-ah-2*this.padding;if(this.labelPosition=="bottom"&&this.label){ab-=this._labelElem.outerHeight(true)}var L=Math.min(Q,ab);var ad=L;if(!this.diameter){if(this.semiCircular){if(Q>=2*ab){if(!this.ringWidth){this.ringWidth=2*ab/35}this.needleThickness=this.needleThickness||2+Math.pow(this.ringWidth,0.8);this.innerPad=this.ringWidth/2+this.needleThickness/2+this.needlePad;this.diameter=2*(ab-2*this.innerPad)}else{if(!this.ringWidth){this.ringWidth=Q/35}this.needleThickness=this.needleThickness||2+Math.pow(this.ringWidth,0.8);this.innerPad=this.ringWidth/2+this.needleThickness/2+this.needlePad;this.diameter=Q-2*this.innerPad-this.ringWidth-this.padding}this._center=[(K-at*ai)/2+at*ai,(S+at*ah-this.padding-this.ringWidth-this.innerPad)]}else{if(!this.ringWidth){this.ringWidth=ad/35}this.needleThickness=this.needleThickness||2+Math.pow(this.ringWidth,0.8);this.innerPad=0;this.diameter=ad-this.ringWidth;this._center=[(K-at*ai)/2+at*ai,(S-at*ah)/2+at*ah]}if(this._labelElem&&this.labelPosition=="bottom"){this._center[1]-=this._labelElem.outerHeight(true)}}this._radius=this.diameter/2;this.tickSpacing=6000/this.diameter;if(!this.hubRadius){this.hubRadius=this.diameter/18}this.shadowOffset=0.5+this.ringWidth/9;this.shadowWidth=this.ringWidth*1;this.tickPadding=3+Math.pow(this.diameter/20,0.7);this.tickOuterRadius=this._radius-this.ringWidth/2-this.tickPadding;this.tickLength=(this.showTicks)?this._radius/13:0;if(this.ticks.length==0){var A=this.max,aL=this.min,q=this.setmax,aG=this.setmin,au=(A-aL)*this.tickSpacing/this.span;var aw=Math.floor(parseFloat((Math.log(au)/Math.log(10)).toFixed(11)));var an=(au/Math.pow(10,aw));(an>2&&an<=2.5)?an=2.5:an=Math.ceil(an);var T=this.tickPositions;var aA,ak;for(aa=0;aa0)?aL-aL%au:aL-aL%au-au;if(!this.forceZero){var D=Math.min(aL-aP,0.8*au);var o=Math.floor(D/T[aA]);if(o>1){aP=aP+T[aA]*(o-1);if(parseInt(aP,10)!=aP&&parseInt(aP-T[aA],10)==aP-T[aA]){aP=aP-T[aA]}}}if(aL==aP){aL-=au}else{if(aL-aP>0.23*au){aL=aP}else{aL=aP-au;ak+=1}}ak+=1;var E=aL+(ak-1)*au;if(A>=E){E+=au;ak+=1}if(E-A<0.23*au){E+=au;ak+=1}this.max=A=E;this.min=aL;this.tickInterval=au;this.numberTicks=ak;var O;for(aa=0;aa=E){A=E+au;ak+=1}else{A=E}this.tickInterval=this.tickInterval||au;this.numberTicks=this.numberTicks||ak;var O;for(aa=0;aa1){var aJ=String(P);if(aJ.search(/\./)==-1){var aF=aJ.search(/0+$/);av=(aF>0)?aJ.length-aF-1:0}}M=P/Math.pow(10,av);for(aa=0;aa'+this.ticks[aa][1]+"");this.canvas._elem.after(J);aO=J.outerWidth(true);g=J.outerHeight(true);W=this._tickPoints[aa][0]-aO*(this._tickPoints[aa][2]-Math.PI)/Math.PI-an*Math.cos(this._tickPoints[aa][2]);T=this._tickPoints[aa][1]-g/2+g/2*Math.pow(Math.abs((Math.sin(this._tickPoints[aa][2]))),0.5)+an/3*Math.pow(Math.abs((Math.sin(this._tickPoints[aa][2]))),0.5);J.css({left:W,top:T,color:this.tickColor});G=aO*Math.cos(this._tickPoints[aa][2])+g*Math.sin(Math.PI/2+this._tickPoints[aa][2]/2);n=(G>n)?G:n}}if(this.label&&this.labelPosition=="inside"){var W=this._center[0]+this.canvas._offsets.left;var an=this.tickPadding*(1-1/(this.diameter/80+1));var T=0.5*(this._center[1]+this.canvas._offsets.top-this.hubRadius)+0.5*(this._center[1]+this.canvas._offsets.top-this.tickOuterRadius+this.tickLength+an)+this.labelHeightAdjust;W-=this._labelElem.outerWidth(true)/2;T-=this._labelElem.outerHeight(true)/2;this._labelElem.css({left:W,top:T})}else{if(this.label&&this.labelPosition=="bottom"){var W=this._center[0]+this.canvas._offsets.left-this._labelElem.outerWidth(true)/2;var T=this._center[1]+this.canvas._offsets.top+this.innerPad+this.ringWidth+this.padding+this.labelHeightAdjust;this._labelElem.css({left:W,top:T})}}X.save();var ax=this.intervalInnerRadius||this.hubRadius*1.5;if(this.intervalOuterRadius==null){if(this.showTickLabels){var ag=(this.tickOuterRadius-this.tickLength-this.tickPadding-this.diameter/8)}else{var ag=(this.tickOuterRadius-this.tickLength-this.diameter/16)}}else{var ag=this.intervalOuterRadius}var P=this.max-this.min;var aD=this.intervals[this.intervals.length-1]-this.min;var y,Z,u=this.span*Math.PI/180;for(aa=0;aathis.max+R*3/this.span){ay=this.max+R*3/this.span}if(this.data[0][1]');var f=false,q=false,u,o;var w=p[0];if(w.show){var t=w.data;if(this.numberRows){u=this.numberRows;if(!this.numberColumns){o=Math.ceil(t.length/u)}else{o=this.numberColumns}}else{if(this.numberColumns){o=this.numberColumns;u=Math.ceil(t.length/this.numberColumns)}else{u=t.length;o=1}}var n,m,r,g,e,l,k,h;var v=0;for(n=0;n').prependTo(this._elem)}else{r=c('').appendTo(this._elem)}for(m=0;m0){f=true}else{f=false}}else{if(n==u-1){f=false}else{f=true}}k=(f)?this.rowSpacing:"0";g=c('
');e=c('');if(this.escapeHtml){e.text(l)}else{e.html(l)}if(q){e.prependTo(r);g.prependTo(r)}else{g.appendTo(r);e.appendTo(r)}f=true}v++}}}}return this._elem};function a(j,h,f){f=f||{};f.axesDefaults=f.axesDefaults||{};f.legend=f.legend||{};f.seriesDefaults=f.seriesDefaults||{};f.grid=f.grid||{};var e=false;if(f.seriesDefaults.renderer==c.jqplot.MeterGaugeRenderer){e=true}else{if(f.series){for(var g=0;gb.max||b.max==null){b.max=f[c][1]}}}else{for(var c=0;cb.max||b.max==null){b.max=f[c][2]}}}};a.jqplot.OHLCRenderer.prototype.draw=function(A,N,j){var J=this.data;var v=this._xaxis.min;var z=this._xaxis.max;var l=0;var K=J.length;var p=this._xaxis.series_u2p;var G=this._yaxis.series_u2p;var D,E,f,M,F,n,O,C;var y;var u=this.renderer;var s=(j!=undefined)?j:{};var k=(s.shadow!=undefined)?s.shadow:this.shadow;var B=(s.fill!=undefined)?s.fill:this.fill;var c=(s.fillAndStroke!=undefined)?s.fillAndStroke:this.fillAndStroke;u.bodyWidth=(s.bodyWidth!=undefined)?s.bodyWidth:u.bodyWidth;u.tickLength=(s.tickLength!=undefined)?s.tickLength:u.tickLength;A.save();if(this.show){var m,q,g,Q,t;for(var D=0;Dq){if(u.wickColor){y.color=u.wickColor}else{if(u.downBodyColor){y.color=u.downBodyColor}}f=a.extend(true,{},s,y);u.shapeRenderer.draw(A,[[m,g],[m,q]],f);u.shapeRenderer.draw(A,[[m,t],[m,Q]],f);y={};M=q;F=t-q;if(u.fillDownBody){y.fillRect=true}else{y.strokeRect=true;n=n-this.lineWidth;O=m-n/2}if(u.downBodyColor){y.color=u.downBodyColor;y.fillStyle=u.downBodyColor}C=[O,M,n,F]}else{if(u.wickColor){y.color=u.wickColor}f=a.extend(true,{},s,y);u.shapeRenderer.draw(A,[[m,g],[m,Q]],f);y={};y.fillRect=false;y.strokeRect=false;O=[m-n/2,q];M=[m+n/2,t];n=null;F=null;C=[O,M]}}f=a.extend(true,{},s,y);u.shapeRenderer.draw(A,C,f)}else{E=s.color;if(u.openColor){s.color=u.openColor}if(!u.hlc){u.shapeRenderer.draw(A,[[m-u._tickLength,q],[m,q]],s)}s.color=E;if(u.wickColor){s.color=u.wickColor}u.shapeRenderer.draw(A,[[m,g],[m,Q]],s);s.color=E;if(u.closeColor){s.color=u.closeColor}u.shapeRenderer.draw(A,[[m,t],[m+u._tickLength,t]],s);s.color=E}}}A.restore()};a.jqplot.OHLCRenderer.prototype.drawShadow=function(b,d,c){};a.jqplot.OHLCRenderer.checkOptions=function(d,c,b){if(!b.highlighter){b.highlighter={showMarker:false,tooltipAxes:"y",yvalues:4,formatString:'
date:%s
open:%s
hi:%s
low:%s
close:%s
'}}}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pieRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pieRenderer.min.js index 5f08e619..a09f8f10 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pieRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pieRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(e){e.jqplot.PieRenderer=function(){e.jqplot.LineRenderer.call(this)};e.jqplot.PieRenderer.prototype=new e.jqplot.LineRenderer();e.jqplot.PieRenderer.prototype.constructor=e.jqplot.PieRenderer;e.jqplot.PieRenderer.prototype.init=function(q,u){this.diameter=null;this.padding=20;this.sliceMargin=0;this.fill=true;this.shadowOffset=2;this.shadowAlpha=0.07;this.shadowDepth=5;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.dataLabels="percent";this.showDataLabels=false;this.dataLabelFormatString=null;this.dataLabelThreshold=3;this.dataLabelPositionFactor=0.52;this.dataLabelNudge=2;this.dataLabelCenterOn=true;this.startAngle=0;this.tickRenderer=e.jqplot.PieTickRenderer;this._drawData=true;this._type="pie";if(q.highlightMouseDown&&q.highlightMouseOver==null){q.highlightMouseOver=false}e.extend(true,this,q);if(this.sliceMargin<0){this.sliceMargin=0}this._diameter=null;this._radius=null;this._sliceAngles=[];this._highlightedPoint=null;if(this.highlightColors.length==0){for(var s=0;s570)?o[p]*0.8:o[p]+0.3*(255-o[p]);o[p]=parseInt(o[p],10)}this.highlightColors.push("rgb("+o[0]+","+o[1]+","+o[2]+")")}}this.highlightColorGenerator=new e.jqplot.ColorGenerator(this.highlightColors);u.postParseOptionsHooks.addOnce(m);u.postInitHooks.addOnce(g);u.eventListenerHooks.addOnce("jqplotMouseMove",b);u.eventListenerHooks.addOnce("jqplotMouseDown",a);u.eventListenerHooks.addOnce("jqplotMouseUp",l);u.eventListenerHooks.addOnce("jqplotClick",f);u.eventListenerHooks.addOnce("jqplotRightClick",n);u.postDrawHooks.addOnce(i)};e.jqplot.PieRenderer.prototype.setGridData=function(t){var p=[];var u=[];var o=this.startAngle/180*Math.PI;var s=0;this._drawData=false;for(var r=0;r0){p[r]+=p[r-1]}s+=this.data[r][1]}var q=Math.PI*2/p[p.length-1];for(var r=0;r0){p[r]+=p[r-1]}s+=t[r][1]}var q=Math.PI*2/p[p.length-1];for(var r=0;r0&&s>0.01&&s<6.282){w=parseFloat(p)/2/h(q)}return w}e.jqplot.PieRenderer.prototype.drawSlice=function(B,z,y,u,w){if(this._drawData){var p=this._radius;var A=this.fill;var x=this.lineWidth;var s=this.sliceMargin;if(this.fill==false){s+=this.lineWidth}B.save();B.translate(this._center[0],this._center[1]);var D=j(z,y,this.sliceMargin,this.fill,this.lineWidth);var o=D*Math.cos((z+y)/2);var C=D*Math.sin((z+y)/2);if((y-z)<=Math.PI){p-=D}else{p+=D}B.translate(o,C);if(w){for(var v=0,t=this.shadowDepth;v6.282+this.startAngle){y=6.282+this.startAngle;if(z>y){z=6.281+this.startAngle}}if(z>=y){return}B.beginPath();B.fillStyle=u;B.strokeStyle=u;B.lineWidth=x;B.arc(0,0,r,z,y,false);B.lineTo(0,0);B.closePath();if(A){B.fill()}else{B.stroke()}}};e.jqplot.PieRenderer.prototype.draw=function(B,z,E,o){var W;var H=(E!=undefined)?E:{};var t=0;var s=0;var N=1;var L=new e.jqplot.ColorGenerator(this.seriesColors);if(E.legendInfo&&E.legendInfo.placement=="insideGrid"){var J=E.legendInfo;switch(J.location){case"nw":t=J.width+J.xoffset;break;case"w":t=J.width+J.xoffset;break;case"sw":t=J.width+J.xoffset;break;case"ne":t=J.width+J.xoffset;N=-1;break;case"e":t=J.width+J.xoffset;N=-1;break;case"se":t=J.width+J.xoffset;N=-1;break;case"n":s=J.height+J.yoffset;break;case"s":s=J.height+J.yoffset;N=-1;break;default:break}}var K=(H.shadow!=undefined)?H.shadow:this.shadow;var A=(H.fill!=undefined)?H.fill:this.fill;var C=B.canvas.width;var I=B.canvas.height;var Q=C-t-2*this.padding;var X=I-s-2*this.padding;var M=Math.min(Q,X);var Y=M;this._sliceAngles=[];var v=this.sliceMargin;if(this.fill==false){v+=this.lineWidth}var q;var G=0;var R,aa,Z,ab;var D=this.startAngle/180*Math.PI;for(var W=0,V=z.length;WMath.PI){G=Math.max(q,G)}}if(this.diameter!=null&&this.diameter>0){this._diameter=this.diameter-2*G}else{this._diameter=Y-2*G}if(this._diameter<6){e.jqplot.log("Diameter of pie too small, not rendering.");return}var S=this._radius=this._diameter/2;this._center=[(C-N*t)/2+N*t+G*Math.cos(D),(I-N*s)/2+N*s+G*Math.sin(D)];if(this.shadow){for(var W=0,V=z.length;W=this.dataLabelThreshold){var F,U=(this._sliceAngles[W][0]+this._sliceAngles[W][1])/2,T;if(this.dataLabels=="label"){F=this.dataLabelFormatString||"%s";T=e.jqplot.sprintf(F,z[W][0])}else{if(this.dataLabels=="value"){F=this.dataLabelFormatString||"%d";T=e.jqplot.sprintf(F,this.data[W][1])}else{if(this.dataLabels=="percent"){F=this.dataLabelFormatString||"%d%%";T=e.jqplot.sprintf(F,z[W][2]*100)}else{if(this.dataLabels.constructor==Array){F=this.dataLabelFormatString||"%s";T=e.jqplot.sprintf(F,this.dataLabels[W])}}}}var p=(this._radius)*this.dataLabelPositionFactor+this.sliceMargin+this.dataLabelNudge;var P=this._center[0]+Math.cos(U)*p+this.canvas._offsets.left;var O=this._center[1]+Math.sin(U)*p+this.canvas._offsets.top;var u=e('
'+T+"
").insertBefore(o.eventCanvas._elem);if(this.dataLabelCenterOn){P-=u.width()/2;O-=u.height()/2}else{P-=u.width()*Math.sin(U/2);O-=u.height()/2}P=Math.round(P);O=Math.round(O);u.css({left:P,top:O})}}};e.jqplot.PieAxisRenderer=function(){e.jqplot.LinearAxisRenderer.call(this)};e.jqplot.PieAxisRenderer.prototype=new e.jqplot.LinearAxisRenderer();e.jqplot.PieAxisRenderer.prototype.constructor=e.jqplot.PieAxisRenderer;e.jqplot.PieAxisRenderer.prototype.init=function(o){this.tickRenderer=e.jqplot.PieTickRenderer;e.extend(true,this,o);this._dataBounds={min:0,max:100};this.min=0;this.max=100;this.showTicks=false;this.ticks=[];this.showMark=false;this.show=false};e.jqplot.PieLegendRenderer=function(){e.jqplot.TableLegendRenderer.call(this)};e.jqplot.PieLegendRenderer.prototype=new e.jqplot.TableLegendRenderer();e.jqplot.PieLegendRenderer.prototype.constructor=e.jqplot.PieLegendRenderer;e.jqplot.PieLegendRenderer.prototype.init=function(o){this.numberRows=null;this.numberColumns=null;e.extend(true,this,o)};e.jqplot.PieLegendRenderer.prototype.draw=function(){var r=this;if(this.show){var B=this._series;this._elem=e(document.createElement("table"));this._elem.addClass("jqplot-table-legend");var E={position:"absolute"};if(this.background){E.background=this.background}if(this.border){E.border=this.border}if(this.fontSize){E.fontSize=this.fontSize}if(this.fontFamily){E.fontFamily=this.fontFamily}if(this.textColor){E.textColor=this.textColor}if(this.marginTop!=null){E.marginTop=this.marginTop}if(this.marginBottom!=null){E.marginBottom=this.marginBottom}if(this.marginLeft!=null){E.marginLeft=this.marginLeft}if(this.marginRight!=null){E.marginRight=this.marginRight}this._elem.css(E);var I=false,A=false,o,y;var C=B[0];var p=new e.jqplot.ColorGenerator(C.seriesColors);if(C.show){var J=C.data;if(this.numberRows){o=this.numberRows;if(!this.numberColumns){y=Math.ceil(J.length/o)}else{y=this.numberColumns}}else{if(this.numberColumns){y=this.numberColumns;o=Math.ceil(J.length/this.numberColumns)}else{o=J.length;y=1}}var H,G;var q,w,v;var x,z,F;var D=0;var u,t;for(H=0;H0){I=true}else{I=false}}else{if(H==o-1){I=false}else{I=true}}z=(I)?this.rowSpacing:"0";w=e(document.createElement("td"));w.addClass("jqplot-table-legend jqplot-table-legend-swatch");w.css({textAlign:"center",paddingTop:z});u=e(document.createElement("div"));u.addClass("jqplot-table-legend-swatch-outline");t=e(document.createElement("div"));t.addClass("jqplot-table-legend-swatch");t.css({backgroundColor:F,borderColor:F});w.append(u.append(t));v=e(document.createElement("td"));v.addClass("jqplot-table-legend jqplot-table-legend-label");v.css("paddingTop",z);if(this.escapeHtml){v.text(x)}else{v.html(x)}if(A){v.prependTo(q);w.prependTo(q)}else{w.appendTo(q);v.appendTo(q)}I=true}D++}}}}return this._elem};e.jqplot.PieRenderer.prototype.handleMove=function(q,p,t,s,r){if(s){var o=[s.seriesIndex,s.pointIndex,s.data];r.target.trigger("jqplotDataMouseOver",o);if(r.series[o[0]].highlightMouseOver&&!(o[0]==r.plugins.pieRenderer.highlightedSeriesIndex&&o[1]==r.series[o[0]]._highlightedPoint)){r.target.trigger("jqplotDataHighlight",o);d(r,o[0],o[1])}}else{if(s==null){k(r)}}};function c(s,r,p){p=p||{};p.axesDefaults=p.axesDefaults||{};p.legend=p.legend||{};p.seriesDefaults=p.seriesDefaults||{};var o=false;if(p.seriesDefaults.renderer==e.jqplot.PieRenderer){o=true}else{if(p.series){for(var q=0;qB||s+C>m){z.remove()}z=null;f=null}}};c.jqplot.postSeriesInitHooks.push(c.jqplot.PointLabels.init);c.jqplot.postDrawSeriesHooks.push(c.jqplot.PointLabels.draw)})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js index e559ddc9..7b5db948 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidAxisRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(e){e.jqplot.PyramidAxisRenderer=function(){e.jqplot.LinearAxisRenderer.call(this)};e.jqplot.PyramidAxisRenderer.prototype=new e.jqplot.LinearAxisRenderer();e.jqplot.PyramidAxisRenderer.prototype.constructor=e.jqplot.PyramidAxisRenderer;e.jqplot.PyramidAxisRenderer.prototype.init=function(f){this.position=null;this.drawBaseline=true;this.baselineWidth=null;this.baselineColor=null;this.tickSpacingFactor=25;this._type="pyramid";this._splitAxis=false;this._splitLength=null;this.category=false;this._autoFormatString="";this._overrideFormatString=false;e.extend(true,this,f);this.renderer.options=f;this.resetDataBounds=this.renderer.resetDataBounds;this.resetDataBounds()};e.jqplot.PyramidAxisRenderer.prototype.resetDataBounds=function(){var h=this._dataBounds;h.min=null;h.max=null;var g;for(var m=0;mh.max)||h.max===null){h.max=g}}else{g=o[k][0];if((g!==null&&gh.max)||h.max===null){h.max=g}}}}};e.jqplot.PyramidAxisRenderer.prototype.draw=function(f,n){if(this.show){this.renderer.createTicks.call(this,n);var m=0;var g;if(this._elem){this._elem.emptyForce();this._elem=null}this._elem=e(document.createElement("div"));this._elem.addClass("jqplot-axis jqplot-"+this.name);this._elem.css("position","absolute");if(this.name=="xaxis"||this.name=="x2axis"){this._elem.width(this._plotDimensions.width)}else{this._elem.height(this._plotDimensions.height)}this.labelOptions.axis=this.name;this._label=new this.labelRenderer(this.labelOptions);if(this._label.show){var l=this._label.draw(f,n);l.appendTo(this._elem);l=null}var k=this._ticks;var j;for(var h=0;hr){I=this.numberTicks-1;for(H=2;H0;H--){v=new this.tickRenderer(this.tickOptions);v.value=this._ticks[H-1].value+this.tickInterval/2;v.label="";v.showLabel=false;v.axis=this.name;this._ticks[H].showGridline=false;this._ticks[H].showMark=false;this._ticks.splice(H,0,v)}v=new this.tickRenderer(this.tickOptions);v.value=this._ticks[0].value-this.tickInterval/2;v.label="";v.showLabel=false;v.axis=this.name;this._ticks.unshift(v);v=new this.tickRenderer(this.tickOptions);v.value=this._ticks[this._ticks.length-1].value+this.tickInterval/2;v.label="";v.showLabel=false;v.axis=this.name;this._ticks.push(v);this.tickInterval=this.tickInterval/2;this.numberTicks=this._ticks.length;this.min=this._ticks[0].value;this.max=this._ticks[this._ticks.length-1].value}}else{if(this.name.charAt(0)==="x"){E=this._plotDimensions.width;var w=Math.max(M.max,Math.abs(M.min));var u=Math.min(M.min,-w);B=u;G=w;y=G-B;if(this.tickOptions==null||!this.tickOptions.formatString){this._overrideFormatString=true}m=30;g=Math.max(E,m+1);j=(g-m)/300;O=e.jqplot.LinearTickGenerator(B,G,j);A=B+y*(this.padMin-1);F=G-y*(this.padMax-1);if(BF){A=B-y*(this.padMin-1);F=G+y*(this.padMax-1);O=e.jqplot.LinearTickGenerator(A,F,j)}this.min=O[0];this.max=O[1];this.numberTicks=O[2];this._autoFormatString=O[3];this.tickInterval=O[4]}else{E=this._plotDimensions.height;B=M.min;G=M.max;x=this._series[0];this._ticks=[];y=G-B;if(d[y]){y+=1;G+=1}this.max=G;this.min=B;r=Math.round(2+E/this.tickSpacingFactor);if(y+1<=r){this.numberTicks=y+1;this.tickInterval=1}else{for(var H=r;H>1;H--){if(y/(H-1)===Math.round(y/(H-1))){this.numberTicks=H;this.tickInterval=y/(H-1);break}}}}if(this._overrideFormatString&&this._autoFormatString!=""){this.tickOptions=this.tickOptions||{};this.tickOptions.formatString=this._autoFormatString}var f;for(H=0;Ho){o=j}}}if(this.name==="yMidAxis"){for(m=0;m0){f=-q._textRenderer.height*Math.cos(-q._textRenderer.angle)/2}else{f=-q.getHeight()+q._textRenderer.height*Math.cos(q._textRenderer.angle)/2}break;case"middle":f=-q.getHeight()/2;break;default:f=-q.getHeight()/2;break}}else{f=-q.getHeight()/2}var C=this.u2p(q.value)+f+"px";q._elem.css("top",C);q.pack()}}if(r){var y=this._label._elem.outerHeight(true);if(this.name!=="yMidAxis"){this._label._elem.css("top",o-k/2-y/2+"px")}if(this.name=="yaxis"){this._label._elem.css("left","0px")}else{if(this.name!=="yMidAxis"){this._label._elem.css("right","0px")}}this._label.pack()}}}B=null}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidGridRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidGridRenderer.min.js index e2837a6c..25769919 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidGridRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidGridRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(a){a.jqplot.PyramidGridRenderer=function(){a.jqplot.CanvasGridRenderer.call(this)};a.jqplot.PyramidGridRenderer.prototype=new a.jqplot.CanvasGridRenderer();a.jqplot.PyramidGridRenderer.prototype.constructor=a.jqplot.PyramidGridRenderer;a.jqplot.CanvasGridRenderer.prototype.init=function(c){this._ctx;this.plotBands={show:false,color:"rgb(230, 219, 179)",axis:"y",start:null,interval:10};a.extend(true,this,c);var b={lineJoin:"miter",lineCap:"round",fill:false,isarc:false,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.shadowWidth,closePath:false,strokeStyle:this.shadowColor};this.renderer.shadowRenderer.init(b)};a.jqplot.PyramidGridRenderer.prototype.draw=function(){this._ctx=this._elem.get(0).getContext("2d");var D=this._ctx;var G=this._axes;var q=G.xaxis.u2p;var J=G.yMidAxis.u2p;var l=G.xaxis.max/1000;var u=q(0);var f=q(l);var r=["xaxis","yaxis","x2axis","y2axis","yMidAxis"];D.save();D.clearRect(0,0,this._plotDimensions.width,this._plotDimensions.height);D.fillStyle=this.backgroundColor||this.background;D.fillRect(this._left,this._top,this._width,this._height);if(this.plotBands.show){D.save();var c=this.plotBands;D.fillStyle=c.color;var d;var o,n,p,I;if(c.axis.charAt(0)==="x"){if(G.xaxis.show){d=G.xaxis}}else{if(c.axis.charAt(0)==="y"){if(G.yaxis.show){d=G.yaxis}else{if(G.y2axis.show){d=G.y2axis}else{if(G.yMidAxis.show){d=G.yMidAxis}}}}}if(d!==undefined){var g=c.start;if(g===null){g=d.min}for(var H=g;H0;H--){var O=r[H-1];var d=G[O];var M=d._ticks;var B=M.length;if(d.show){if(d.drawBaseline){var N={};if(d.baselineWidth!==null){N.lineWidth=d.baselineWidth}if(d.baselineColor!==null){N.strokeStyle=d.baselineColor}switch(O){case"xaxis":if(G.yMidAxis.show){z(this._left,this._bottom,u,this._bottom,N);z(f,this._bottom,this._right,this._bottom,N)}else{z(this._left,this._bottom,this._right,this._bottom,N)}break;case"yaxis":z(this._left,this._bottom,this._left,this._top,N);break;case"yMidAxis":z(u,this._bottom,u,this._top,N);z(f,this._bottom,f,this._top,N);break;case"x2axis":if(G.yMidAxis.show){z(this._left,this._top,u,this._top,N);z(f,this._top,this._right,this._top,N)}else{z(this._left,this._bottom,this._right,this._bottom,N)}break;case"y2axis":z(this._right,this._bottom,this._right,this._top,N);break}}for(var E=B;E>0;E--){var v=M[E-1];if(v.show){var k=Math.round(d.u2p(v.value))+0.5;switch(O){case"xaxis":if(v.showGridline&&this.drawGridlines&&(!v.isMinorTick||d.showMinorTicks)){z(k,this._top,k,this._bottom)}if(v.showMark&&v.mark&&(!v.isMinorTick||d.showMinorTicks)){A=v.markSize;C=v.mark;var k=Math.round(d.u2p(v.value))+0.5;switch(C){case"outside":L=this._bottom;K=this._bottom+A;break;case"inside":L=this._bottom-A;K=this._bottom;break;case"cross":L=this._bottom-A;K=this._bottom+A;break;default:L=this._bottom;K=this._bottom+A;break}if(this.shadow){this.renderer.shadowRenderer.draw(D,[[k,L],[k,K]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*0.75,depth:2,fill:false,closePath:false})}z(k,L,k,K)}break;case"yaxis":if(v.showGridline&&this.drawGridlines&&(!v.isMinorTick||d.showMinorTicks)){z(this._right,k,this._left,k)}if(v.showMark&&v.mark&&(!v.isMinorTick||d.showMinorTicks)){A=v.markSize;C=v.mark;var k=Math.round(d.u2p(v.value))+0.5;switch(C){case"outside":L=this._left-A;K=this._left;break;case"inside":L=this._left;K=this._left+A;break;case"cross":L=this._left-A;K=this._left+A;break;default:L=this._left-A;K=this._left;break}if(this.shadow){this.renderer.shadowRenderer.draw(D,[[L,k],[K,k]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}z(L,k,K,k,{strokeStyle:d.borderColor})}break;case"yMidAxis":if(v.showGridline&&this.drawGridlines&&(!v.isMinorTick||d.showMinorTicks)){z(this._left,k,u,k);z(f,k,this._right,k)}if(v.showMark&&v.mark&&(!v.isMinorTick||d.showMinorTicks)){A=v.markSize;C=v.mark;var k=Math.round(d.u2p(v.value))+0.5;L=u;K=u+A;if(this.shadow){this.renderer.shadowRenderer.draw(D,[[L,k],[K,k]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}z(L,k,K,k,{strokeStyle:d.borderColor});L=f-A;K=f;if(this.shadow){this.renderer.shadowRenderer.draw(D,[[L,k],[K,k]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}z(L,k,K,k,{strokeStyle:d.borderColor})}break;case"x2axis":if(v.showGridline&&this.drawGridlines&&(!v.isMinorTick||d.showMinorTicks)){z(k,this._bottom,k,this._top)}if(v.showMark&&v.mark&&(!v.isMinorTick||d.showMinorTicks)){A=v.markSize;C=v.mark;var k=Math.round(d.u2p(v.value))+0.5;switch(C){case"outside":L=this._top-A;K=this._top;break;case"inside":L=this._top;K=this._top+A;break;case"cross":L=this._top-A;K=this._top+A;break;default:L=this._top-A;K=this._top;break}if(this.shadow){this.renderer.shadowRenderer.draw(D,[[k,L],[k,K]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*0.75,depth:2,fill:false,closePath:false})}z(k,L,k,K)}break;case"y2axis":if(v.showGridline&&this.drawGridlines&&(!v.isMinorTick||d.showMinorTicks)){z(this._left,k,this._right,k)}if(v.showMark&&v.mark&&(!v.isMinorTick||d.showMinorTicks)){A=v.markSize;C=v.mark;var k=Math.round(d.u2p(v.value))+0.5;switch(C){case"outside":L=this._right;K=this._right+A;break;case"inside":L=this._right-A;K=this._right;break;case"cross":L=this._right-A;K=this._right+A;break;default:L=this._right;K=this._right+A;break}if(this.shadow){this.renderer.shadowRenderer.draw(D,[[L,k],[K,k]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*0.75,fill:false,closePath:false})}z(L,k,K,k,{strokeStyle:d.borderColor})}break;default:break}}}v=null}d=null;M=null}D.restore();function z(j,i,e,b,h){D.save();h=h||{};if(h.lineWidth==null||h.lineWidth!=0){a.extend(true,D,h);D.beginPath();D.moveTo(j,i);D.lineTo(e,b);D.stroke()}D.restore()}if(this.shadow){if(G.yMidAxis.show){var F=[[this._left,this._bottom],[u,this._bottom]];this.renderer.shadowRenderer.draw(D,F);var F=[[f,this._bottom],[this._right,this._bottom],[this._right,this._top]];this.renderer.shadowRenderer.draw(D,F);var F=[[u,this._bottom],[u,this._top]];this.renderer.shadowRenderer.draw(D,F)}else{var F=[[this._left,this._bottom],[this._right,this._bottom],[this._right,this._top]];this.renderer.shadowRenderer.draw(D,F)}}if(this.borderWidth!=0&&this.drawBorder){if(G.yMidAxis.show){z(this._left,this._top,u,this._top,{lineCap:"round",strokeStyle:G.x2axis.borderColor,lineWidth:G.x2axis.borderWidth});z(f,this._top,this._right,this._top,{lineCap:"round",strokeStyle:G.x2axis.borderColor,lineWidth:G.x2axis.borderWidth});z(this._right,this._top,this._right,this._bottom,{lineCap:"round",strokeStyle:G.y2axis.borderColor,lineWidth:G.y2axis.borderWidth});z(this._right,this._bottom,f,this._bottom,{lineCap:"round",strokeStyle:G.xaxis.borderColor,lineWidth:G.xaxis.borderWidth});z(u,this._bottom,this._left,this._bottom,{lineCap:"round",strokeStyle:G.xaxis.borderColor,lineWidth:G.xaxis.borderWidth});z(this._left,this._bottom,this._left,this._top,{lineCap:"round",strokeStyle:G.yaxis.borderColor,lineWidth:G.yaxis.borderWidth});z(u,this._bottom,u,this._top,{lineCap:"round",strokeStyle:G.yaxis.borderColor,lineWidth:G.yaxis.borderWidth});z(f,this._bottom,f,this._top,{lineCap:"round",strokeStyle:G.yaxis.borderColor,lineWidth:G.yaxis.borderWidth})}else{z(this._left,this._top,this._right,this._top,{lineCap:"round",strokeStyle:G.x2axis.borderColor,lineWidth:G.x2axis.borderWidth});z(this._right,this._top,this._right,this._bottom,{lineCap:"round",strokeStyle:G.y2axis.borderColor,lineWidth:G.y2axis.borderWidth});z(this._right,this._bottom,this._left,this._bottom,{lineCap:"round",strokeStyle:G.xaxis.borderColor,lineWidth:G.xaxis.borderWidth});z(this._left,this._bottom,this._left,this._top,{lineCap:"round",strokeStyle:G.yaxis.borderColor,lineWidth:G.yaxis.borderWidth})}}D.restore();D=null;G=null}})(jQuery); \ No newline at end of file diff --git a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidRenderer.min.js b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidRenderer.min.js index 5833af56..9266e227 100644 --- a/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidRenderer.min.js +++ b/templates/backOffice/default/assets/js/jqplot/plugins/jqplot.pyramidRenderer.min.js @@ -1,3 +1,3 @@ -/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com - jsDate | (c) 2010-2013 Chris Leonello +/* jqPlot 1.0.8r1250 | (c) 2009-2013 Chris Leonello | jplot.com + jsDate | (c) 2010-2013 Chris Leonello */(function(c){if(c.jqplot.PyramidAxisRenderer===undefined){c.ajax({url:c.jqplot.pluginLocation+"jqplot.pyramidAxisRenderer.js",dataType:"script",async:false})}if(c.jqplot.PyramidGridRenderer===undefined){c.ajax({url:c.jqplot.pluginLocation+"jqplot.pyramidGridRenderer.js",dataType:"script",async:false})}c.jqplot.PyramidRenderer=function(){c.jqplot.LineRenderer.call(this)};c.jqplot.PyramidRenderer.prototype=new c.jqplot.LineRenderer();c.jqplot.PyramidRenderer.prototype.constructor=c.jqplot.PyramidRenderer;c.jqplot.PyramidRenderer.prototype.init=function(j,o){j=j||{};this._type="pyramid";this.barPadding=10;this.barWidth=null;this.fill=true;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.highlightThreshold=2;this.synchronizeHighlight=false;this.offsetBars=false;if(j.highlightMouseDown&&j.highlightMouseOver==null){j.highlightMouseOver=false}this.side="right";c.extend(true,this,j);if(this.side==="left"){this._highlightThreshold=[[-this.highlightThreshold,0],[-this.highlightThreshold,0],[0,0],[0,0]]}else{this._highlightThreshold=[[0,0],[0,0],[this.highlightThreshold,0],[this.highlightThreshold,0]]}this.renderer.options=j;this._highlightedPoint=null;this._dataColors=[];this._barPoints=[];this.fillAxis="y";this._primaryAxis="_yaxis";this._xnudge=0;var n={lineJoin:"miter",lineCap:"butt",fill:this.fill,fillRect:this.fill,isarc:false,strokeStyle:this.color,fillStyle:this.color,closePath:this.fill,lineWidth:this.lineWidth};this.renderer.shapeRenderer.init(n);var m=j.shadowOffset;if(m==null){if(this.lineWidth>2.5){m=1.25*(1+(Math.atan((this.lineWidth/2.5))/0.785398163-1)*0.6)}else{m=1.25*Math.atan((this.lineWidth/2.5))/0.785398163}}var h={lineJoin:"miter",lineCap:"butt",fill:this.fill,fillRect:this.fill,isarc:false,angle:this.shadowAngle,offset:m,alpha:this.shadowAlpha,depth:this.shadowDepth,closePath:this.fill,lineWidth:this.lineWidth};this.renderer.shadowRenderer.init(h);o.postDrawHooks.addOnce(f);o.eventListenerHooks.addOnce("jqplotMouseMove",e);if(this.side==="left"){for(var k=0,g=this.data.length;k=0){s=I[E][0]-L;F=this.barWidth;D=[L,n-y-r,s,F]}else{s=L-I[E][0];F=this.barWidth;D=[I[E][0],n-y-r,s,F]}this._barPoints.push([[D[0],D[1]+F],[D[0],D[1]],[D[0]+s,D[1]],[D[0]+s,D[1]+F]]);if(p){this.renderer.shadowRenderer.draw(B,D)}var g=u.fillStyle||this.color;this._dataColors.push(g);this.renderer.shapeRenderer.draw(B,D,u)}else{if(E===0){D=[[L,j],[I[E][0],j],[I[E][0],I[E][1]-y-r]]}else{if(E=h.synchronizeHighlight&&h.synchronizeHighlight!==l){h=m.series[h.synchronizeHighlight];k={fillStyle:h.highlightColors[j],fillRect:false};h.renderer.shapeRenderer.draw(g._ctx,h._barPoints[j],k)}g=null}function d(j){var g=j.plugins.pyramidRenderer.highlightCanvas;g._ctx.clearRect(0,0,g._ctx.canvas.width,g._ctx.canvas.height);for(var h=0;h - -
- - - - {hook name="configuration.top" location="configuration_top" } - -
- -
- -
- -
- - - -
- -
- -
- - {hook name="configuration.bottom" location="configuration_bottom" } -
-
- -{/block} - -{block name="javascript-last-call"} - {hook name="configuration.js" location="configuration-js" } +{extends file="admin-layout.tpl"} + +{block name="no-return-functions"} + {$admin_current_location = 'configuration'} +{/block} + +{block name="page-title"}{intl l='Configuration'}{/block} + +{block name="check-resource"}admin.configuration{/block} +{block name="check-access"}view{/block} + +{block name="main-content"} +
+ +
+ + + + {hook name="configuration.top" location="configuration_top" } + +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ + {hook name="configuration.bottom" location="configuration_bottom" } +
+
+
+{/block} + +{block name="javascript-last-call"} + {hook name="configuration.js" location="configuration-js" } {/block} \ No newline at end of file diff --git a/templates/backOffice/default/includes/module-tab-content.html b/templates/backOffice/default/includes/module-tab-content.html index 88e2e08a..bc943b40 100644 --- a/templates/backOffice/default/includes/module-tab-content.html +++ b/templates/backOffice/default/includes/module-tab-content.html @@ -1,19 +1,19 @@ -{capture name="module_include"} - {if $location} - {hook name="$hook" location="$location" id="$id" view="$view" countvar="module_count"} - {else} - {hook name="$hook" id="$id" view="$view" countvar="module_count"} - {/if} -{/capture} - -{if trim($smarty.capture.module_include) == ''} -
- -
-

-

{intl l="There is currently no active module here."}

-
- -{else} - {$smarty.capture.module_include nofilter} -{/if} +{capture name="module_include"} + {if $location} + {hook name="$hook" location="$location" id="$id" view="$view" countvar="module_count"} + {else} + {hook name="$hook" id="$id" view="$view" countvar="module_count"} + {/if} +{/capture} + +{if trim($smarty.capture.module_include) == ''} +
+ +
+

+

{intl l="There is currently no active module here."}

+
+ +{else} + {$smarty.capture.module_include nofilter} +{/if} diff --git a/templates/frontOffice/aomc/I18n/en_US.php b/templates/frontOffice/aomc/I18n/en_US.php index 76d17dee..1f6ca7ac 100755 --- a/templates/frontOffice/aomc/I18n/en_US.php +++ b/templates/frontOffice/aomc/I18n/en_US.php @@ -168,10 +168,10 @@ return array( 'Price descending' => 'Price descending', 'Proceed checkout' => 'Proceed checkout', 'Product Empty Button' => 'Add my first product', - 'Product Empty Message' => 'It\'s really quick to add a product. -
    -
  1. Check NEW under the details tab if you want to see your product in the latest product section.
  2. -
  3. Check SALE under the details tab if you want to see your product in the offer product section.
  4. + 'Product Empty Message' => 'It\'s really quick to add a product. +
      +
    1. Check NEW under the details tab if you want to see your product in the latest product section.
    2. +
    3. Check SALE under the details tab if you want to see your product in the offer product section.
    ', 'Product Empty Title' => 'Welcome', 'Product Name' => 'Product Name', diff --git a/templates/frontOffice/default/I18n/en_US.php b/templates/frontOffice/default/I18n/en_US.php index 76d17dee..1f6ca7ac 100755 --- a/templates/frontOffice/default/I18n/en_US.php +++ b/templates/frontOffice/default/I18n/en_US.php @@ -168,10 +168,10 @@ return array( 'Price descending' => 'Price descending', 'Proceed checkout' => 'Proceed checkout', 'Product Empty Button' => 'Add my first product', - 'Product Empty Message' => 'It\'s really quick to add a product. -
      -
    1. Check NEW under the details tab if you want to see your product in the latest product section.
    2. -
    3. Check SALE under the details tab if you want to see your product in the offer product section.
    4. + 'Product Empty Message' => 'It\'s really quick to add a product. +
        +
      1. Check NEW under the details tab if you want to see your product in the latest product section.
      2. +
      3. Check SALE under the details tab if you want to see your product in the offer product section.
      ', 'Product Empty Title' => 'Welcome', 'Product Name' => 'Product Name', diff --git a/templates/frontOffice/hooktest/layout.tpl b/templates/frontOffice/hooktest/layout.tpl index 51134518..0ad859a8 100644 --- a/templates/frontOffice/hooktest/layout.tpl +++ b/templates/frontOffice/hooktest/layout.tpl @@ -1,110 +1,110 @@ - - - - -{* Declare assets directory, relative to template base directory *} -{declare_assets directory='assets'} - -{* Set the default translation domain, that will be used by {intl} when the 'd' parameter is not set *} -{default_translation_domain domain='fo.default'} - -{hook name="main.head-top"} - -{hook name="main.stylesheet"} - -{hook name="main.body-top"} - -{hook name="main.header-top"} - -{hook name="main.navbar-secondary"} -{ifhook rel="main.navbar-secondary"} - ::main.navbar-secondary ifhook:: -{/ifhook} -{elsehook rel="main.navbar-secondary"} - ::main.navbar-secondary elsehook:: -{/elsehook} - -{hook name="main.navbar-primary"} -{ifhook rel="main.navbar-primary"} - ::main.navbar-primary ifhook:: -{/ifhook} -{elsehook rel="main.navbar-primary"} - ::main.navbar-primary elsehook:: -{/elsehook} - -{hook name="main.header-bottom"} - -{hook name="main.content-top"} - - -{block name="main-content"}{/block} - - -{hook name="main.content-bottom"} - -{ifhook rel="main.footer-top"} - {hook name="main.footer-top"} -{/ifhook} -{elsehook rel="main.footer-top"} - ::NO main.footer-top:: -{/elsehook} - -{ifhook rel="product.additional"} -{hookblock name="product.additional"} -{forhook rel="product.additional"} - ::product.additional ifhook:: -{/forhook} -{/hookblock} -{/ifhook} -{elsehook rel="product.additional"} - ::product.additional elsehook:: -{/elsehook} - - - -{ifhook rel="main.footer-body"} - ::main.footer-body ifhook:: - {hookblock name="main.footer-body"} - {forhook rel="main.footer-body"} - ::main.footer-body {$id} {$class} {$content}:: - {/forhook} - {/hookblock} -{/ifhook} -{elsehook rel="main.footer-body"} - ::main.footer-body elsehook:: -{/elsehook} - -{ifhook rel="main.footer-bottom"} - {hook name="main.footer-bottom"} -{/ifhook} -{elsehook rel="main.footer-bottom"} - ::NO main.footer-bottom:: -{/elsehook} - -{hook name="main.after-javascript-include"} - -{block name="after-javascript-include"}{/block} - -{hook name="main.javascript-initialization"} - -{block name="javascript-initialization"}{/block} - -{hook name="main.body-bottom"} + + + + +{* Declare assets directory, relative to template base directory *} +{declare_assets directory='assets'} + +{* Set the default translation domain, that will be used by {intl} when the 'd' parameter is not set *} +{default_translation_domain domain='fo.default'} + +{hook name="main.head-top"} + +{hook name="main.stylesheet"} + +{hook name="main.body-top"} + +{hook name="main.header-top"} + +{hook name="main.navbar-secondary"} +{ifhook rel="main.navbar-secondary"} + ::main.navbar-secondary ifhook:: +{/ifhook} +{elsehook rel="main.navbar-secondary"} + ::main.navbar-secondary elsehook:: +{/elsehook} + +{hook name="main.navbar-primary"} +{ifhook rel="main.navbar-primary"} + ::main.navbar-primary ifhook:: +{/ifhook} +{elsehook rel="main.navbar-primary"} + ::main.navbar-primary elsehook:: +{/elsehook} + +{hook name="main.header-bottom"} + +{hook name="main.content-top"} + + +{block name="main-content"}{/block} + + +{hook name="main.content-bottom"} + +{ifhook rel="main.footer-top"} + {hook name="main.footer-top"} +{/ifhook} +{elsehook rel="main.footer-top"} + ::NO main.footer-top:: +{/elsehook} + +{ifhook rel="product.additional"} +{hookblock name="product.additional"} +{forhook rel="product.additional"} + ::product.additional ifhook:: +{/forhook} +{/hookblock} +{/ifhook} +{elsehook rel="product.additional"} + ::product.additional elsehook:: +{/elsehook} + + + +{ifhook rel="main.footer-body"} + ::main.footer-body ifhook:: + {hookblock name="main.footer-body"} + {forhook rel="main.footer-body"} + ::main.footer-body {$id} {$class} {$content}:: + {/forhook} + {/hookblock} +{/ifhook} +{elsehook rel="main.footer-body"} + ::main.footer-body elsehook:: +{/elsehook} + +{ifhook rel="main.footer-bottom"} + {hook name="main.footer-bottom"} +{/ifhook} +{elsehook rel="main.footer-bottom"} + ::NO main.footer-bottom:: +{/elsehook} + +{hook name="main.after-javascript-include"} + +{block name="after-javascript-include"}{/block} + +{hook name="main.javascript-initialization"} + +{block name="javascript-initialization"}{/block} + +{hook name="main.body-bottom"}