Changeset 6653


Ignore:
Timestamp:
Jan 19, 2018, 2:31:11 PM (21 months ago)
Author:
joamuran
Message:

wip

Location:
classroom-assembly/trunk/fuentes/classroom-assembly/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/components/weekday/weekday.js

    r6577 r6653  
    280280    var ret={"message": i18n.gettext("weekday.component.options")};
    281281   
     282    var dataToSave=[];
     283   
    282284   
    283285    var input=$(document.createElement("div")).attr("id", "weekdayConfig");
     
    323325            //console.log($(event.target).parent().attr("weekday_data"));
    324326            var weekday=$(event.target).attr("weekday");
    325             console.log(self.config[weekday]);
     327            console.log("1111111");
     328           
     329            console.log(self.actions[weekday]);
     330            //console.log(self.config[weekday]);
    326331            if (self.hasOwnProperty("actions"))
    327                 self.showConfigActions(weekday);
     332                self.showConfigActions(weekday, function(data){
     333                    if(data){
     334                        console.log(data);
     335                        dataToSave[weekday]=data;
     336                    }
     337                   
     338                });
     339               
    328340        });
    329341       
     
    335347   
    336348    ret.processDialog=function(){
     349       
     350        // If object has no "actions" components and there are actions to save, let's create it
     351        if (!self.hasOwnProperty("actions") && dataToSave.length>0) self.actions=null;
     352       
    337353        for (var weekday in self.config){
    338354            var item="."+weekday+".weekdayStatusActive";
    339355            var found=$("#weekdayConfig").find("[weekday_data="+weekday+"].weekdayStatusActive");
    340356            if (found.length>0) self.config[weekday]=true; else self.config[weekday]=false;
     357           
     358            /* Saving dataToSave to actions */
     359            if (dataToSave.hasOwnProperty(weekday))
     360                {
     361                    var action_on_show, content_on_show, action_on_play, type_on_play, source_on_play;
     362                   
     363                    if (dataToSave[weekday]["Action.on.show"]==="speakOnShow") action_on_show="speech";
     364                    else if (dataToSave[weekday]["Action.on.show"]==="playOnShow") action_on_show="sound";
     365                    else action_on_show='none';
     366                   
     367                    content_on_show=dataToSave[weekday].speakOnShow_defaultText;
     368                    if (dataToSave[weekday]["Action.on.play"]==="VideoOnPlay")
     369                    {
     370                        action_on_play="video";
     371                        type_on_play="file";
     372                    } else if (dataToSave[weekday]["Action.on.play"]==="AudioOnPlay"){
     373                        action_on_play="video";
     374                        type_on_play="file";
     375                    } else if (dataToSave[weekday]["Action.on.play"]==="VideoOnlineOnPlay"){
     376                        action_on_play="video";
     377                        type_on_play="youtube";
     378                    } else {action_on_play=null; type_on_play=null;}
     379                   
     380                    if (typeof(dataToSave[weekday].VideoOnPlay_helperlabel_hidden)!=="undefined" &&
     381                        dataToSave[weekday].VideoOnPlay_helperlabel_hidden!=="")
     382                        source_on_play=dataToSave[weekday].VideoOnPlay_helperlabel_hidden;
     383                       
     384                    if ( typeof(dataToSave[weekday].AudioOnPlay_helperlabel_hidden)!=="undefined" &&
     385                        dataToSave[weekday].AudioOnPlay_helperlabel_hidden!=="")
     386                        source_on_play=dataToSave[weekday].AudioOnPlay_helperlabel_hidden;
     387                       
     388                    if ( typeof(dataToSave[weekday].VideoOnlineOnPlay_YoutubeURL)!=="undefined" &&
     389                        dataToSave[weekday].VideoOnlineOnPlay_YoutubeURL!=="")
     390                        source_on_play=dataToSave[weekday].VideoOnlineOnPlay_YoutubeURL.replace("https://www.youtube.com/watch?v=", "") || "";
     391                   
     392                                       
     393                    var acts={"onshow":
     394                                {
     395                                  "action":action_on_show,
     396                                  "content":content_on_show
     397                                },
     398                             "onplay":
     399                               {
     400                                  "action":action_on_play,
     401                                  "type":type_on_play,
     402                                  "source":source_on_play
     403                               }
     404                            };
     405                   
     406               
     407                //self.actions={"actions":""};
     408                //self.actions[weekday]=acts;
     409                console.log("************");
     410                self.actions[weekday]=acts;
     411                console.log(self.actions);
     412                //console.log(acts);
     413                }
     414           
     415           
     416            //console.log(dataToSave);
     417           
     418           
    341419        }
    342420        // Apply changes to data in widget
    343421        $("#weekdayComponent").attr("config", JSON.stringify(self.config));
    344        
    345     };
     422        if (self.hasOwnProperty("actions")) $("#weekdayComponent").attr("actions", JSON.stringify(self.actions));
     423       
     424    }
    346425   
    347426    return ret;
     
    357436    $(ret.append(legend));
    358437   
    359    
    360     // WIP: Cal afegir l'atribut name a cada component que volgam que es recupere en processar el formulari!!!
    361    
    362    
     438    /*
     439    *TO-DO:
     440    *Donar la possibilitat d'eliminar un vídeo/audio que fa referència a un fitxet
     441    *posar una creueta o algo així al costat del video, per llevar l'associació
     442                   
     443    */
    363444   
    364445    for (radio in data.radios){
     
    366447       
    367448        var div=$(document.createElement("div")).addClass("form-check col-md-12");
    368         var input=$(document.createElement("input")).attr("id", data.radios[radio].id).attr("type","radio").attr("name", data.name).addClass("form-check-input");
     449        var input=$(document.createElement("input")).attr("id", data.radios[radio].id).attr("type","radio").attr("name", data.id).addClass("form-check-input").val(data.radios[radio].id);
    369450        if (data.radios[radio].status) $(input).attr("checked", "true");
    370451        var label=$(document.createElement("label")).addClass("form-check-label col-md-12").css("margin-bottom", "16px");
    371         var spanlabel=$(document.createElement("span")).html(data.radios[radio].label).css("margin-left", "20px");
     452        var spanlabel=$(document.createElement("span")).html(data.radios[radio].label).css("margin-left", "20px").attr("name", data.radios[radio].id+"_label");
    372453       
    373454        var divtext=$(document.createElement("div")).addClass("col-md-8 col-md-offset-1");
    374455       
    375         // WIP: Posar el offset-2 si no és video, i si és video, posar aci al costat el thumbnails.default.url
    376         // O a una mala, quan es passe el ratolí per damunt del text
    377        
    378456        if (data.radios[radio].type=="file"){
    379457           
    380458            var labeltext="";
    381             if (data.radios[radio].helperlabel!=="") labeltext=$(document.createElement("span")).addClass("col-md-4").html("("+data.radios[radio].helperlabel+")");
    382             var text=$(document.createElement("input")).attr("type", "file").addClass("col-md-9 AudioFileInput").attr("accept", ".mp3, .wav, .ogg");
    383             var playbt=$(document.createElement("button")).attr("type", "button").addClass("col-md-1 btn btn-default btn-circle previewPlayButton").attr("id", data.radios[radio].id+"previewPlayButton").addClass("previewPlayButton").attr("audioData", data.radios[radio].helperlabel);
    384             var recbt=$(document.createElement("button")).attr("type", "button").addClass("col-md-1 btn btn-default btn-circle recordButton").attr("id", data.radios[radio].id+"recordButton");
     459            if (data.radios[radio].helperlabel!=="") labeltext=$(document.createElement("span")).addClass("col-md-4").html("("+data.radios[radio].helperlabel+")").attr("name", data.radios[radio].id+"_helperlabel");
     460           
     461            var hidden=$(document.createElement("input")).attr("type", "hidden").attr("name", data.radios[radio].id+"_helperlabel_hidden").val(data.radios[radio].helperlabel).attr("id", data.radios[radio].id+"_helperlabel_hidden");
     462            $(ret).append(hidden);
     463           
     464            var text=$(document.createElement("input")).attr("type", "file").addClass("col-md-9 AudioFileInput").attr("accept", ".mp3, .wav, .ogg").attr("name",data.radios[radio].id+"_file").attr("target", data.radios[radio].id+"_helperlabel_hidden").attr("id", data.radios[radio].id+"_file"); // Target -> hidden element to modify when changes
     465           
     466           
     467            var playbt=$(document.createElement("button")).attr("type", "button").addClass("col-md-1 btn btn-default btn-circle previewPlayButton").attr("id", data.radios[radio].id+"previewPlayButton").addClass("previewPlayButton").attr("audioData", data.radios[radio].helperlabel).attr("name", data.radios[radio].id+"_previewPlayButton");
     468            var recbt=$(document.createElement("button")).attr("type", "button").addClass("col-md-1 btn btn-default btn-circle recordButton").attr("id", data.radios[radio].id+"recordButton").attr("name", data.radios[radio].id+"_recordButton");
    385469            /*$(divtext).append(labeltext, text, playbt, recbt);
    386470            $(divtext).append(text, playbt, recbt);*/
     
    405489           
    406490            labeltext=$(document.createElement("span")).addClass("col-md-12");
    407             text=$(document.createElement("input")).attr("type", "text").addClass("col-md-6 YoutubeURL").attr("name", "YoutubeURL");
     491            text=$(document.createElement("input")).attr("type", "text").addClass("col-md-6 YoutubeURL").attr("name", data.radios[radio].id+"_YoutubeURL").attr("id", data.radios[radio].id+"_YoutubeURL");
    408492           
    409493            snippet=$(document.createElement("a")).addClass("col-md-2 snippet");
     
    424508            $(divtext).append(labeltext, text);
    425509        }
    426         else { // Default: type="text"
    427             var text=$(document.createElement("input")).attr("type", "text").addClass("col-md-6").attr("value", data.radios[radio].helperlabel);
     510        else if (data.radios[radio].type=="text"){ // Default: type="text"
     511            var text=$(document.createElement("input")).attr("type", "text").addClass("col-md-6").attr("value", data.radios[radio].helperlabel).attr("name", data.radios[radio].id+"_defaultText");
    428512            $(divtext).append(text);
    429         }
     513        }
     514        /*else { // Default:  None
     515            $(divtext).css("display", "none");
     516        }*/
    430517       
    431518        $(label).append(input, spanlabel, divtext);
     
    439526}
    440527
    441 weekdayComponentClass.prototype.showConfigActions=function showConfigActions(weekday){
     528weekdayComponentClass.prototype.showConfigActions=function showConfigActions(weekday, cb){
    442529        var self=this;
    443530       
     
    445532        console.log(self.hasOwnProperty("actions"));
    446533        console.log(weekday);
    447         console.log(self.actions[weekday]);
     534        //console.log(self.actions[weekday]);
    448535       
    449536       
     
    457544        var r1status,r2status,r3status,r4status,r5status;
    458545        r1status=r2status=r3status=r4status=r5status=false;
     546        var r6status=r7status=true;
    459547       
    460548        try {if (self.hasOwnProperty("actions")) {
    461549            if (self.actions[weekday].onshow.action=="speech") {
    462550                speechcontent=self.actions[weekday].onshow.content;
    463                 r1status=true;
     551                r1status=true; r7status=false;
    464552            }
    465553            if (self.actions[weekday].onshow.action=="sound") {
    466554                onplaycontent=self.actions[weekday].onshow.content;
    467                 r2status=true;
     555                r2status=true; r7status=false;
    468556                }
    469557           
    470558            if (self.actions[weekday].onplay.action=="sound") {
    471559                playfileaudio=self.actions[weekday].onplay.source;
    472                 r3status=true;
     560                r3status=true; r6status=false;
    473561            }
    474562           
     
    476564                self.actions[weekday].onplay.type=="file") {
    477565                playfilevideo=self.actions[weekday].onplay.source;
    478                 r4status=true;
     566                r4status=true; r6status=false;
    479567            }
    480568           
     
    482570                self.actions[weekday].onplay.type=="youtube") {
    483571                playurlvideo=self.actions[weekday].onplay.source;
    484                 r5status=true;
     572                r5status=true;  r6status=false;
    485573            }
    486574        }} catch(e){console.log("Exception "+e+". continue executing");}
    487575           
    488         console.log(weekday);
     576        //console.log(weekday);
    489577       
    490578        formOnShow=self.createFormRadios({
    491579            "name": i18n.gettext("Action.on.show"),
     580            "id":"Action.on.show",
    492581            "radios":{
     582                "r7":{
     583                    "id": "NoneOnShow",
     584                    "status":r7status,
     585                    "label": i18n.gettext("NoAction")
     586                    },
    493587                "r1":{
    494588                    "id": "speakOnShow",
     
    510604         formOnPlay=self.createFormRadios({
    511605            "name": i18n.gettext("Action.on.play"),
     606            "id":"Action.on.play",
    512607            "radios":{
     608                "r4":{
     609                    "id": "NoneOnPlay",
     610                    "status":r6status,
     611                    "label": i18n.gettext("NoAction")
     612                    },
    513613                "r1":{
    514614                    "id": "AudioOnPlay",
     
    543643            showCloseButton: true,
    544644            escapeButtonCloses: true,
    545             /*buttons: {},*/
     645
     646              /*buttons: [
     647                $.extend({}, vex.dialog.buttons.YES, {
     648                        click: function(event){
     649                       
     650                        // Cleaning previous errors
     651                        $(".text_error").removeClass("text_error");
     652                       
     653                        var errors_on_form=false;
     654                       
     655                        event.stopPropagation();
     656                        event.preventDefault();
     657                       
     658                        // Checking On Show Event
     659                        if ($("#speakOnShow")[0].checked){
     660                            // If speak on show, check text to speech is not null
     661                            if ($("[name='speakOnShow_defaultText']").val()==="") {
     662                                $("[name='speakOnShow_defaultText']").addClass("text_error");
     663                                errors_on_form=true;
     664                            }
     665                        } else if ($("#playOnShow")[0].checked){
     666                            // If play on show, check file is selected
     667                            if ($("#playOnShow_helperlabel_hidden").val()==="") {
     668                                $("#playOnShow_file").addClass("text_error");
     669                                errors_on_form=true;
     670                            }
     671                        }  // Otherwise, NoneOnShow is not selected
     672                       
     673                        // Checking On Play Event
     674                        if ($("#AudioOnPlay")[0].checked){
     675                            // If play on show, check file is selected
     676                            if ($("#AudioOnPlay_helperlabel_hidden").val()==="") {
     677                                $("#AudioOnPlay_file").addClass("text_error");
     678                                errors_on_form=true;
     679                            }
     680                        } else if ($("#VideoOnPlay")[0].checked){
     681                            // If play on show, check file is selected
     682                            if ($("#VideoOnPlay_helperlabel_hidden").val()==="") {
     683                                $("#VideoOnPlay_file").addClass("text_error");
     684                                errors_on_form=true;
     685                            }
     686                        } else if ($("#VideoOnlineOnPlay")[0].checked){
     687                            // If play on show, check file is selected
     688                            if ($("#VideoOnlineOnPlay_YoutubeURL").val()==="") {
     689                                $("#VideoOnlineOnPlay_YoutubeURL").addClass("text_error");
     690                                errors_on_form=true;
     691                            }
     692                        }
     693                       
     694                       
     695                        // Otherwise, NoneOnShow is not selected
     696
     697                       
     698                       
     699                        // Submit dialog if form is valid
     700                        console.log(this);
     701                        if (!errors_on_form)  vex.close($vexContent.data().vex.id);
     702                        //if (!errors_on_form) this.close("pajarito");
     703                        }
     704                       
     705                    }),
     706                $.extend({}, vex.dialog.buttons.NO, {
     707                        click: function(ev){
     708                        this.close();
     709                        }
     710                    })
     711                ],*/
     712
     713            beforeClose: function(data){
     714               
     715                // Cleaning previous errors
     716                $(".text_error").removeClass("text_error");
     717               
     718                var errors_on_form=false;
     719               
     720                event.stopPropagation();
     721                event.preventDefault();
     722               
     723                // Checking On Show Event
     724                if ($("#speakOnShow")[0].checked){
     725                    // If speak on show, check text to speech is not null
     726                    if ($("[name='speakOnShow_defaultText']").val()==="") {
     727                        $("[name='speakOnShow_defaultText']").addClass("text_error");
     728                        errors_on_form=true;
     729                    }
     730                } else if ($("#playOnShow")[0].checked){
     731                    // If play on show, check file is selected
     732                    if ($("#playOnShow_helperlabel_hidden").val()==="") {
     733                        $("#playOnShow_file").addClass("text_error");
     734                        errors_on_form=true;
     735                    }
     736                }  // Otherwise, NoneOnShow is not selected
     737               
     738                // Checking On Play Event
     739                if ($("#AudioOnPlay")[0].checked){
     740                    // If play on show, check file is selected
     741                    if ($("#AudioOnPlay_helperlabel_hidden").val()==="") {
     742                        $("#AudioOnPlay_file").addClass("text_error");
     743                        errors_on_form=true;
     744                    }
     745                } else if ($("#VideoOnPlay")[0].checked){
     746                    // If play on show, check file is selected
     747                    if ($("#VideoOnPlay_helperlabel_hidden").val()==="") {
     748                        $("#VideoOnPlay_file").addClass("text_error");
     749                        errors_on_form=true;
     750                    }
     751                } else if ($("#VideoOnlineOnPlay")[0].checked){
     752                    // If play on show, check file is selected
     753                    if ($("#VideoOnlineOnPlay_YoutubeURL").val()==="") {
     754                        $("#VideoOnlineOnPlay_YoutubeURL").addClass("text_error");
     755                        errors_on_form=true;
     756                    }
     757                }
     758               
     759                // Otherwise, NoneOnShow is not selected
     760
     761               
     762               
     763                // Submit dialog if form is valid
     764               
     765                if (!errors_on_form)  return true;
     766                else return false;
     767                //if (!errors_on_form) this.close("pajarito");
     768   
     769                     
     770                },
    546771            overlayClosesOnClick: true,
    547772            callback: function(data){
     773                console.log("Submiting form; DATA:");
    548774                console.log(data);
    549                 alert("done");
     775                cb(data); // Call to callback function to save data
    550776            }
    551777        });
    552778       
    553779        /* Binding Events */
     780       
     781       
     782       
     783        /**************************/
     784        // Fix VEX dialog Settings for set less margin top (a little hack)
     785       
     786        // Buscar aci que amb el overlayClassName i el classname, etc. potser
     787        // es puga assignar una classe.... i fer les modificacions sobre esta.
     788        // http://github.hubspot.com/vex/api/advanced/
     789       
     790        var vexDialogs=$(".vex-content");
     791        $(vexDialogs[1]).css("margin-top", "-70px");
     792        /*************************/
     793       
    554794       
    555795        // Clic on previeu audio button
     
    570810   
    571811    // Changes on file uploads
    572     $(".AudioFileInput").on("change", function(){
     812    $(".AudioFileInput").on("change", function(ev){
    573813            var newFile=this.value;
    574             alert(newFile);
     814           
     815            //console.log(ev.target);
     816            var hidden_target=$(ev.target).attr("target");
     817            $("#"+hidden_target).val(newFile);
     818            //alert(newFile + hidden_target);
     819           
    575820    });
    576821   
     
    603848
    604849
    605 
    606850weekdayComponentClass.prototype.getPlayableContent=function getPlayableContent(){
    607851    var self=this;
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/css/main.css

    r6577 r6653  
    549549    height: 90px;
    550550}
     551
     552input[type="text"].text_error{
     553  background-color: #fce4e4 !important;
     554  border: 1px solid #cc0033 !important;
     555  outline: none !important;
     556}
     557
     558input[type="file"].text_error{
     559  background-color: #fce4e4 !important;
     560  color:  #cc0033 !important;
     561  outline: none !important;
     562}
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/js/main.js

    r6577 r6653  
    2929
    3030function getYoutubeInfo(videoId){
    31     var apiKey = "AIzaSyBdpTjuhH9LXnzbgtnRBH3lgc1XI2_Kwxo";
     31    // var apiKey = "INSERT HERE API KEYp";
    3232    //var videoId = "BF7w-xJUlwM";
    3333    //var videoId = url.split("?v=")[1]; // Gettind video id from youtube url
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/locale/ca_ES.UTF-8.json

    r6577 r6653  
    135135  "Action.on.play":"Acció en reproduir l'element",
    136136  "Play a video file":"Reprodueix un fitxer de vídeo",
    137   "Play video from Youtube":"Reprodueix vídeo des de Youtube"
     137  "Play video from Youtube":"Reprodueix vídeo des de Youtube",
     138  "NoAction":"No faces res - Acció per defecte"
    138139 
    139140}
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/locale/en_US.UTF-8.json

    r6577 r6653  
    134134  "Action.on.play":"Action when playing item",
    135135  "Play a video file":"Play a video file",
    136   "Play video from Youtube":"Play a video from Youtube"
     136  "Play video from Youtube":"Play a video from Youtube",
     137  "NoAction":"No hagas nada - Acción por defecto"
    137138 
    138139}
  • classroom-assembly/trunk/fuentes/classroom-assembly/src/locale/es_ES.UTF-8.json

    r6577 r6653  
    136136  "Action.on.play":"Acciones cuando se reproduzca el elemento",
    137137  "Play a video file":"Reproduce un fichero de video",
    138   "Play video from Youtube":"Reprodure un video desde youtube"
     138  "Play video from Youtube":"Reprodure un video desde youtube",
     139  "NoAction":"Don't do nothing - Default action"
    139140 
    140141 
Note: See TracChangeset for help on using the changeset viewer.