Changeset 5911


Ignore:
Timestamp:
09/25/11 14:20:22 (8 years ago)
Author:
kent1
Message:

On commence à intégrer jQuery File Upload comme méthode d'upload par défaut (html5) sur les navigateurs compatibles

Modification des fonctions d'affichage de listes d'extension autorisées, elles prennent des arguments facltatifs supplémentaires permettant de gérer des retours différents en fonction des cas d'utilisation.

Le head de la page d'upload prend en compte la présence de jQuery File Upload ou Plupload (on garde pour peut être l'avenir si la librairie s'améliore)

Attention : le retour de la fonction d'upload est dorénavant du json => voir inclure/upload_formulaire.html

On met à jour le numéro de version en 0.9.0

Location:
plugins_spip/import_video/emballe_medias
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/import_video/emballe_medias/action/emballe_medias_upload.php

    r5894 r5911  
    3737
    3838        if (!$GLOBALS['visiteur_session']['id_auteur']) {
    39                 die('no_article');
     39                die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Aucun article."}, "id_article" : "id"}');
    4040        }
    4141
     
    4646                include_spip('action/editer_article');
    4747                include_spip('inc/modifier');
     48                if(!is_array($files['Filedata'])){
     49                        header('Content-type: application/json');
     50                        $info = array('error'=>array('code'=>101,'message'=> 'Pas de fichier.'));
     51                die(json_encode($info));
     52                }
    4853                $error=$files['Filedata']['error'];
    4954
     
    194199                }
    195200        }else{
    196                 die('rien dans le post');
     201                $info = array('error'=>array('code'=>101,'message'=> 'Rien dans le post.'));
     202                header('Content-type: application/json');
     203        echo json_encode($info);
    197204        }
    198 
    199         echo $id_article;
     205        spip_log('on retourne l id_article');
     206        die('{"jsonrpc" : "2.0", "message" : {"id_article" : "'.$id_article.'"}}');
    200207}
    201208
  • plugins_spip/import_video/emballe_medias/action/emballe_medias_upload_chunks.php

    r5894 r5911  
    4747        $chunks = isset($_POST["chunks"]) ? intval($_POST["chunks"]) : 0;
    4848        $filename = isset($_POST["name"]) ? $_POST["name"] : '';
    49        
     49        spip_log($_POST);
     50        spip_log($_FILES);
    5051        // Clean the fileName for security reasons
    5152        $fileName = preg_replace('/[^\w\._]+/', '', $filename);
     
    127128                include_spip('action/editer_article');
    128129                include_spip('inc/modifier');
     130                spip_log($_FILES,'test');
    129131                if (isset($_FILES['Filedata']['name'])){
    130132                        $filename = $_FILES['Filedata']['name'];
     
    206208                 * Fonction dans le plugin swfupload
    207209                 */
    208                 if($_FILES['Filedata']['type'] == 'application/octet-stream') {
     210                if(($_FILES['Filedata']['type'] == 'application/octet-stream') && file_exists($_FILES['Filedata']['tmp_name'])) {
    209211                        include_spip('inc/swfupload');
    210212                        $_FILES = swfupload_verifier_mime($_FILES);
  • plugins_spip/import_video/emballe_medias/emballe_medias_fonctions.php

    r4255 r5911  
    66 * kent1 (kent1@arscenic.info)
    77 *
    8  * © 2008/2010 - Distribue sous licence GNU/GPL
     8 * © 2008/2011 - Distribue sous licence GNU/GPL
    99 *
    1010 * Fonctions utilisables dans les squelettes
     
    1717 * @param array $array L'array des extensions de la configuration
    1818 */
    19 function emballe_medias_liste_extensions($array){
     19function emballe_medias_liste_extensions($array,$sep='; *.',$debut='*.'){
    2020        if(!is_array($array)){
    2121                return _T('emballe_medias:configurer_les_extensions');
    2222        }
    2323        else{
    24                 $liste = implode('; *.',$array);
     24                $liste = implode($sep,$array);
    2525                if(!$liste){
    2626                        return _T('emballe_medias:configurer_les_extensions');
    2727                }
    2828                else{
    29                         $liste = '*.'.$liste;
     29                        $liste = $debut.$liste;
    3030                }
    3131        }
    3232        return $liste;
     33}
     34
     35function emballe_medias_liste_mimes($array){
     36        if(!is_array($array)){
     37                return false;
     38        }
     39        $mimes_finaux = array();
     40        $mimes = sql_select('*','spip_types_documents',sql_in('extension',$array));
     41        while($mime=sql_fetch($mimes)){
     42                $mimes_finaux[] = $mime['mime_type'];
     43        }
     44        $mimes_finaux = array_unique($mimes_finaux);
     45        $ret = implode(', ',$mimes_finaux);
     46        return $ret;
    3347}
    3448
  • plugins_spip/import_video/emballe_medias/head/page-publier.html

    r5894 r5911  
    55<INCLURE{fond=inclure/head}>
    66
    7 [(#PLUGIN{plupload}|non)
     7[(#REM)
     8       
     9        Si on a le plugin jQuery File Upload, on l'utilise
     10        On charge les js de jfu et sa css
     11        On charge les js de SWFUpload qui sert d'alternative
     12       
     13][(#PLUGIN{jfu}|oui)
     14        [(#REM)
     15                La feuille de stype spécifique à fileupload-ui
     16        ][<link rel="stylesheet" href="(#CHEMIN{[(#EVAL{_DIR_LIB_JFU})jquery.fileupload-ui.css]})">]
     17        [(#REM)
     18                Une fonction js permettant de connaitre les possibilités html5 du navigateur
     19        ][<script type="text/javascript" src="(#CHEMIN{javascript/html5_support.js})"></script>]
     20        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_JFU})jquery.iframe-transport.js]})"></script>]
     21        [<script src="(#CHEMIN{javascript/jquery.tmpl.js})"></script>]
     22        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_JFU})jquery.fileupload.js]})"></script>]
     23        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_JFU})jquery.fileupload-ui.js]})"></script>]
     24        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})swfupload.js]}|replace{' ','%20'})"></script>]
     25        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})plugins/swfupload.queue.js]}|replace{' ','%20'})"></script>]
     26        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})plugins/swfupload.cookies.js]}|replace{' ','%20'})"></script>]
     27        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})plugins/swfupload.swfobject.js]}|replace{' ','%20'})"></script>]
     28        [<script type="text/javascript" src="(#CHEMIN{javascript/handler.js})"></script>]
     29        [<script type="text/javascript" src="(#CHEMIN{javascript/fileprogress.js})"></script>]
     30        #SET{js,done}
     31]
     32[(#REM)
     33
     34        Sinon on regarde si on a plupload
     35        Il n'a pas besoin de swfupload lui
     36       
     37][(#PLUGIN{plupload}|et{#GET{js}|=={done}|non}|oui)
     38        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.js]})"></script>]
     39        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.html5.js]})"></script>]
     40        [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.flash.js]})"></script>]
     41        [<script type="text/javascript" src="(#CHEMIN{javascript/plupload_functions.js})"></script>]
     42        #SET{js,done}
     43]
     44
     45[(#REM)
     46
     47        Si on ne dispose pas des plugins jQuery File Upload ni Plupload,
     48        on charge seulement SWFUpload qui reste obligatoire
     49       
     50][(#GET{js}|=={done}|non)
    851[<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})swfupload.js]}|replace{' ','%20'})"></script>]
    952[<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})plugins/swfupload.queue.js]}|replace{' ','%20'})"></script>]
     
    1255[<script type="text/javascript" src="(#CHEMIN{javascript/handler.js})"></script>]
    1356[<script type="text/javascript" src="(#CHEMIN{javascript/fileprogress.js})"></script>]]
    14 
    15 [(#PLUGIN{plupload}|oui)
    16         [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.js]})"></script>]
    17         [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.html5.js]})"></script>]
    18         [<script type="text/javascript" src="(#CHEMIN{[(#EVAL{_DIR_LIB_PLUPLOAD})plupload.flash.js]})"></script>]
    19         [<script type="text/javascript" src="(#CHEMIN{javascript/plupload_functions.js})"></script>]
    20 ]
    2157
    2258[<script type="text/javascript" src="(#URL_PAGE{emballe_medias_lang.js}|parametre_url{lang,#ENV{lang}})"></script>]
  • plugins_spip/import_video/emballe_medias/inclure/diogene_emballe_media.html

    r5894 r5911  
    249249                                                <div id="em_charger_fichier">
    250250                                        ]
     251                                        [(#PLUGIN{jfu}|oui)
     252                                                #SET{form_ok,oui}
     253                                                <INCLURE{fond=inclure/upload_formulaire,
     254                                                        id_rubrique=#GET{id_rubrique},
     255                                                        id_article=#GET{id_article},
     256                                                        config_fichiers=#GET{config_fichiers},
     257                                                        type_media=#GET{type},
     258                                                        file_upload_limite=#GET{file_upload_limite},
     259                                                        file_queue_limite=#GET{file_queue_limite},
     260                                                        nb_files_count=#GET{nb_files_count},
     261                                                        doc_uploaded=#GET{doc_uploaded},env}>]
     262                                       
     263                                        [(#GET{form_ok}|!={oui}|oui)
    251264                                        [(#PLUGIN{plupload}|oui)
    252265                                                #SET{form_ok,oui}
     
    259272                                                        file_queue_limite=#GET{file_queue_limite},
    260273                                                        nb_files_count=#GET{nb_files_count},
    261                                                         doc_uploaded=#GET{doc_uploaded},env}>]
     274                                                        doc_uploaded=#GET{doc_uploaded},env}>]]
    262275                                                       
    263276                                        [(#GET{form_ok}|!={oui}|oui)
  • plugins_spip/import_video/emballe_medias/inclure/upload_formulaire.html

    r5812 r5911  
    22<script type="text/javascript">
    33<!--
     4        var isUploading = false;
     5        var nb_max = #ENV{file_upload_limite,1};
     6        var nb_files = 0;
     7        var iTime = new Date();
     8        var isIE = jQuery.browser.msie;
    49       
    510        function fileDialogComplete(numFilesSelected, numFilesQueued) {
     
    4449                try {
    4550                        isUploading = false;
     51                        var data = jQuery.parseJSON(serverData);
    4652                        jQuery('.em_charger_fichiers').tabs('enable',1);
    4753                        nb_files++;
     
    6975                         * Il vaut mieux que l'on rafraichisse la page pour éviter tout déborderment par la suite
    7076                         */
    71                         if((isNaN(parseFloat(serverData)) || !isFinite(serverData))){
     77                        if((isNaN(parseFloat(data.result.message.id_article)) || !isFinite(data.result.message.id_article))){
    7278                                window.location.reload(true);
    7379                        }
     
    7884                         * on utilise le nouvel article créé si upload multiple
    7985                         */
    80                         this.settings.post_params.arg = serverData;
     86                        this.settings.post_params.arg = data.result.message.id_article;
    8187                       
    8288                        jQuery.ajax({
     
    8591                                data: ({
    8692                                        redirect : "#SELF",
    87                                         id_article:serverData,
     93                                        id_article:data.result.message.id_article,
    8894                                        retour : retour
    8995                                }),
     
    97103                                                jQuery('#formulaire_diogene').load('[(#URL_PAGE{inc-emballe_media_form})]',{
    98104                                                                //redirect: "#SELF",
    99                                                                 id_article: serverData,
     105                                                                id_article: data.result.message.id_article,
    100106                                                                id_trad: "#ENV{id_trad}",
    101107                                                                id_rubrique: "#ENV{id_rubrique}",
     
    117123        }
    118124
    119         var swfu;
    120 
    121         var settings = {
     125        var swfu_settings = {
    122126                flash_url : "[(#CHEMIN{[(#EVAL{_DIR_LIB_SWFUPLOAD})Flash/swfupload.swf]}|url_absolue)]",
    123127                upload_url: "[(#VAL{emballe_medias_upload}|generer_url_action)]",
     
    147151                button_height: "[(#CONFIG{emballe_medias/styles/height_bouton}|sinon{22})]",
    148152                button_placeholder_id: "spanButtonPlaceHolder",
    149                 button_text: '<span class="bouton_flash"><:emballe_medias:browse:><\/span>',
     153                button_text: '<span class="bouton_flash"><:emballe_medias:bouton_parcourir:><\/span>',
    150154                button_text_style: ".bouton_flash {color:[(#VAL{_EM_COULEUR_TEXTE_BOUTON}|defined|?{#EVAL{_EM_COULEUR_TEXTE_BOUTON},#CONFIG{emballe_medias/styles/couleur_texte_bouton,#FFFFFF}})];[(#CONFIG{emballe_medias/styles/flash_bouton_styles}|sinon{'font-size: 12px; font-weight:bold; font-family:Tahoma,Arial,Helvetica,sans-serif; text-align:center; display:block; width:100%'})]}",
    151155                button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
     
    166170                queue_complete_handler : queueComplete
    167171        };
    168         jQuery(document).ready(function(){
    169                 swfu = new SWFUpload(settings);
     172
     173        $(function(){
     174                <BOUCLE_sijfu1(CONDITION){si #PLUGIN{jfu}|oui}>
     175                        var html5_upload_support = gethtml5uploadfunctions();
     176                        if(html5_upload_support.html5 && html5_upload_support.canSendBinary){
     177                                $('#divLoadingContent,#divLongLoading,#divAlternateContent,.swfupload').detach();
     178                                $('#fileupload').fileupload({
     179                            paramName: 'Filedata',
     180                                        add: function (e, data) {
     181                                                if(data.files.length > 0){
     182                                                        jQuery.ajax({
     183                                                                url: "#URL_PAGE{emballe_medias_file_upload_limit}",
     184                                                                type:"GET",
     185                                                                dataType: "html",
     186                                                                data: ({
     187                                                                        id_article:"#ENV{id_article}",
     188                                                                        id_auteur : "#SESSION{id_auteur}",
     189                                                                        em_type: "#ENV{em_type}"
     190                                                                }),
     191                                                                success: function(msg){
     192                                                                        var nb = #ENV{file_upload_limite};
     193                                                                        if (parseInt(msg) < nb) {
     194                                                                                upload_ok = true;
     195                                                                        }else{
     196                                                                                alert(emballe_medias_langue.queue_limit_exceeded);
     197                                                                                window.location.reload(true);
     198                                                                        }
     199                                                                }
     200                                                        });
     201                                                }
     202                                var that = $(this).data('fileupload');
     203                                that._adjustMaxNumberOfFiles(-data.files.length);
     204                                data.isAdjusted = true;
     205                                data.isValidated = that._validate(data.files);
     206                                data.context = that._renderUpload(data.files)
     207                                    .appendTo($(this).find('.files')).fadeIn(function () {
     208                                        // Fix for IE7 and lower:
     209                                        $(this).show();
     210                                    }).data('data', data);
     211                                                if(!that.options.autoUpload && $(this).find('.fileupload-buttonbar button.start').is(':hidden')){
     212                                                        $(this).find('.fileupload-buttonbar button.start').fadeIn('slow');
     213                                                }
     214                                if ((that.options.autoUpload || data.autoUpload) &&
     215                                        data.isValidated) {
     216                                    data.jqXHR = data.submit();
     217                                }
     218                            },
     219                                        send: function (e, data) {
     220                                if (!data.isValidated) {
     221                                    var that = $(this).data('fileupload');
     222                                    if (!data.isAdjusted) {
     223                                        that._adjustMaxNumberOfFiles(-data.files.length);
     224                                    }
     225                                    if (!that._validate(data.files)) {
     226                                        return false;
     227                                    }
     228                                }
     229                                                isUploading = true;
     230                                                jQuery('.em_charger_fichiers').tabs('disable',1);
     231                                if (data.context && data.dataType &&
     232                                        data.dataType.substr(0, 6) === 'iframe') {
     233                                    // Iframe Transport does not support progress events.
     234                                    // In lack of an indeterminate progress bar, we set
     235                                    // the progress to 100%, showing the full animated bar:
     236                                    data.context.find('.ui-progressbar').progressbar(
     237                                        'value',
     238                                        parseInt(100, 10)
     239                                    );
     240                                }
     241                                                if($(this).find('.fileupload-buttonbar button.start').is(':visible')){
     242                                                        $(this).find('.fileupload-buttonbar button.start').fadeOut('slow');
     243                                                }
     244                                                if($(this).find('.fileupload-buttonbar button.cancel').is(':hidden')){
     245                                                        $(this).find('.fileupload-buttonbar button.cancel').fadeIn('slow');
     246                                                }
     247                            },
     248                                        // Callback for successful uploads:
     249                            done: function (e, data) {
     250                                                isUploading = false;
     251                                                jQuery('.em_charger_fichiers').tabs('enable',1);
     252                                                nb_files++;
     253                                                if(data.maxNumberOfFiles == 0){
     254                                                        jQuery('.em_charger_fichiers,#em_form_upload').fadeOut().detach();
     255                                                }
     256                                                if((data.files.length == 1) && $(this).find('.fileupload-buttonbar button.cancel').is(':visible')){
     257                                                        $(this).find('.fileupload-buttonbar button.cancel').fadeOut('slow');
     258                                                }
     259                                                //if(nb_files == data.file_upload_limit){
     260                                                //      jQuery('#em_upload_document').fadeOut().remove();
     261                                                //}else{
     262                                                        //progress.toggleCancel(false);
     263                                                //      jQuery('.em_message_file_queue_limit').html(emballe_medias_langue.queue_limit_max+" : "+data.file_queue_limit);
     264                                                //      jQuery('.em_message_file_upload_limit').html("<:emballe_medias:file_upload_limit_public:> "+data.file_upload_limit);
     265                                                //}
     266                                               
     267                                                /**
     268                                                 * Si le retour n'est pas numérique, il y a une erreur quelque part
     269                                                 * Il vaut mieux que l'on rafraichisse la page pour éviter tout déborderment par la suite
     270                                                 */
     271                                                if((isNaN(parseFloat(data.result.message.id_article)) || !isFinite(data.result.message.id_article))){
     272                                                        window.location.reload(true);
     273                                                }
     274                                               
     275                                                var retour = 'form';
     276                                                //(data.file_upload_limit > 0) ? 'form':'haut';
     277                                                /**
     278                                                 * Au cas où nous n'avions pas d'id_article auparavant,
     279                                                 * on utilise le nouvel article créé si upload multiple
     280                                                 */
     281                                                //this.settings.post_params.arg = data.result.message.id_article;
     282                                               
     283                                                $.ajax({
     284                                                        url: "#URL_PAGE{inc-media_uploaded}",
     285                                                        type: "GET",
     286                                                        data: ({
     287                                                                redirect : "#SELF",
     288                                                                id_article:data.result.message.id_article,
     289                                                                retour : retour
     290                                                        }),
     291                                                        dataType: "html",
     292                                                        beforeSend : function(){
     293                                                                jQuery("#em_upload_fichier").addClass('loading');
     294                                                        },
     295                                                        success: function(msg){
     296                                                                jQuery("#em_upload_fichier").removeClass('loading').html(msg);
     297                                                                if (data.form_exists == 0) {
     298                                                                        jQuery('#formulaire_diogene').load('[(#URL_PAGE{inc-emballe_media_form})]',{
     299                                                                                        //redirect: "#SELF",
     300                                                                                        id_article: data.result.message.id_article,
     301                                                                                        id_trad: "#ENV{id_trad}",
     302                                                                                        id_rubrique: "#ENV{id_rubrique}",
     303                                                                                        em_type: "#ENV{em_type}"
     304                                                                                }).fadeIn();
     305                                                                        data.form_exists = 1;
     306                                                                }
     307                                                                 // Si le plugin SPIP ancres douces est activé
     308                                                                 
     309                                                                if(typeof jQuery.localScroll=="function")
     310                                                                        jQuery.localScroll({hash:true});
     311                                                        }
     312                                                });
     313                                //var that = $(this).data('fileupload');
     314                                //if (data.context) {
     315                                //    data.context.each(function (index) {
     316                                        //var file = ($.isArray(data.result) &&
     317                                        //       data.result[index]) || {error: 'emptyResult'};
     318                                        //if (file.error) {
     319                                        //    that._adjustMaxNumberOfFiles(1);
     320                                        //}
     321                                        //$(this).fadeOut(function () {
     322                                       //     that._renderDownload([file])
     323                                        //        .css('display', 'none')
     324                                       //         .replaceAll(this)
     325                                      //          .fadeIn(function () {
     326                                                    // Fix for IE7 and lower:
     327                                    //                $(this).show();
     328                                  //              });
     329                                      //  });
     330                                    //});
     331                                //} else {
     332                                  //  that._renderDownload(data.result)
     333                                    //    .css('display', 'none')
     334                                      //  .appendTo($(this).find('.files'))
     335                                      //  .fadeIn(function () {
     336                                            // Fix for IE7 and lower:
     337                                      //      $(this).show();
     338                                      //  });
     339                                //}
     340                            },
     341                                        // Callback for failed (abort or error) uploads:
     342                            fail: function (e, data) {
     343                                                isUploading=false;
     344                                var that = $(this).data('fileupload');
     345                                that._adjustMaxNumberOfFiles(data.files.length);
     346                                if (data.context) {
     347                                    data.context.each(function (index) {
     348                                        $(this).fadeOut(function () {
     349                                            if (data.errorThrown !== 'abort') {
     350                                                var file = data.files[index];
     351                                                file.error = file.error || data.errorThrown
     352                                                    || true;
     353                                                that._renderDownload([file])
     354                                                    .css('display', 'none')
     355                                                    .replaceAll(this)
     356                                                    .fadeIn(function () {
     357                                                        // Fix for IE7 and lower:
     358                                                        $(this).show();
     359                                                    });
     360                                            } else {
     361                                                data.context.remove();
     362                                            }
     363                                        });
     364                                    });
     365                                                        if(data.files.length == 1){
     366                                                                if($(this).find('.fileupload-buttonbar button.start').is(':visible')){
     367                                                                        $(this).find('.fileupload-buttonbar button.start').fadeOut('slow');
     368                                                                }
     369                                                                if($(this).find('.fileupload-buttonbar button.cancel').is(':visible')){
     370                                                                        $(this).find('.fileupload-buttonbar button.cancel').fadeOut('slow');
     371                                                                }
     372                                                        }
     373                                                        jQuery('.em_charger_fichiers').tabs('enable',1);
     374                                } else if (data.errorThrown !== 'abort') {
     375                                    that._adjustMaxNumberOfFiles(-data.files.length);
     376                                    data.context = that._renderUpload(data.files)
     377                                        .css('display', 'none')
     378                                        .appendTo($(this).find('.files'))
     379                                        .fadeIn(function () {
     380                                            // Fix for IE7 and lower:
     381                                            $(this).show();
     382                                        }).data('data', data);
     383                                }
     384                            },
     385                                        maxFileSize : [(#ENV{config_fichiers}|table_valeur{file_size_limit}|sinon{100}|mult{1024}|mult{1024})],
     386                                        autoUpload : [(#ENV{file_upload_limite}|=={1}|?{true,false})],
     387                                        maxNumberOfFiles :#ENV{file_upload_limite},
     388                                        acceptFileTypes : /(\.|\/)([(#GET{types}|array_merge{[(#GET{types}|join{','}|strtoupper|explode{','})]}|emballe_medias_liste_extensions{'|',''})])$/i,
     389                                        file_upload_limit : #ENV{file_upload_limite},
     390                                        file_queue_limit : #ENV{file_queue_limite},
     391                                        form_exists: "[(#ENV{doc_uploaded}|=={non}|?{0,1})]"
     392                                });
     393                                $(window).unload(function(){
     394                                        $('#fileupload').fileupload('destroy').hide();
     395                                });
     396                        }else{
     397                                $('#fileupload').hide().detach();
     398                               
     399                                var swfu;
     400                               
     401                                swfu = new SWFUpload(swfu_settings);
     402                               
     403                                $(window).unload(function(){
     404                                        swfu.destroy();
     405                                });
     406                        }
     407                </BOUCLE_sijfu1>
     408                </B_sijfu1>
     409                $('#fileupload').hide().detach();
     410               
     411                var swfu;
     412               
     413                swfu = new SWFUpload(swfu_settings);
     414               
     415                $(window).unload(function(){
     416                        swfu.destroy();
     417                });
     418                <//B_sijfu1>
     419                $('#formulaire_em_charger_media_ftp form').submit(function(){
     420                        jQuery('.em_charger_fichiers').tabs('disable',0);
     421                });
    170422                window.onbeforeunload = function(){
    171423                        if(isUploading){
     
    173425                        }
    174426                };
    175                 jQuery('#formulaire_em_charger_media_ftp form').submit(function(){
    176                         jQuery('.em_charger_fichiers').tabs('disable',0);
    177                 });
    178                 jQuery(window).unload(function(){
    179                         swfu.destroy();
    180                 });
    181427        });
    182428
    183429-->
    184430</script>
    185 <div id="em_upload_document[_(#ENV{id_document})]" class="formulaire_spip">
     431<BOUCLE_sijfu(CONDITION){si #PLUGIN{jfu}|oui}>
     432<div id="fileupload" class="formulaire_spip jfupload">
     433    <form action="[(#VAL{emballe_medias_upload}|generer_url_action|url_absolue)]" method="POST" enctype="multipart/form-data">
     434        <input type="hidden" name="arg" value="#ENV{id_article}" />
     435                [<input type="hidden" name="em_type" value="(#ENV{em_type})" />]
     436                [<input type="hidden" name="id_rubrique" value="(#ENV{id_rubrique})" />]
     437                [<input type="hidden" name="id_document" value="(#ENV{id_document})" />]
     438                [<input type="hidden" name="action_document" value="(#ENV{action_document})" />]
     439        <div class="fileupload-buttonbar boutons">
     440            <label class="fileinput-button">
     441                <span>[(#ENV{legende_upload,[(#ENV{file_upload_limite}|>{1}|?{<:emballe_medias:legend_mise_en_ligne_multiple:>,<:emballe_medias:legend_mise_en_ligne_unique:>})]})]</span>
     442                <input type="file" name="files[]" multiple>
     443            </label>
     444            <button type="submit" class="start" style="display:none">Start upload</button>
     445            <button type="reset" class="cancel" style="display:none">Cancel upload</button>
     446        </div>
     447    </form>
     448    <div class="fileupload-content">
     449                <div id="em_message_attente" class="explication">
     450                        <:emballe_medias:verification_fichier:>
     451                </div>
     452                <div id="em_message_avant_upload" class="explication">
     453                        [(#ENV{config_fichiers}|table_valeur{texte_upload}|propre)]
     454                        [(#SET{types_liste,[(#GET{types}|emballe_medias_liste_extensions)]})]
     455                        [(#ENV{file_upload_limite}|>{1}|oui)<p class="explications em_message_file_upload_limit"><:emballe_medias:file_upload_limit_public:> #ENV{file_upload_limite}</p>]
     456                        [(#ENV{file_queue_limite}|>{1}|oui)<p class="explications em_message_file_queue_limit"><:emballe_medias:queue_limit_max:> #ENV{file_queue_limite}</p>]
     457                        <p class="explications">
     458                                <:emballe_medias:types_fichiers_autorises{types=#GET{types_liste}}:>
     459                        </p>
     460                        [(#SET{taille,[(#ENV{config_fichiers}|table_valeur{file_size_limit}|sinon{100})]})]
     461                        <p class="explications">
     462                                <:emballe_medias:file_size_limit{taille=#GET{taille}}:>
     463                        </p>
     464                </div>
     465        <table class="files"></table>
     466                [(#ENV{file_upload_limite}|>{1}|oui)
     467        <div class="fileupload-progressbar"></div>]
     468    </div>
     469</div>
     470<script id="template-upload" type="text/x-jquery-tmpl">
     471    <tr class="template-upload{{if error}} ui-state-error{{/if}}">
     472        <td class="preview"></td>
     473        <td class="name">${name}</td>
     474        <td class="size">${sizef}</td>
     475        {{if error}}
     476            <td class="error" colspan="2">Error:
     477                {{if error === 'maxFileSize'}}File is too big
     478                {{else error === 'minFileSize'}}File is too small
     479                {{else error === 'acceptFileTypes'}}Filetype not allowed
     480                {{else error === 'maxNumberOfFiles'}}Max number of files exceeded
     481                {{else}}${error}
     482                {{/if}}
     483            </td>
     484        {{else}}
     485            <td class="progress"><div></div></td>
     486            <td class="start"><button>Start</button></td>
     487        {{/if}}
     488        <td class="cancel"><button>Cancel</button></td>
     489    </tr>
     490</script>
     491<script id="template-download" type="text/x-jquery-tmpl">
     492    <tr class="template-download{{if error}} ui-state-error{{/if}}">
     493        {{if error}}
     494            <td></td>
     495            <td class="name">${name}</td>
     496            <td class="size">${sizef}</td>
     497            <td class="error" colspan="2">Error:
     498                {{if error === 1}}<:emballe_medias:erreur_fichier_trop_gros:>
     499                {{else error === 2}}<:emballe_medias:erreur_fichier_trop_gros:>
     500                {{else error === 3}}File was only partially uploaded
     501                {{else error === 4}}No File was uploaded
     502                {{else error === 5}}Missing a temporary folder
     503                {{else error === 6}}Failed to write file to disk
     504                {{else error === 7}}File upload stopped by extension
     505                {{else error === 'maxFileSize'}}<:emballe_medias:erreur_fichier_trop_gros:>
     506                {{else error === 'minFileSize'}}File is too small
     507                {{else error === 'acceptFileTypes'}}Filetype not allowed
     508                {{else error === 'maxNumberOfFiles'}}Max number of files exceeded
     509                {{else error === 'uploadedBytes'}}Uploaded bytes exceed file size
     510                {{else error === 'emptyResult'}}Empty file upload result
     511                {{else}}${error}
     512                {{/if}}
     513            </td>
     514        {{else}}
     515            <td class="preview">
     516                {{if thumbnail_url}}
     517                    <a href="${url}" target="_blank"><img src="${thumbnail_url}"></a>
     518                {{/if}}
     519            </td>
     520            <td class="name">
     521                <a href="${url}"{{if thumbnail_url}} target="_blank"{{/if}}>${name}</a>
     522            </td>
     523            <td class="size">${sizef}</td>
     524            <td colspan="2"></td>
     525        {{/if}}
     526        <td class="delete">
     527            <button data-type="${delete_type}" data-url="${delete_url}"><:emballe_medias:bouton_supprimer:></button>
     528        </td>
     529    </tr>
     530</script>
     531</BOUCLE_sijfu>
     532<div id="em_upload_document[_(#ENV{id_document})]" class="formulaire_spip swfupload">
    186533        <div id="divLoadingContent" class="reponse_formulaire_erreur">
    187534                <:emballe_medias:chargement_uploader:>
     
    193540                <:emballe_medias:erreur_chargement_uploader_failed:>
    194541        </div>
    195         [(#GET{form}|!={non}|oui)<form id="em_form_upload" action="#SELF" method="post" enctype="multipart/form-data">]
     542        [(#GET{form}|!={non}|oui)<form id="em_form_upload" action="[(#VAL{emballe_medias_upload}|generer_url_action|url_absolue)]" method="post" enctype="multipart/form-data">]
    196543        [(#GET{form}|=={non}|oui)<div id="em_form_upload">]
    197544                <div>
    198545                        <ul>
    199546
    200                 <li class="fieldset">
    201                         <fieldset>
    202                         <h3 class="legend">[(#ENV{legende_upload,[(#ENV{file_upload_limite}|>{1}|?{<:emballe_medias:legend_mise_en_ligne_multiple:>,<:emballe_medias:legend_mise_en_ligne_unique:>})]})]</h3>
    203                         <ul>
    204                                 <li>
    205                                 <div id="em_message_attente" class="explication">
    206                                         <:emballe_medias:verification_fichier:>
    207                                 </div>
    208                                 <div id="em_message_avant_upload" class="explication">
    209                                         [(#ENV{config_fichiers}|table_valeur{texte_upload}|propre)]
    210                                         [(#SET{types,[(#GET{types}|emballe_medias_liste_extensions)]})]
    211                                         [(#ENV{file_upload_limite}|>{1}|oui)<p class="explications em_message_file_upload_limit"><:emballe_medias:file_upload_limit_public:> #ENV{file_upload_limite}</p>]
    212                                         [(#ENV{file_queue_limite}|>{1}|oui)<p class="explications em_message_file_queue_limit"><:emballe_medias:queue_limit_max:> #ENV{file_queue_limite}</p>]
    213                                         <p class="explications">
    214                                                 <:emballe_medias:types_fichiers_autorises{types=#GET{types}}:>
    215                                         </p>
    216                                         [(#SET{taille,[(#ENV{config_fichiers}|table_valeur{file_size_limit}|sinon{100})]})]
    217                                         <p class="explications">
    218                                                 <:emballe_medias:file_size_limit{taille=#GET{taille}}:>
    219                                         </p>
    220                                 </div>
    221                                 </li>
    222                                 <li id="divSWFUploadUI" >
    223                                         <div id="progress_bar_container">
    224                                         </div>
    225                                 </li>
    226                         </ul>
    227                 </fieldset>
    228                 </li>
     547                        <li class="fieldset">
     548                                <fieldset>
     549                                        <h3 class="legend">[(#ENV{legende_upload,[(#ENV{file_upload_limite}|>{1}|?{<:emballe_medias:legend_mise_en_ligne_multiple:>,<:emballe_medias:legend_mise_en_ligne_unique:>})]})]</h3>
     550                                        <ul>
     551                                                <li>
     552                                                        <div id="em_message_attente" class="explication">
     553                                                                <:emballe_medias:verification_fichier:>
     554                                                        </div>
     555                                                        <div id="em_message_avant_upload" class="explication">
     556                                                                [(#ENV{config_fichiers}|table_valeur{texte_upload}|propre)]
     557                                                                [(#SET{types_liste,[(#GET{types}|emballe_medias_liste_extensions)]})]
     558                                                                [(#ENV{file_upload_limite}|>{1}|oui)<p class="explications em_message_file_upload_limit"><:emballe_medias:file_upload_limit_public:> #ENV{file_upload_limite}</p>]
     559                                                                [(#ENV{file_queue_limite}|>{1}|oui)<p class="explications em_message_file_queue_limit"><:emballe_medias:queue_limit_max:> #ENV{file_queue_limite}</p>]
     560                                                                <p class="explications">
     561                                                                        <:emballe_medias:types_fichiers_autorises{types=#GET{types_liste}}:>
     562                                                                </p>
     563                                                                [(#SET{taille,[(#ENV{config_fichiers}|table_valeur{file_size_limit}|sinon{100})]})]
     564                                                                <p class="explications">
     565                                                                        <:emballe_medias:file_size_limit{taille=#GET{taille}}:>
     566                                                                </p>
     567                                                        </div>
     568                                                </li>
     569                                                <li id="divSWFUploadUI" >
     570                                                        <div id="progress_bar_container">
     571                                                        </div>
     572                                                </li>
     573                                        </ul>
     574                                </fieldset>
     575                        </li>
    229576                </ul>
    230577                <div class="boutons">
  • plugins_spip/import_video/emballe_medias/inclure/upload_formulaire_plupload.html

    r5901 r5911  
    437437                        </ul>
    438438                        <div class="boutons">
    439                                 <input type="submit" class="submit" id="spanButtonPlaceHolder" value="<:emballe_medias:browse:>" />
     439                                <input type="submit" class="submit" id="spanButtonPlaceHolder" value="<:emballe_medias:bouton_parcourir:>" />
    440440                                <input type="submit" class="submit" id="uploadfiles" value="<:bouton_upload:>" />
    441441                        </div>
  • plugins_spip/import_video/emballe_medias/javascript/plupload_functions.js

    r5894 r5911  
    5353
    5454function em_plupload_postinit(up,debug){
    55         console.log(up);
    5655        if(debug)
    5756                em_plupload_log('[PostInit]');
  • plugins_spip/import_video/emballe_medias/lang/emballe_medias_en.php

    r5894 r5911  
    1818        'bouton_delier_document' => 'Unlink this document from this article',
    1919        'bouton_forcer' => 'Force this document',
     20        'bouton_parcourir' => 'Browse',
    2021        'bouton_recuperer_document' => 'Retrieve the document',
    21         'browse' => 'Browse',
     22        'bouton_supprimer' => 'Delete',
    2223
    2324        // C
     
    5556        'erreur_document_existant' => 'A similar document is already present: @nom@.',
    5657        'erreur_document_insere' => 'This document is inserted inside the content of the article. It can\'t be deleted.',
     58        'erreur_fichier_trop_gros' => 'File is too big.',
    5759        'erreur_publier_categorie_avant' => 'You should at least create a sub category before publishing a media.',
    5860        'erreur_publier_categorie_avant_demander_admin' => 'No category exists. Please contact an administrator so that he creates at least one.',
     
    166168        'titre_nouveau_document_texte' => 'New text document',
    167169        'titre_nouveau_document_video' => 'New video document',
    168         'too_big_file' => 'File is too big.',
    169170        'type_aucun' => 'No specific type',
    170171        'type_audio' => 'Audio',
  • plugins_spip/import_video/emballe_medias/lang/emballe_medias_fr.php

    r5894 r5911  
    1616        'bouton_delier_document' => 'Délier ce document de cet article',
    1717        'bouton_forcer' => 'Forcer ce document',
     18        'bouton_parcourir' => 'Parcourir',
    1819        'bouton_recuperer_document' => 'Récupérer le ou les documents',
    19         'browse' => 'Parcourir',
     20        'bouton_supprimer' => 'Supprimer',
    2021
    2122        // C
     
    5354        'erreur_document_existant' => 'Un document similaire est déjà présent : @nom@',
    5455        'erreur_document_insere' => 'Ce document est inséré dans le contenu de l\'article et ne peut donc être supprimé.',
     56        'erreur_fichier_trop_gros' => 'Le fichier est trop gros.',
    5557        'erreur_publier_categorie_avant' => 'Vous devez créer au moins une catégorie au préalable.',
    5658        'erreur_publier_categorie_avant_demander_admin' => 'Aucune catégorie n\'existe. Veuillez contacter un administrateur afin qu\'il en crée au moins une.',
     
    164166        'titre_nouveau_document_texte' => 'Nouveau document texte',
    165167        'titre_nouveau_document_video' => 'Nouveau document video',
    166         'too_big_file' => 'Le fichier est trop gros.',
    167168        'type_aucun' => 'Aucun type spécifique',
    168169        'type_audio' => 'Audio',
  • plugins_spip/import_video/emballe_medias/modeles/em_test_form.html

    r4447 r5911  
    6767                button_height: "[(#CONFIG{emballe_medias/styles/height_bouton}|sinon{22})]",
    6868                button_placeholder_id: "spanButtonPlaceHolder",
    69                 button_text: '<span class="bouton_flash"><:emballe_medias:browse:><\/span>',
     69                button_text: '<span class="bouton_flash"><:emballe_medias:bouton_parcourir:><\/span>',
    7070                button_text_style: ".bouton_flash {color:[(#VAL{_EM_COULEUR_TEXTE_BOUTON}|defined|?{#EVAL{_EM_COULEUR_TEXTE_BOUTON},#CONFIG{emballe_medias/styles/couleur_texte_bouton,#FFFFFF}})];[(#CONFIG{emballe_medias/styles/flash_bouton_styles}|sinon{'font-size: 12px; font-weight:bold; font-family:Tahoma,Arial,Helvetica,sans-serif; text-align:center; display:block; width:100%'})]}",
    7171                button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
  • plugins_spip/import_video/emballe_medias/plugin.xml

    r5894 r5911  
    88        <auteur>kent1 (kent1@arscenic.info)</auteur>
    99        <licence>© 2009-2011 GNU/GPL v3</licence>
    10         <version>0.8.0</version>
     10        <version>0.9.0</version>
    1111        <version_base>0.2.1</version_base>
    1212        <icon>images/emballe_medias.png</icon>
  • plugins_spip/import_video/emballe_medias/prive/json/em_lang.html

    r3565 r5911  
    1515        temps_passe:"<:emballe_medias:temps_passe:>",
    1616        temps_restant:"<:emballe_medias:temps_restant:>",
    17         too_big_file:"<:emballe_medias:too_big_file:>",
     17        too_big_file:"<:emballe_medias:erreur_fichier_trop_gros:>",
    1818        server_io_error:"<:emballe_medias:server_io_error:>",
    1919        security_error:"<:emballe_medias:security_error:>",
Note: See TracChangeset for help on using the changeset viewer.